跳到主要内容

作为提供方共享数据

引入或更新于:v1.2.949
企业版功能
Data Sharing是企业版功能。 如需获取许可证,请联系 Databend 支持团队。

在提供方租户中执行以下步骤。开始前,确认已满足要求。

示例使用提供方租户 provider_acct 和消费方租户 consumer_acct。

存储配置​

将共享表放在提供方连接可以读取的位置。

部署方式表的位置
Databend Cloud使用存放在你自有 bucket 中的外部位置表。Databend Cloud 管理默认存储,你没有其凭证。
自托管 Databend使用外部位置表,或默认存储中的表。使用默认存储时,连接必须具有默认存储的读取权限。

连接的存储类型必须与表的存储类型相同。连接选项参见 CREATE CONNECTION。

自托管 Databend 使用文件系统存储时,使用不带参数的 fs 连接。消费方查询节点必须能够访问相同的文件。

创建 Share​

1. 获取提供方租户 ID​

SELECT CURRENT_TENANT_ID();

将此 ID 发送给消费方。消费方使用该 ID 创建共享数据库。

2. 创建连接​

将占位符替换为你的凭证。凭证必须具有该 bucket 的读写权限。

CREATE CONNECTION share_conn
STORAGE_TYPE = 's3'
ACCESS_KEY_ID = '<your-access-key-id>'
SECRET_ACCESS_KEY = '<your-secret-access-key>';

可以使用 IAM 角色代替访问密钥。使用非 AWS 的 S3 兼容存储时,添加 ENDPOINT_URL。

示例中,表和 Share 使用此连接。Share 连接只需要读取权限。在生产环境中,可以为 Share 另建一个只读连接。

3. 准备源数据​

如果共享已有表,跳过此步骤。

CREATE DATABASE orders_db;
CREATE TABLE orders_db.orders (id INT, region STRING, amount INT)
's3://<your-bucket>/orders_db/'
CONNECTION = (CONNECTION_NAME = 'share_conn');
INSERT INTO orders_db.orders VALUES (1, 'apac', 100), (2, 'emea', 200);

该表是 FUSE 表,数据存放在你的 bucket 中。

本数据库的其他表也可以使用同一位置。Databend 将每张表的数据存放在不同的子目录中。语法参见 CREATE EXTERNAL TABLE。

4. 创建 Share​

警告

不要使用 CREATE OR REPLACE SHARE 更换凭证。该语句会创建新的 Share,之后每个消费方都必须重新创建共享数据库。更换凭证参见更换连接。

CREATE SHARE sales_share
CONNECTION = share_conn
COMMENT = 'Shared order data';

5. 授权数据库​

GRANT USAGE ON DATABASE orders_db TO SHARE sales_share;

此授权不能访问表。在下一步中授权每张表。

6. 授权表​

GRANT SELECT ON TABLE orders_db.orders TO SHARE sales_share;

表必须位于已授权的数据库中。表必须是不带行访问策略或掩码策略的 FUSE 表。

7. 添加消费方账号​

从消费方获取租户 ID,然后执行以下语句:

ALTER SHARE sales_share ADD ACCOUNTS = consumer_acct;

如果 ID 包含大写字母或连字符等特殊字符,将 ID 放在反引号中:

ALTER SHARE sales_share ADD ACCOUNTS = `consumer-tenant`;
备注

ADD ACCOUNTS 向列表中添加账号。SET ACCOUNTS 替换完整列表。

8. 检查 Share​

DESCRIBE SHARE sales_share;
SHOW SHARES LIKE 'sales_share';

确认 DESCRIBE SHARE 显示 orders_db 的 DATABASE 行和 orders_db.orders 的 TABLE 行。

确认 SHOW SHARES 的 kind 列显示 OUTBOUND,且 to 列包含消费方租户 ID。

后续步骤​

将提供方租户 ID 和 Share 名称发送给消费方。消费方随后执行消费方配置中的步骤。

更改消费方账号、授权或连接,参见管理 Share。

欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验