数据共享
数据共享(Data Sharing)让 Lakehouse 中的数据可以零复制地授权给其他实例访问——提供方只需创建 Share 对象并授权,消费方即可实时查询原始数据,数据不离开提供方账户。
类比:数据共享像"数据的只读访问权限共享"——不是把书借给对方,而是把书架的钥匙临时给对方,对方可以随时来读,书还是在你这里,你随时可以收回钥匙。这与 ETL 同步不同:同步是复制一本书给对方,之后各自独立;共享是共用同一本书,提供方修改后消费方立即可见。
与其他数据交换方式的对比
| 方式 | 数据是否复制 | 实时性 | 消费方存储成本 | 适用场景 |
|---|---|---|---|---|
| 数据共享(Share) | ❌ 不复制 | 实时 | 零 | 跨团队/跨公司实时协作 |
| 数据同步(ETL) | ✅ 复制 | 有延迟 | 占用完整存储 | 跨云、需独立加工的场景 |
| 导出文件 | ✅ 复制 | 一次性 | 占用文件存储 | 离线数据交换 |
核心机制
数据共享基于元数据授权实现,不移动任何数据:
- 提供方:创建 Share 对象,向 Share 添加表/视图,配置允许访问的消费方实例
- 消费方:执行
创建只读 Schema,通过 Schema 查询数据CREATE SCHEMA FROM SHARE - 实时同步:提供方数据变更后,消费方无需任何操作即可看到最新数据
- 计算独立:消费方查询消耗消费方自己的 VCluster 资源,与提供方无关
典型应用场景
| 场景 | 做法 |
|---|---|
| 跨企业数据协作 | A 企业 Share 销售数据给合作伙伴 B,B 实时分析,无需建同步链路 |
| 集团主数据分发 | 总部 Share 客户/产品主数据表给各业务部门,各部门实时获取 |
| 数据产品对外提供 | 数据服务商 Share 处理后的数据产品给客户,按客户控制访问范围 |
快速示例
常见问题
常见问题 1:跨云/跨服务区共享失败
问题:尝试将阿里云上海实例的数据共享给腾讯云实例。
症状:
ADD INSTANCE 执行成功,但消费方无法访问数据。
解决:数据共享仅支持同云同服务区。跨云场景改用数据同步任务将数据写入消费方实例。
常见问题 2:共享部分数据但共享了整张表
问题:只想共享订单表中某个商家的数据,但直接共享了整张表。
解决:先创建 View 过滤所需数据,再将 View 加入 Share:
常见问题 3:消费方复制数据后二次使用
问题:消费方通过
CREATE TABLE AS SELECT 将共享数据复制出去,再二次分享。
解决:Share 本身禁止二次分享,但无法阻止消费方复制数据。提供方需在协议层面约束消费方的数据使用范围,并谨慎选择共享哪些表。
成本影响
存储成本
- 消费方不产生任何存储费用,数据存储在提供方
- Share 对象本身只存储元数据,几乎零成本
计算成本
- 提供方:Share 本身不产生计算费用
- 消费方:查询共享数据消耗消费方自己的 VCluster CRU,不由提供方承担
生命周期管理
本章内容
| 页面 | 说明 |
|---|---|
| 数据共享对象模型 | Share 对象完整说明、核心原理、权限控制 |
| 数据共享概念 | 提供方/消费方角色、操作流程、注意事项 |
相关文档
| 文档 | 说明 |
|---|---|
| 跨账号数据分享指南 | 端到端操作流程 |
| Studio 数据分享 | 通过 Web UI 配置共享 |
| 数据共享 SQL 命令 | CREATE/ALTER/DROP SHARE 完整语法 |
联系我们
