-- 上传本地 CSV 文件到 Volume
PUT '/tmp/data_export.csv' TO USER VOLUME FILE 'data_export.csv';
结果说明:
文件上传成功后,可通过
LIST
LIST
命令验证。
上传的文件仅当前用户可见(User Volume 隔离)。
列出 Volume 文件
使用
LIST
LIST
命令查看 Volume 中的文件和目录。
-- 列出 User Volume 所有文件
LIST USER VOLUME;
-- 按子目录过滤
LIST USER VOLUME SUBDIRECTORY 'data/';
-- 按正则表达式过滤
LIST USER VOLUME REGEXP = '.*\.csv';
返回列说明:
列名
说明
relative_path
relative_path
文件在 Volume 中的相对路径
url
url
文件的对象存储完整 URL
size
size
文件大小(字节)
last_modified_time
last_modified_time
文件最后修改时间(UTC)
下载文件从 Volume
使用
GET
GET
命令将 Volume 中的文件下载到本地。
-- 下载 Volume 文件到本地
GET FROM USER VOLUME FILE 'data_export.csv' TO '/tmp/downloaded_data.csv';
适用场景:
数据备份到本地
与外部系统交换文件
删除 Volume 文件
使用
REMOVE
REMOVE
命令删除 Volume 中不再需要的文件。
-- 删除 Volume 文件
REMOVE USER VOLUME FILE 'data_export.csv';
⚠️ 注意:
REMOVE
REMOVE
操作不可逆,删除后无法通过 Time Travel 恢复文件。
直接查询文件内容
Lakehouse 支持直接查询 Volume 中的文件,无需先导入到表。
-- 查询 User Volume 中的 CSV 文件(带列定义,表头正确显示)
SELECT * FROM USER VOLUME
(id INT, name STRING, value DOUBLE)
USING CSV
OPTIONS ('header' = 'true')
FILES ('data_export.csv');
-- 不带列定义时,列名自动生成为 f0, f1, f2...
SELECT * FROM USER VOLUME
USING CSV
OPTIONS ('header' = 'false')
FILES ('data_export.csv');
-- 查询 External Volume 中的文件
SELECT * FROM VOLUME my_volume
(id INT, name STRING, value DOUBLE)
USING CSV
OPTIONS ('header' = 'true')
SUBDIRECTORY 'data/';
支持的格式:
CSV / TSV
JSON / JSONL
Parquet / ORC
Avro
💡 提示:直接查询适合临时数据探索。频繁查询建议先
COPY INTO
COPY INTO
导入到表中。
清理测试数据
完成 Volume 验证后,建议清理上传的文件:
-- 删除测试文件
REMOVE USER VOLUME FILE 'data_export.csv';