重要说明
此功能目前以公共预览版提供。
小贴士
有关如何使用 Microsoft Fabric 读取 Azure Databricks 数据的信息,请参阅 使用 Microsoft Fabric 读取在 Unity 目录中注册的数据。
本页介绍了 Unity 目录凭据自动售货功能如何支持从外部处理引擎访问 Azure Databricks 中的数据。
凭据销售支持使用 Unity REST API 和 Apache Iceberg REST 目录连接到 Unity 目录的外部系统。 请参阅从 Delta 客户端读取 Databricks 表和使用外部系统访问 Databricks 数据。
什么是 Unity Catalog 凭证分发?
凭证售卖使用 Unity Catalog REST API 授予短期凭据。 授予的凭证会继承用于配置集成的 Azure Databricks 主体的权限。
表凭据售货 提供对 Unity 目录元存储中注册的数据的访问权限。
路径凭据售货 提供对 Unity 目录元存储中的外部位置的访问权限。
表凭据自动售货
若要接收表的临时凭据,请求的 Azure Databricks 主体(用户、组或服务主体)必须对包含该表的架构具有 EXTERNAL USE SCHEMA 特权。 还必须显式启用 Unity 目录元存储才能进行外部访问。 请参阅启用对 Unity Catalog 的外部数据访问。
凭证包括有效期较短的访问令牌字符串和云存储位置 URL,供外部引擎用于从云存储位置访问表数据和元数据。
注释
表 Unity 目录凭据自动售货支持以下各项:
- 对 Unity Catalog 管理的 Delta 表的只读访问权限。
- 对 Unity Catalog 管理的 Iceberg 表的读取和写入访问权限。
- 对为 Iceberg 读取配置的 Delta 表的只读权限。
- 创建 Access Unity 目录外部表。
- 对 Unity Catalog 外部表的读写访问权限。
某些客户端支持访问基于 Delta Lake 的表,而另一些客户端则要求在表上启用 Iceberg 读取(UniForm)。 请参阅使用 Iceberg 客户端读取 Delta 表。
要求
- 必须在元存储上配置外部访问,并将
EXTERNAL USE SCHEMA授予配置连接的主体。 请参阅启用对 Unity Catalog 的外部数据访问。 - 若要使用 Unity Catalog Open API 或 Iceberg REST API 访问 Azure Databricks 工作区,执行请求的引擎必须能够访问工作区 URL。 这包括使用 IP 访问列表或 Azure 专用链接的工作区。
- 若要访问 Unity Catalog 注册数据对象的基础云存储位置,执行请求的引擎必须能够访问由 Unity Catalog 临时凭据 API 生成的存储 URL。 这意味着必须在基础云存储帐户的防火墙和网络访问控制列表中允许该引擎。
请求用于外部数据访问的临时表凭据
对凭证售卖的支持因外部客户端而异。 在支持的情况下,客户端应在配置连接时自动利用所提供的凭证。
本部分提供显式调用凭证售卖 API 终结点的示例。 一些外部客户端可能会要求显式设置配置,以访问支持 Unity Catalog 表的云对象存储中的数据和元数据。 可以使用凭证售卖返回的值来配置访问权限。
注释
通过调用 ListTables API 并启用 include_manifest_capabilities 选项,可检索支持凭证售卖的表列表。 只有标记了 HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT 或 HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT 的表才有资格在 temporary-table-credentials API 中被引用。 请参阅 GET /api/2.1/unity-catalog/tables。
以下 curl 示例显式请求用于外部数据访问的临时凭据。 此请求必须由具有足够特权的工作区主体完成。
curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation_name": "<READ|READ_WRITE>"}'
有关详细信息,请参阅 Azure Databricks REST API 参考中的 POST /api/2.1/unity-catalog/temporary-table-credentials。
限制
存在以下限制:
- 并非所有外部客户端都支持凭证售卖,并且支持可能会因基础云对象存储而异。
- 仅支持 Unity Catalog 托管表和 Unity Catalog 外部表。
- 为进行 Iceberg 读取而启用的表共享此要求。 请参阅使用 Iceberg 客户端读取 Delta 表。
- Delta Lake 读取器客户端只能读取 Delta Lake 支持的表,并且必须支持表上启用的所有启用读取器或编写器协议。 请参阅 Delta Lake 功能兼容性和协议。
- 不使用 Delta Lake 的外部表不提供事务性保证。
- 不支持以下类型的表或启用了功能的表:
- 具有行筛选器或列掩码的表。
- 使用 Delta Sharing 共享的表。
- 湖屋联合表(外表)。
- 视图。
- 具体化视图。
- Lakeflow Spark 声明式管道流式表。
- 在线表。
- 矢量搜索索引。
- Iceberg 1.9.0 不支持凭据刷新。 使用最新的 Iceberg 版本进行凭据刷新。
路径凭据出售
若要接收路径的临时凭据,必须授予请求的 Azure Databricks 主体:
- 对外部位置的
EXTERNAL USE LOCATION权限。 -
EXTERNAL USE SCHEMA访问外部表时,对架构的特权。
与表凭据售货一样,必须显式启用 Unity 目录元存储才能进行外部访问。 请参阅启用对 Unity Catalog 的外部数据访问。
颁发的凭据允许直接访问云存储位置,范围限定为相关路径。 它们在有限的时间内有效,不会授予超出定义的位置或表的更广泛访问权限。
要求
- Unity 目录元存储必须启用外部访问权限,并且必须授予
EXTERNAL USE LOCATION请求主体。 如果访问外部表,还必须授予EXTERNAL USE SCHEMA它们。 请参阅启用对 Unity Catalog 的外部数据访问。 - 外部引擎必须能够访问 Azure Databricks 工作区 URL。 这适用于使用 IP 访问列表 或 Azure 专用链接的工作区。
- 凭据出售 API 生成的云存储 URL 必须可供外部引擎访问。 确保基础云存储帐户上的防火墙和网络访问控制允许引擎。
请求用于外部数据访问的临时路径凭据
对凭证售卖的支持因外部客户端而异。 在支持的情况下,客户端应在配置连接时自动利用所提供的凭证。
本部分提供显式调用凭证售卖 API 终结点的示例。 一些外部客户端可能会要求显式设置配置,以访问支持 Unity Catalog 表的云对象存储中的数据和元数据。 可以使用凭证售卖返回的值来配置访问权限。
以下 curl 示例显式请求用于外部数据访问的临时凭据。 此请求必须由具有足够特权的工作区主体完成。
curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-path-credentials \
-d '{"url": "<string>", "operation": <PATH_READ|PATH_READ_WRITE|PATH_CREATE_TABLE>"}'
有关详细信息,请参阅 Azure Databricks REST API 参考中的 “生成临时路径凭据 ”。