Named Volume
Named Volume 是用户显式创建的内部 Volume,数据存储在 Lakehouse 内部对象存储中,无需配置外部云存储账号。它与 User Volume、Table Volume 同属内部 Volume,区别在于 Named Volume 由用户手动创建并自行管理生命周期,可以配置共享权限,适合团队协作场景。
与其他 Volume 类型的区别
| User Volume | Table Volume | Named Volume | External Volume |
|---|
| 分类 | 内部 Volume | 内部 Volume | 内部 Volume | 外部 Volume |
| 创建方式 | 自动(每个用户) | 自动(每张表) | 手动 CREATE VOLUME
CREATE VOLUME | 手动 CREATE EXTERNAL VOLUME
CREATE EXTERNAL VOLUME |
| 数据存储位置 | Lakehouse 内部 | Lakehouse 内部 | Lakehouse 内部 | 外部 OSS / COS / S3 |
| 生命周期管理 | 系统管理 | 系统管理 | 用户管理 | 用户管理 |
| 可共享 | 否(用户私有) | 否(表权限绑定) | 是(可授权给其他用户) | 是 |
| 适用场景 | 个人临时文件 | 表关联文件 | 团队共享文件目录 | 已有云存储数据 |
创建与管理
-- 创建 Named Volume
CREATE VOLUME shared_files;
-- 查看所有 Volume
SHOW VOLUMES;
-- 查看 Named Volume 中的文件
SHOW VOLUME DIRECTORY shared_files;
-- 删除 Named Volume
DROP VOLUME shared_files;
文件操作
-- 上传本地文件到 Named Volume
PUT '/local/data.csv' TO VOLUME shared_files;
-- 查询文件内容
SELECT * FROM VOLUME shared_files
USING CSV OPTIONS('header' = 'true')
FILES('data.csv');
-- 导入数据到表
COPY INTO my_table
FROM VOLUME shared_files
USING CSV OPTIONS('header' = 'true')
FILES('data.csv');
-- 导出表数据到 Named Volume
COPY INTO VOLUME shared_files
SUBDIRECTORY 'export/'
FROM my_table
FILE_FORMAT = (TYPE = PARQUET);
-- 删除文件
REMOVE VOLUME shared_files FILE 'data.csv';
权限管理
Named Volume 支持授权给其他用户或角色,实现团队共享:
-- 授予读权限
GRANT READ ON VOLUME shared_files TO ROLE workspace_user;
-- 授予读写权限
GRANT READ, WRITE ON VOLUME shared_files TO ROLE workspace_dev;
相关文档