外部 Volume(External Volume)
外部 Volume 用于挂载外部对象存储(阿里云 OSS、腾讯云 COS、亚马逊 S3),让 Lakehouse 可以直接用 SQL 访问其中的文件,无需先把数据复制进来。
创建外部 Volume
前提:先创建 Storage Connection(存储认证配置)。
-- 第一步:创建 Storage Connection
CREATE STORAGE CONNECTION my_oss_conn
TYPE OSS
access_id = 'LTAIxxxx'
access_key = 'T8Gexxxx'
ENDPOINT = 'oss-cn-hangzhou-internal.aliyuncs.com';
-- 第二步:挂载 OSS 路径为 External Volume
CREATE EXTERNAL VOLUME my_oss_volume
LOCATION 'oss://my-bucket/data/'
USING CONNECTION my_oss_conn
DIRECTORY = (ENABLE = TRUE, AUTO_REFRESH = TRUE)
RECURSIVE = TRUE;
主要操作
-- 查看 Volume 中的文件
SELECT * FROM DIRECTORY(VOLUME my_oss_volume);
-- 直接查询文件(无需导入)
SELECT * FROM VOLUME my_oss_volume
USING PARQUET SUBDIRECTORY 'orders/2024/';
-- 导入数据到表
COPY INTO orders FROM VOLUME my_oss_volume
USING CSV OPTIONS('header'='true');
-- 刷新目录(上传新文件后)
ALTER VOLUME my_oss_volume REFRESH;
⚠️ 上传新文件后,
SHOW VOLUME DIRECTORY
SHOW VOLUME DIRECTORY
可能不会立即显示。若未开启
AUTO_REFRESH
AUTO_REFRESH
,需手动执行
ALTER VOLUME name REFRESH
ALTER VOLUME name REFRESH
。
支持的云存储
| 云厂商 | 类型 | 说明 |
|---|
| 阿里云 | OSS | 需与 Lakehouse 实例同云 |
| 腾讯云 | COS | 需与 Lakehouse 实例同云 |
| 亚马逊 | S3 | 需与 Lakehouse 实例同云 |
相关文档