为账户设置 Delta Sharing(供提供商使用)

本页介绍如何在 Azure Databricks 上为数据提供者(希望使用 Delta Sharing 安全地共享数据的组织)设置 Delta Sharing。

如果你是数据接收者(接收通过 Delta 分享的数据的组织),请参阅关于使用 Databricks 到 Databricks Delta 分享数据的指南(适用于数据接收者)

重要

Delta Sharing 需要支持 Unity Catalog 的工作区。 可以创建一个启用了 Unity Catalog 的工作区进行共享管理。 在某些帐户中,会自动为 Unity Catalog 启用新工作区。 请参阅 Unity Catalog 的自动启用

如果无法创建启用了 Unity Catalog 的新工作区,您可以使用开源 Delta Sharing 项目部署自己的 Delta Sharing 服务器,以从任何平台共享 Delta 表。

初始提供程序设置包括以下步骤:

  1. 为 Unity Catalog 元存储启用 Delta Sharing。

  2. (可选)安装 Unity Catalog CLI。

  3. 授予创建和管理共享和收件人的权限。

  4. 配置数据物化的生存周期(TTL)。

  5. 配置存储网络访问。

要求

作为数据提供者,您正在设置 Azure Databricks 帐户,这样才能共享数据,您必须具备:

  • 至少有一个已启用 Unity 目录的 Azure Databricks 工作区。

    无需将所有工作区迁移到 Unity Catalog,即可使用 Databricks 对 Delta Sharing 提供商的支持。 请参阅《是否需要 Unity Catalog 才能使用 Delta Sharing?》。

    接收方不需要启用 Unity Catalog 的工作区。

  • 帐户管理员角色,为 Unity Catalog 元数据存储启用 Delta Sharing。

  • Metastore 管理员角色或者 CREATE SHARECREATE RECIPIENT 权限。 请参阅管理员角色

    注意事项

    如果工作区已自动为 Unity Catalog 启用,你可能没有元存储管理员。但是,默认情况下,此类工作区中的工作区管理员对元存储拥有 CREATE SHARECREATE RECIPIENT 权限。

    有关详细信息,请参阅自动启用 Unity Catalog自动为 Unity Catalog 启用工作区时的工作区管理员权限

  • 允许接收方网络访问的云存储配置。

对元存储启用 Delta Sharing

如果只想使用 Delta Sharing 与帐户中其他 Unity Catalog 元存储上的用户共享数据,则无需在元存储上启用 Delta Sharing。 默认情况下,在单个 Azure Databricks 帐户中启用元存储到元存储共享。

否则,请为每个管理您计划使用 Delta Sharing 共享的数据的 Unity Catalog 元存储执行下列步骤。

  1. 作为 Azure Databricks 帐户管理员,登录到 account 控制台

  2. 在边栏中,单击 “数据”图标。目录

  3. 单击一个元数据存储的名称以打开其详细信息。

  4. 选中 “允许与组织外部方进行 Delta 共享”旁的复选框。

  5. 配置收件人令牌生存期。

    此配置设定了所有接收者令牌在多长时间后会过期并必须重新生成。 收件人令牌只能在开放共享协议中使用。 令牌在创建后最多一年有效。

    注意事项

    更改元存储的默认收件人令牌生存期时,现有收件人的收件人令牌生存期不会自动更新。 若要为给定的收件人应用新的令牌生存期,必须轮换其令牌。 请参阅 “管理收件人令牌”。

    设置默认收件人令牌生存期:

    1. 确认“设置过期”已启用(这是默认设置)。

    2. 输入秒数、分钟数、小时数或天数,然后选择度量单位。 令牌在创建后最多一年有效。

    3. 单击 “启用”

    有关详细信息,请参阅令牌安全注意事项

  6. 与不在帐户中的 Azure Databricks 收件人共享时,请输入 Organization 名称

    注意事项

    指定可读组织名称有助于收件人识别其共享提供程序和收件人提供商列表中的相应提供程序对象。

  7. 单击 “启用”

(可选)安装 Unity Catalog CLI

若要管理共享和收件人,可使用目录资源管理器、SQL 命令或 Unity Catalog CLI。 CLI 在本地环境中运行,不需要Azure Databricks 计算资源。

若要安装 CLI,请参阅 Databricks CLI 是什么?

授予创建和管理共享和接收者的权限

元存储管理员能够创建和管理共享和收件人,包括向收件人授予共享。 元存储管理员可以通过以下权限将许多提供者的任务委托出去:

  • 元存储上的 CREATE SHARE 授予创建共享的权利。
  • 元存储上的 CREATE RECIPIENT 授予创建接收者的权利。
  • 元存储上的 USE RECIPIENT 授予列出和查看元存储中所有接收者的详细信息的权利。
  • 元存储上的 USE SHARE 授予列出和查看元存储中所有共享的详细信息的权利。
  • USE RECIPIENTUSE SHARE,SET SHARE PERMISSION 相结合,这使用户能够向收件人授予共享访问权限。
  • 元存储管理员能够转移任何共享的所有权。
  • 共享的所有者和接收者的所有者可以更新这些对象,并将共享权限授予接收者。 默认情况下,对象创建者会被授予所有权,但所有权可以转让。
  • 共享所有者可以向共享中添加表和卷,只要他们拥有对表的SELECT访问权限和对卷的READ VOLUME访问权限。

有关详细信息,请参阅 Unity 目录特权和安全对象 以及所描述的 Delta 共享任务列出的权限。

配置数据物化 TTL

作为 Azure Databricks 帐户或元存储管理员,您可以配置数据物化的 TTL,这决定了物化结果的缓存时长。 当接收者查询共享的动态视图、物化视图、流表和外部表时,会发生物化。 默认情况下,TTL 为 8 小时。 缓存本身将在另外三小时后被物化处理后逐出,为现有查询提供额外时间以完成。

若要更改此值,请执行以下作:

  1. 在 Azure Databricks 工作区中,单击 Data icon.Catalog打开目录资源管理器。

  2. 目录窗格顶部,单击齿轮图标并选择“增量共享”

    或者,在 Quick access 页上,单击 Delta Sharing > 按钮。

  3. 在“ 与我共享 ”选项卡上,单击右上角的组织名称。

  4. 单击查看 Delta Sharing 设置

  5. 对于 具体化 TTL,请输入所需的 TTL 值。

允许网络访问存储

如果您的基础云存储配置了访问控制,请将收件人的网络添加到允许列表,以便他们可以读取共享表。

有关详细信息,请参阅 配置Azure Storage防火墙和虚拟网络

后续步骤