【转载“GBase 8a数据库”公众号】打破租户边界,实现安全高效的数据共享
背景
随着企业数据平台逐步向云原生和多租户架构演进,越来越多的业务部门、项目团队和客户共享同一套云数仓平台。多租户架构在保障数据隔离、安全性的同时,也带来了新的挑战——
不同租户之间的数据如何高效、安全地共享?
例如:
- 集团总部希望将统一的维度数据共享给多个业务部门
- 数据中台希望向多个业务租户提供统一的数据服务
- 算法平台需要访问业务租户的数据进行模型训练
这些场景如果依赖传统的数据导出、ETL 同步或离线复制,不仅流程繁琐,而且容易产生数据冗余和一致性维护问题。
GCDW 数据共享功能正是为解决这一问题而设计。
它采用"共享访问权限,而非复制数据"的设计理念,通过数据共享和映射机制,让目标租户无需复制任何数据,即可直接访问源租户的数据,实现跨租户的数据共享与协同分析。
数据共享:分享而非复制
GCDW 数据共享最大的特点在于:
数据始终保留在源租户,只共享访问能力,而不是复制数据。

核心架构组件
GCDW 数据分享并不是简单的数据复制,而是基于数据市场(Data Market)+ 元数据映射 + 对象存储访问构建的一套跨租户数据共享架构。
| 组件 | 说明 |
|---|---|
| P 端(Provider) | 数据提供方 |
| C 端(Consumer) | 数据消费方 |
| 数据市场(Data Market) | 共享元数据管理中心 |
| 元数据存储服务 | 存储共享元数据 |
| 对象存储服务 | 存储实际数据文件 |
通过上述组件协同,实现数据"发布、发现、映射、访问"的完整流程。
数据共享流程
1. 源租户创建数据共享:
CREATE SHAREDATA order_share FROM TABLE salesdb.orders FOR ACCOUNT tenant_b;
2. 目标租户查看收到的数据共享:
SHOW AVAIL SHAREDATAS;
3. 确认共享后,创建映射表:
CREATE TABLE orders FROM SHAREDATA order_share;
4. 业务即可像访问普通表一样查询:
SELECT * FROM orders;
共享过程特点
- 数据始终保留在源租户
- 目标租户仅保存映射关系
- 查询时自动访问源租户数据,从源端的存储服务中读取数据文件
- 无需复制任何业务数据
- 共享信息被加密存储,其他租户无法访问
真正实现了共享访问,而非数据搬运。
核心特性深度解析
1. 实时共享与快照共享
不同业务对数据一致性的要求并不相同,GCDW 提供了两种数据共享模式:
实时共享
适用于业务数据持续更新的场景,目标租户每次查询时都能够访问源租户当前最新的数据。
适用场景:
- 报表
- 实时运营分析
- 在线数据查询
- 数据中台服务
优势: 无需任何同步任务,即可获取最新数据。
快照共享
对于财务、审计等业务,更关注的是数据一致性。GCDW 支持创建快照共享,在创建分享时记录当前的数据一致性版本:
CREATE SNAPSHOT SHAREDATA order_snapshot FROM TABLE salesdb.orders FOR ACCOUNT tenant_b;
之后,无论源表如何更新,目标租户访问到的始终都是创建快照时的数据。
保证:
- 分析结果一致
- 报表数据稳定
- 审计数据可追溯
一套数据共享机制,同时满足了实时分析与一致性分析两类典型业务需求。
2. 映射表机制,实现零数据复制
创建数据共享后,目标租户无需导入数据,而是创建一个映射表:
CREATE TABLE orders FROM SHAREDATA order_share;
映射表保存的是共享关系和元数据信息,而真正的数据仍然保留在源租户。
相比传统同步方式的优势:
| 优势 | 说明 |
|---|---|
| 无需重复存储数据 | 不产生额外数据副本 |
| 节省存储空间 | 对 TB/PB 级数据有效 |
| 避免同步延迟 | 数据实时可用 |
| 无需维护数据一致性 | 由源租户保证 |
3. 支持表分享与视图分享
除了普通数据表外,GCDW 同样支持视图共享。
源租户共享视图:
CREATE SHAREDATA sales_view_share FROM TABLE salesdb.order_view FOR ACCOUNT tenant_b;
目标租户创建映射视图:
CREATE VIEW order_view FROM SHAREDATA sales_view_share;
查询视图:
SELECT * FROM order_view;
通过视图共享,可以隐藏底层复杂的数据模型,为业务提供统一的数据接口,进一步提升数据治理能力和数据服务能力。
4. 公共元数据实现跨租户共享
数据分享不仅仅是 SQL 层面的能力,其背后依赖于 GCDW 的公共元数据管理机制。
当源租户创建数据共享后,系统会将共享信息统一维护在公共元数据中,包括:
- 数据分享定义
- 共享对象
- 授权租户
- 快照版本信息
- 映射关系等元数据
目标租户通过公共元数据发现可用的数据分享,再创建映射表完成数据访问。
整个过程中,仅共享元数据和访问权限,不传输业务数据,既保证了租户之间的数据隔离,又实现了高效的数据共享。
5. 查询体验与本地表一致
对于业务开发人员而言,数据共享几乎没有学习成本。
完成映射后,共享数据与普通数据表没有任何区别:
SELECT customer_id, SUM(amount) FROM orders
GROUP BY customer_id;
开发人员无需关心数据来自哪个租户,也无需了解底层数据访问方式,只需使用标准 SQL 即可完成分析,大大降低了跨租户数据使用门槛。
总结
GCDW 数据共享功能以"共享访问能力,而非复制数据"为核心设计理念,实现了多租户云数仓之间的数据高效协同。
相比传统数据同步方案的优势
| 优势 | 说明 |
|---|---|
| 零数据复制 | 无需复制数据,实现 Zero Copy 数据共享 |
| 实时与快照 | 支持实时共享与快照共享,兼顾实时性与一致性 |
| 表与视图 | 支持表共享与视图共享,满足多样化业务需求 |
| 安全可靠 | 基于公共元数据实现安全可靠的跨租户共享 |
| 开发成本低 | 标准 SQL 即可访问共享数据,使用体验一致 |
应用场景
- 集团化管理:统一维度数据共享
- 数据中台建设:多租户数据服务
- AI 数据服务:模型训练数据共享
随着企业数据平台不断向云原生、多租户和数据中台方向发展,跨租户的数据流通能力正成为释放数据价值的重要基础设施。GCDW 数据共享功能不仅打破了数据孤岛,更通过轻量、安全、高效的数据共享机制,为集团化管理、数据中台建设、AI 数据服务等场景提供了坚实支撑,让数据真正做到一次生产、多方共享、统一消费。
评论
热门帖子
- 12025-12-01浏览数:183688
- 22023-05-09浏览数:26388
- 42023-09-25浏览数:20051
- 52020-05-11浏览数:18777