READ_FILE
从 stage 读取文件,并将其内容作为原始字节返回。
当你希望将已暂存的资源(如文档、镜像或模型输入)打包到下游数据集中时,READ_FILE 非常有用,例如将训练数据卸载到 Lance 时。
语法
READ_FILE('@<stage>/<path-to-file>')
READ_FILE('@<stage>', '<path-to-file>')
参数
返回类型
BINARY
如果任一参数为 NULL,结果为 NULL。
使用说明
READ_FILE从 stage 读取文件。它不会读取 TiDB Cloud Lake server 上的本地文件。- 目标必须是文件,而不是目录。
- 调用方必须具有读取该 stage 的权限。
示例
使用完整的 stage 路径读取文件:
SELECT TO_HEX(READ_FILE('@data/csv/prefix/ab.csv'));
结果:
31
使用 stage 名称加相对路径读取文件:
SELECT TO_HEX(READ_FILE('@data', 'csv/prefix/ab.csv'));
结果:
31
通过将常量 stage 与每行的相对路径组合来读取多个文件:
CREATE OR REPLACE TABLE read_file_rel_paths(path STRING);
INSERT INTO read_file_rel_paths VALUES
('csv/prefix/ab.csv'),
('csv/prefix/ab/cd.csv'),
(NULL);
SELECT path, TO_HEX(READ_FILE('@data', path))
FROM read_file_rel_paths
ORDER BY path;
结果:
+----------------------+--------------------------------+
| path | to_hex(read_file('@data',path)) |
+----------------------+--------------------------------+
| csv/prefix/ab.csv | 31 |
| csv/prefix/ab/cd.csv | 32 |
| NULL | NULL |
+----------------------+--------------------------------+