本页介绍数据提供方(希望使用 OpenSharing 安全共享数据的组织)如何在 Azure Databricks 上设置 OpenSharing。
如果你是数据接收方(接收通过 OpenSharing 共享的数据的组织),请参阅读取通过 Databricks-to-Databricks OpenSharing 共享的数据(面向接收方)。
Important
OpenSharing 需要启用 Unity 目录的工作区。 可以创建一个启用了 Unity Catalog 的工作区进行共享管理。 在某些帐户中,会自动为 Unity Catalog 启用新工作区。 请参阅 Unity 目录入门。
如果创建新的启用了 Unity 目录的工作区不是一个选项,则可以使用 开源 OpenSharing 项目部署自己的 OpenSharing 服务器,以从任何平台共享 Delta 表。
初始提供程序设置包括以下步骤:
在 Unity Catalog 元存储上启用 OpenSharing。
(可选)安装 Unity Catalog CLI。
授予创建和管理共享和收件人的权限。
配置数据物化的生存周期(TTL)。
配置存储网络访问。
要求
作为数据提供者,为了将您的 Azure Databricks 帐户设置为能够共享数据,您必须具备:
至少需要一个已为 Unity Catalog 启用的 Azure Databricks 工作区。
您无需将所有工作区都迁移到 Unity Catalog,即可借助 Databricks 对 Open Sharing 提供方的支持。 请参阅 是否需要 Unity 目录才能使用 OpenSharing?。
接收方不需要启用 Unity Catalog 的工作区。
用于为您的 Unity Catalog 元存储启用 OpenSharing 的账户管理员角色。
Metastore 管理员角色或者
CREATE SHARE和CREATE RECIPIENT权限。 请参阅元存储管理员。注释
如果工作区已自动为 Unity Catalog 启用,你可能没有元存储管理员。但是,默认情况下,此类工作区中的工作区管理员对元存储拥有
CREATE SHARE和CREATE RECIPIENT权限。有关详细信息,请参阅Unity Catalog 入门和为工作区自动启用 Unity Catalog 时的工作区管理员权限。
允许接收方网络访问的云存储配置。
在元存储上启用 OpenSharing
如果打算仅使用 OpenSharing 与帐户中的其他 Unity 目录元存储上的用户共享数据,则无需在元存储上启用 OpenSharing。 默认情况下,在单个 Azure Databricks 帐户中启用元存储到元存储共享。
否则,请对每个管理着你计划使用 OpenSharing 共享的数据的 Unity Catalog 元存储执行以下步骤。
以 Azure Databricks 帐户管理员身份登录到帐户控制台。
在边栏中,单击
目录。
单击一个元数据存储的名称以打开其详细信息。
单击 “允许与组织外部各方共享”旁边的复选框。
配置接收者令牌生存期。
此配置设定了所有接收者令牌在多长时间后会过期并必须重新生成。 接收方令牌仅用于 Databricks 到 Open 的共享 协议中。 令牌在创建后最多一年有效。
注释
更改元存储的默认收件人令牌生存期时,现有收件人的收件人令牌生存期不会自动更新。 若要为给定的收件人应用新的令牌生存期,必须轮换其令牌。 请参阅 “管理收件人令牌”。
设置默认收件人令牌生存期:
确认“设置过期”已启用(这是默认设置)。
输入秒数、分钟数、小时数或天数,然后选择度量单位。 令牌在创建后最多一年有效。
单击 “启用” 。
有关详细信息,请参阅令牌安全注意事项。
与不在帐户中的 Azure Databricks 收件人共享时,请输入 组织名称。
注释
指定可读组织名称有助于收件人识别其共享提供程序和收件人提供商列表中的相应提供程序对象。
单击 “启用” 。
(可选)安装 Unity Catalog CLI
若要管理共享和收件人,可使用目录资源管理器、SQL 命令或 Unity Catalog CLI。 CLI 在本地环境中运行,不需要 Azure Databricks 计算资源。
若要安装 CLI,请参阅 Databricks CLI。
授予创建和管理共享和接收者的权限
元存储管理员能够创建和管理共享和收件人,包括向收件人授予共享。 元存储管理员可以通过以下权限将许多提供者的任务委托出去:
- 元存储上的
CREATE SHARE授予创建共享的权限。 - 元存储上的
CREATE RECIPIENT授予创建接收者的权利。 - 元存储上的
USE RECIPIENT授予列出和查看元存储中所有接收者的详细信息的权利。 - 元存储上的
USE SHARE授予列出和查看元存储中所有共享的详细信息的权利。 -
USE RECIPIENT、USE SHARE,和SET SHARE PERMISSION组合在一起使用户能够向接收者授予共享访问权限。 - 元存储管理员能够转移任何共享的所有权。
- 共享和接收者方所有者可以更新这些对象并向接收者授予分享权限。 默认情况下,对象创建者会被授予所有权,但所有权可以转让。
- 共享所有者可以向共享中添加表和卷,只要他们拥有对表的
SELECT访问权限和对卷的READ VOLUME访问权限。
有关详情,请参阅Unity Catalog 权限参考以及上述 OpenSharing 任务所列出的权限。
配置数据物化 TTL
作为 Azure Databricks 帐户或元存储管理员,您可以配置数据物化的 TTL,这决定了物化结果的缓存时长。 当接收者查询共享的动态视图、物化视图、流表和外部表时,会发生物化。 默认情况下,TTL 为 8 小时。 缓存本身将在另外三小时后被物化处理后逐出,为现有查询提供额外时间以完成。
若要更改此值,请执行以下作:
在 Azure Databricks 工作区中,单击
Catalog打开目录资源管理器。
在“目录”窗格顶部,单击
,然后选择OpenSharing。
或者,在右上角,单击“ 共享 > OpenSharing”。
在“ 与我共享 ”选项卡上,单击右上角的组织名称。
单击右上
齿轮图标。
对于 具体化 TTL,请输入所需的 TTL 值。
允许网络访问存储
如果您的基础云存储配置了访问控制,请将收件人的网络添加到允许列表,以便他们可以读取共享表。