数据湖存储管理:Volume
概述
Lakehouse Volume 是云器 Lakehouse 中表示对象存储位置的对象。它提供了对对象存储的访问、存储、管理和组织文件等功能,可用于存储和访问各种格式的文件,包括结构化、半结构化和非结构化数据。Volume 可以像表、视图等对象一样在 Lakehouse 的 Schema 下进行组织和管理。
使用 Volume 功能会带来如下收益:
- 统一数据分析:支持在云器 Lakehouse 中调用 AI 负载处理对象存储中的图片、PDF 以及特殊格式的非结构化数据,与平台中的结构化数据做统一处理和分析
- 统一权限管理:支持使用云器 Lakehouse 平台的权限系统,对库表以及对象存储中的文件做统一权限管理
- 统一数据治理:对象存储中的数据会被云器 Lakehouse 平台统一管理和治理
Volume 类型
Lakehouse Volume 分为内部 Volume 和外部 Volume 两大类:
| 类型 | 分类 | 创建方式 | 存储位置 | 说明 |
|---|---|---|---|---|
| User Volume | 内部 | 自动创建 | 内部存储 | 用户专属的个人存储空间,每个用户默认拥有 |
| Table Volume | 内部 | 自动创建 | 内部存储 | 每张表默认关联的文件存储区域,权限与表权限一致 |
| Named Volume | 内部 | (用户显式创建) | 内部存储 | 用户显式创建并自管理生命周期,用于跨团队共享资源 |
| External Volume | 外部 | | 外部存储(OSS/COS/S3) | 挂载外部对象存储,将对象存储视为数据湖 |
内部 Volume(User Volume、Table Volume、Named Volume)数据存储在 Lakehouse 内部,按 Lakehouse 存储标准计费。其中 User Volume 和 Table Volume 由系统自动创建,Named Volume 由用户显式创建并自行管理生命周期。外部 Volume 数据留在外部对象存储中不迁移。
类型对比
| 特性 | User Volume | Table Volume | External Volume | Named Volume |
|---|---|---|---|---|
| 创建方式 | 自动创建 | 自动创建(每表一个) | | |
| 存储位置 | 内部存储 | 内部存储 | 外部存储(OSS/COS/S3) | 内部存储 |
| 权限管理 | 用户默认拥有 | 与表权限一致 | 需要单独授权 | 需要单独授权 |
| 存储费用 | Lakehouse 存储计费 | Lakehouse 存储计费 | 云厂商存储计费 | Lakehouse 存储计费 |
| 典型场景 | 上传本地文件、RAG 知识库 | 表关联 ETL 文件、批量导入导出 | 挂载已有对象存储 | 跨团队共享资源 |
数据操作协议
Volume 支持三种地址格式,用于在不同场景下引用文件:
| 协议类型 | 地址格式 | 典型场景 |
|---|---|---|
| External/Named Volume | | 跨团队共享资源 |
| User Volume | | 用户的自有空间 |
| Table Volume | | 表关联 ETL 文件 |
地址格式说明
External/Named Volume 格式:
volume://[{workspace}.][{schema}.]volume_name/upper.jar
、workspace
:可选,省略时使用当前上下文默认值schema
:创建的 Volume 名称volume_name
:目标文件名upper.jar
User Volume 格式:
volume:user://~/upper.jar
:表示使用 User Volume 协议user
:表示当前用户,为固定值~
:目标文件名upper.jar
Table Volume 格式:
volume:table://[{workspace}.][{schema}.]table_name/upper.jar
、workspace
:可选,省略时使用当前上下文默认值schema
:表示使用 Table Volume 协议table
:表名,需根据实际情况填写table_name
:目标文件名upper.jar
DDL 操作
不同 Volume 类型支持的操作命令:
| 命令 | 描述 | User Volume | Table Volume | External/Named Volume |
|---|---|---|---|---|
| 创建 Named Volume | 否 | 否 | 是 |
| 创建 External Volume | 否 | 否 | 是 |
| 删除 Volume | 否 | 否 | 是 |
| 查看 Volume 属性 | 否 | 否 | 是 |
| 列出已创建的 Volume | 否 | 否 | 是 |
| 列出 User Volume 文件 | 是 | 否 | 否 |
| 列出 Table Volume 文件 | 否 | 是 | 否 |
| 列出 External/Named Volume 文件 | 否 | 否 | 是 |
| 删除 Volume 中的文件 | 是 | 是 | 是 |
| 上传文件到 Volume | 是 | 是 | 是 |
| 从 Volume 下载文件 | 是 | 是 | 是 |
权限
| 权限 | 说明 |
|---|---|
| READ METADATA | 查看 Volume 对象元信息权限 |
| READ VOLUME | 读取 Volume 对象下文件及目录的权限。当需要查看 Volume 下文件列表、SQL 读取 Volume 文件以及通过 GET 命令下载文件时需要 |
| WRITE VOLUME | 写入数据到 Volume 的权限。当需要通过 PUT 命令上传文件,通过 REMOVE 命令删除文件时需要 |
| ALTER VOLUME | ALTER VOLUME 命令需要的权限。如: 刷新 Volume 下的文件元数据信息(仅 External Volume 支持) |
| ALL | Volume 对象全部权限 |
成本
- External Volume:在 Lakehouse 侧无额外存储费用,存储费用按云厂商标准收取
- Named Volume(内部存储):按照实际存储大小收取 Lakehouse 存储费用
- User Volume / Table Volume:按照实际存储大小收取 Lakehouse 存储费用
约束与限制
- 上传单个文件大小不得超过 5 GB
- JDBC 驱动要求 1.4.4 及以上版本支持本地 PUT/GET 接口
- External Volume 不支持跨云厂商创建:阿里云实例只能创建 OSS Connection,腾讯云实例只能创建 COS Connection
相关链接
联系我们
