此页面解释如何通过“Delta Sharing”访问已与你共享的数据。 Delta 共享支持两种模型:Databricks-to-Databricks 共享(适用于拥有 Unity Catalog 的 Azure Databricks 工作区用户)和开放共享(适用于使用任何工具的任何收件人)。
Delta Sharing 和数据接收方
Delta Sharing 是安全数据共享的开放标准。 Databricks 用户,本上下文中称为数据提供者,可以使用 Azure Databricks 上的 Delta Sharing 与其组织外部的人员或组(称为数据接收者)共享数据。
Databricks 至 Databricks 共享与开放共享
访问数据的方式取决于你自己是否是 Databricks 用户,以及数据提供程序是否将与你共享的数据配置为 Databricks 到 Databricks 共享或开放共享。
在 Databricks 到 Databricks 模型中,你必须是已启用 Unity Catalog 的 Databricks 工作区中的用户。 团队的一名成员为数据提供程序提供 Unity Catalog 元存储的唯一标识符,数据提供程序使用该标识符创建安全的共享连接。 共享数据可以在您的工作区中访问。 如有必要,团队成员会对该数据配置精细访问控制。
在开放共享模型中,可以使用你偏好的任何工具(包括 Databricks)来访问共享的数据。 数据提供程序通过安全通道发送激活 URL 或门户链接。 可以按照它下载凭据文件或 URL,以便访问与你共享的数据。
共享数据并非由 Databricks 直接提供,而是由 Azure Databricks 上运行的数据提供程序提供。
注意
Databricks 可能会收集有关数据接收者使用和访问共享数据的信息(包括识别使用与此类信息相关的凭证文件访问数据的任何个人或公司),并可能与适用的数据提供者共享。
获取对共享给你的数据的访问权限
访问数据的方式取决于数据提供方是否使用开放共享协议或 Databricks 到 Databricks 共享协议与您共享数据。 请参阅 Databricks 之间的数据共享及开放数据共享。
在 Databricks 系统间数据共享模型中获取访问权限
在 Databricks 到 Databricks 共享模型中:
数据提供程序向你发送说明,以便你能够查找与 Databricks 工作区关联的 Unity Catalog 元存储的唯一标识符,然后你将此标识符发送给提供程序。
共享标识符是由元存储的云、区域和 UUID(元存储的唯一标识符)组成的字符串,格式为
<cloud>:<region>:<uuid>。 例如aws:cn-north-1:b0c978c8-3e68-4cdf-94af-d05c120ed1ef。若要使用目录资源管理器获取共享标识符,请执行以下操作:
在 Azure Databricks 工作区中,单击
目录。
在目录窗格顶部,单击
并选择“增量共享”。
或者,在“快速访问”页中,单击“Delta Sharing”按钮>。
在“ 与我共享 ”选项卡上,选择右上角的 Databricks 共享组织名称,然后选择“ 复制共享标识符”。
若要使用笔记本或 Databricks SQL 查询获取共享标识符,请使用默认的 SQL 函数
CURRENT_METASTORE。 如果使用笔记本,则必须在工作区中 标准或专用访问模式 运行,才能访问共享数据。SELECT CURRENT_METASTORE();数据提供程序创建:
- 在其 Databricks 帐户中创建一个接收者,表示你以及组织中有权访问数据的用户。
- 一个共享表示要与你共享的表格、存储卷和视图。
你可以访问与你共享的数据。 如有必要,你或团队中的某人可为用户配置对该数据的精细数据访问。 请参阅使用 Databricks-to-Databricks Delta Sharing 读取共享数据(针对接收者)。
在开放共享模型中获取访问权限
在开放共享模型中:
数据提供者创建:
- 在其 Databricks 帐户中创建一个接收者,表示你以及组织中有权访问数据的用户。
- 创建一个共享,表示要与你共享的表和分区。
数据提供者会通过安全通道发送给您激活 URL 或门户 URL。 可以按照它下载凭据文件或 URL,以便访问与你共享的数据。
支持持有者令牌和 OAuth 客户端凭据。
重要
不要与任何人分享激活链接。 只能下载凭据文件一次。 如果在下载凭据文件后再次访问激活链接,则“下载凭据文件”按钮处于禁用状态。
如果在使用激活链接之前丢失了激活链接,请联系数据提供者。
将凭据文件存储在安全位置中。
不要与有权访问共享数据的用户组之外的任何人共享凭据文件。 如果需要与组织中的某人共享它,Databricks 建议使用密码管理器。
读取共享数据
如何读取使用 Delta Sharing 与你安全共享的数据取决于你是获取了凭据文件(开放共享模型),还是使用 Databricks 工作区并为数据提供程序提供了你的共享标识符(Databricks 到 Databricks 共享模型)。
注意
如果在尝试读取共享时收到一个错误,指出数据资产不存在,请参阅 数据资产“不存在”错误。
使用凭据文件读取共享的数据(开放共享)
如果通过使用 Delta Sharing 开放共享协议和持票者令牌共享数据,应使用下载的凭证文件验证数据提供商的帐户并读取共享数据。 只要基础令牌有效且提供程序继续共享数据,访问就会持续。 提供程序管理令牌过期和轮换。 令牌在创建后最多一年有效。 你可以准乎实时地获得对数据的更新。 可读取和复制共享数据,但不能修改源数据。
若要了解如何使用 Azure Databricks、Apache Spark、pandas 和 Power BI 中的凭据文件访问和读取共享数据,请参阅 使用 Delta Sharing 和持有者令牌读取共享数据(适用于接收者)。
使用 OIDC 联邦读取共享数据(开放共享)
如果数据是通过 Delta Sharing 开放共享协议和 OIDC 联合身份验证共享给你的,请使用发送给你的 URL 对数据提供方的账户进行身份验证,并读取共享数据。 只要提供程序继续共享数据,Access 就持续存在。 你可以准乎实时地获得对数据的更新。 可读取和复制共享数据,但不能修改源数据。
若要了解如何在 Tableau 和 Power BI 中通过 OIDC 令牌联合流访问和读取共享数据,请参阅 在用户到计算机流(开放共享)中使用 Open ID Connect (OIDC) 联合流接收 Delta Sharing 数据。 若要了解如何在 Python 客户端应用中使用 OIDC 联合身份验证流访问和读取共享数据,请参阅 计算机到计算机流(开放共享)中使用 Python 客户端和 Open ID Connect (OIDC) 联合身份验证接收增量共享。
使用 Databricks 间共享读取数据
如果数据是使用 Databricks 到 Databricks 共享模型与你共享的,则你无需凭据文件即可访问共享的数据。 Databricks 将负责创建安全连接,在你的 Databricks 工作区中可以自动发现共享的数据。
若要了解如何在 Databricks 工作区中查找、读取和管理这些共享的数据,请参阅使用 Databricks-to-Databricks Delta Sharing 读取共享数据(针对接收者)。