重要说明
此功能目前以公共预览版提供。
小贴士
有关如何使用 Microsoft Fabric 读取Azure Databricks数据的信息,请参阅 使用 Microsoft Fabric 读取 Unity 目录中注册的数据。
本页描述 Unity Catalog 的凭据管理功能如何支持外部处理引擎访问 Azure Databricks 中的数据。
凭据销售支持使用 Unity REST API 和 Apache Iceberg REST 目录连接到 Unity 目录的外部系统。 请参阅 从 Delta 客户端访问 Databricks 表 以及 使用外部系统访问 Databricks 数据。
什么是 Unity Catalog 凭证分发?
凭证售卖使用 Unity Catalog REST API 授予短期凭据。 已授予的凭据继承了用于配置集成的 Azure Databricks 主体的权限。 凭证分发有两种类型:
- 表凭据分发 提供对 Unity Catalog 元数据存储中注册的数据的访问权限。
- 路径凭据分发 提供对 Unity Catalog 中外部位置的访问权限。
要求
- 必须在元存储上配置外部访问,并将
EXTERNAL USE SCHEMA授予请求者的主体。 请参阅在元存储上启用外部数据访问。 - 请求引擎必须可访问工作区 URL,包括IP 访问列表后面的引擎或Azure 专用链接。
- 必须通过防火墙和网络控制访问云存储 URL。
表格凭据分发
表凭据包括一个短期有效的访问令牌字符串和一个云存储位置的 URL,外部引擎可使用它们从云存储位置访问表数据和元数据。
支持的访问类型
表格凭据分发支持以下表格类型和操作:
| 表类型 | 阅读 | 写入 | 创建 |
|---|---|---|---|
| 托管增量 | 是的 | 是* | 是* |
| 外部变动 | 是的 | 是的 | 是的 |
| 托管 Iceberg | 是的 | 是的 | 是的 |
| Delta 搭配 Iceberg 的读取(UniForm) | 是的 | 是** | 否 |
从 Delta 客户端创建和写入 Unity Catalog 管理的表目前处于 Beta 阶段。
** 从 Delta 客户端外部写入 UniForm 表后,运行 MSCK REPAIR TABLE 以生成 Iceberg 元数据。
注释
某些客户端支持访问基于 Delta Lake 的表,而另一些客户端则要求在表上启用 Iceberg 读取(UniForm)。 请参阅使用 Iceberg 客户端读取 Delta 表。
请求用于外部数据访问的临时表凭据
对凭证售卖的支持因外部客户端而异。 在支持的情况下,客户端应在配置连接时自动利用所提供的凭证。
本部分提供显式调用凭证售卖 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": "<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 版本进行凭据刷新。
路径认证凭据分发
颁发的凭据允许直接访问云存储位置,范围限定为相关路径。 它们在有限的时间内有效,不会授予超出定义的位置或表的更广泛访问权限。
请求用于外部数据访问的临时路径凭据
对凭证售卖的支持因外部客户端而异。 在支持的情况下,客户端应在配置连接时自动利用所提供的凭证。
本部分提供显式调用凭证售卖 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 参考中的生成临时路径凭据。