用于外部系统访问的 Unity Catalog 凭证分发

重要

此功能目前以公共预览版提供。

小窍门

有关如何使用 Azure Fabric 读取 Azure Databricks 数据的信息,请参阅使用 Azure Fabric 读取 Unity 目录中注册的数据。

本页介绍了 Unity 目录凭据自动售货功能如何支持从外部处理引擎访问 Azure Databricks 中的数据。

凭据售货支持使用 Unity REST API 和 Apache Iceberg REST 目录连接到 Unity 目录的外部系统。 请参阅 从 Delta 客户端访问 Databricks 表 以及 使用外部系统访问 Databricks 数据

什么是 Unity Catalog 凭据分发?

凭证售卖使用 Unity Catalog REST API 授予生存期较短的凭证。 授予的凭据会继承用于配置集成的 Azure Databricks 主体的权限。 凭证分发有两种类型:

  • 表凭据管理 提供对 Unity Catalog 元目录存储中注册的数据的访问权限。
  • 路径凭据分发 提供对 Unity 目录系统元存储中的外部位置的访问权限。

要求

表格凭证发放

表凭据包括一个短期有效的访问令牌字符串和一个云存储位置的 URL,外部引擎可使用它们从云存储位置访问表数据和元数据。

支持的访问类型

表格凭据分发支持以下表格类型和操作:

表类型 读取 Write 创建
托管增量 是* 是*
外部变动
托管 Iceberg
Delta 搭配 Iceberg 的读取(UniForm) 是**

从 Delta 客户端创建和写入 Unity Catalog 管理的表目前处于 Beta 阶段

** 从 Delta 客户端外部写入 UniForm 表后,运行 MSCK REPAIR TABLE 以生成 Iceberg 元数据。

注意

某些客户端支持访问基于 Delta Lake 的表,而另一些客户端则要求在表上启用 Iceberg 读取(UniForm)。 请参阅使用 Iceberg 客户端读取 Delta 表

请求用于外部数据访问的临时表凭据

对凭证售卖的支持因外部客户端而异。 在支持的情况下,客户端应在配置连接时自动利用提供的凭证。

本部分提供显式调用凭证售卖 API 终结点的示例。 某些外部客户端可能需要您显式设置配置,以访问为 Unity Catalog 表提供支持的云存储中的数据和元数据。 可使用凭证售卖返回的值来配置访问权限。

注意

启用 include_manifest_capabilities 选项后,可以调用 ListTables API 来检索支持凭据售卖的表格列表。 只有标记 HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORTHAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT 的表格有资格在临时表凭据 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 外部表。
  • 不支持以下类型的表或启用了功能的表:
    • 应用了行筛选器或列掩码的表。
    • 使用增量共享来共享的表。
    • 湖屋联合表(外表)。
    • 视图。
    • 具体化视图。
    • 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 参考中的 “生成临时路径凭据 ”。