CREATE EXTERNAL VOLUME
挂载外部对象存储(阿里云 OSS、腾讯云 COS、亚马逊 S3),在 Lakehouse 中创建 External Volume 对象。
前置条件
创建 External Volume 之前,需要先创建对应的 Storage Connection:
-- 创建阿里云 OSS 存储连接
CREATE STORAGE CONNECTION IF NOT EXISTS oss_conn
TYPE oss
ENDPOINT = 'oss-cn-hangzhou.aliyuncs.com'
ACCESS_ID = 'your_access_key_id'
ACCESS_KEY = 'your_access_key_secret';
语法
CREATE EXTERNAL VOLUME [IF NOT EXISTS] [schema_name.]<volume_name>
LOCATION '<storage_url>'
USING CONNECTION <connection_name>
DIRECTORY = (
enable = { true | false },
auto_refresh = { true | false }
)
RECURSIVE = { true | false };
参数说明
| 参数 | 说明 |
|---|
IF NOT EXISTS
IF NOT EXISTS | 若 Volume 已存在则跳过,不报错 |
schema_name
schema_name | 所属 schema 名称,省略时使用当前 schema |
volume_name
volume_name | Volume 名称,在同一 schema 下唯一 |
LOCATION
LOCATION | 对象存储路径,格式如 oss://bucket_name/path/
oss://bucket_name/path/ 、cos://bucket_name/path/
cos://bucket_name/path/ 、s3://bucket_name/path/
s3://bucket_name/path/ |
USING CONNECTION
USING CONNECTION | 引用的 Storage Connection 名称 |
DIRECTORY.enable
DIRECTORY.enable | 是否启用目录功能,建议设为 true
true |
DIRECTORY.auto_refresh
DIRECTORY.auto_refresh | 是否自动刷新文件元数据 |
RECURSIVE
RECURSIVE | 是否递归扫描子目录 |
使用示例
- 挂载阿里云 OSS bucket:
CREATE EXTERNAL VOLUME my_oss_vol
LOCATION 'oss://mcp-data-hangzhou/test/'
USING CONNECTION oss_conn
DIRECTORY = (enable = true, auto_refresh = true)
RECURSIVE = true;
- 挂载腾讯云 COS bucket:
CREATE EXTERNAL VOLUME my_cos_vol
LOCATION 'cos://my-bucket-1234567890/data/'
USING CONNECTION cos_conn
DIRECTORY = (enable = true, auto_refresh = true)
RECURSIVE = true;
- 挂载亚马逊 S3 bucket:
CREATE EXTERNAL VOLUME my_s3_vol
LOCATION 's3://my-s3-bucket/data/'
USING CONNECTION s3_conn
DIRECTORY = (enable = true, auto_refresh = true)
RECURSIVE = true;
- 在指定 schema 下创建,使用
IF NOT EXISTS
IF NOT EXISTS
:
CREATE EXTERNAL VOLUME IF NOT EXISTS my_schema.my_oss_vol
LOCATION 'oss://mcp-data-hangzhou/test/'
USING CONNECTION oss_conn
DIRECTORY = (enable = true, auto_refresh = true)
RECURSIVE = true;
注意事项
- External Volume 仅存储路径元信息,实际数据存储在外部云存储中,Lakehouse 侧无额外存储费用
- 不支持跨云厂商创建:阿里云实例只能创建 OSS Connection,腾讯云实例只能创建 COS Connection
- 删除 External Volume 不会删除外部存储中的实际文件
权限要求
| 权限 | 说明 |
|---|
CREATE VOLUME
CREATE VOLUME | 在当前 schema 下创建 Volume |
相关文档