Lakehouse 跨实例数据共享指南(Share)

概述

跨实例数据共享(Data Sharing)允许你将 Lakehouse 中的表或视图安全地共享给其他实例的用户,无需复制数据。通过

CREATE SHARE
CREATE SHARE
GRANT
GRANT
命令,你可以精细控制共享范围和权限。本指南按业务场景分类,帮助你快速掌握数据共享的配置方法。

涉及的 SQL 命令

命令用途适用场景
CREATE SHARE
CREATE SHARE
创建共享对象定义数据共享容器
GRANT ... TO SHARE
GRANT ... TO SHARE
授权表/视图到共享配置共享内容
ALTER SHARE ... ADD INSTANCE
ALTER SHARE ... ADD INSTANCE
添加消费实例指定共享目标
SHOW SHARES
SHOW SHARES
查看共享列表监控共享状态
DROP SHARE
DROP SHARE
删除共享清理废弃共享

前置准备

以下示例使用模拟的共享表

shared_sales
shared_sales

-- 创建测试表 CREATE TABLE IF NOT EXISTS shared_sales ( sale_id INT, product STRING, amount DOUBLE, sale_date DATE ); -- 插入测试数据 INSERT INTO shared_sales VALUES (1, 'Phone', 5000, '2024-06-01'), (2, 'Laptop', 8000, '2024-06-02');


创建数据共享

使用

CREATE SHARE
CREATE SHARE
定义一个共享对象,作为数据共享的容器。

-- 创建共享 CREATE SHARE sales_share;


授权共享表

使用

GRANT
GRANT
命令将表或视图的读取权限授予共享对象。

-- 授予共享表读取权限 GRANT SELECT ON TABLE shared_sales TO SHARE sales_share;

支持的权限

  • SELECT
    SELECT
    :允许消费实例查询表数据。
  • READ METADATA
    READ METADATA
    :允许消费实例查看表结构(Schema)。

添加消费实例

使用

ALTER SHARE
ALTER SHARE
将目标 Lakehouse 实例添加到共享中,使其能够访问共享数据。

-- 添加消费实例(需替换为实际实例 ID) ALTER SHARE sales_share ADD INSTANCE 'consumer_instance_id';


查看共享信息

使用

SHOW SHARES
SHOW SHARES
查看当前实例的所有共享配置。

-- 查看共享列表 SHOW SHARES; -- 查看共享详情 DESC SHARE sales_share;

返回信息

  • share_name
    share_name
    :共享名称
  • kind
    kind
    :共享类型(OUTBOUND / INBOUND)
  • objects
    objects
    :已共享的表/视图列表

撤销共享

使用

REVOKE
REVOKE
DROP SHARE
DROP SHARE
移除共享权限。

-- 撤销表的共享权限 REVOKE SELECT ON TABLE shared_sales FROM SHARE sales_share; -- 删除共享 DROP SHARE sales_share;


清理测试数据

完成共享验证后,建议清理测试表:

-- 删除测试表 DROP TABLE IF EXISTS shared_sales; DROP SHARE IF EXISTS sales_share;


注意事项

  1. 只读共享:共享仅支持
    SELECT
    SELECT
    权限,消费实例无法修改源表数据。
  2. 实时性:消费实例查询共享表时,直接读取源实例的最新数据,无同步延迟。
  3. 网络策略:跨云或跨地域共享需确保网络策略(如 PrivateLink)已正确配置。
  4. 权限继承:共享表上的行级权限或动态脱敏策略会同步生效到消费实例。
  5. 计费:共享查询产生的计算资源消耗由消费实例承担,存储成本由提供方承担。

相关文档

联系我们
预约咨询
微信咨询
电话咨询