用于外部系统访问的 Unity Catalog 凭证售卖

重要

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

本文介绍 Unity Catalog 凭证售卖功能如何支持从外部处理引擎访问 Azure Databricks 中的数据。

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

什么是 Unity Catalog 凭证售卖?

凭证售卖使用 Unity Catalog REST API 授予生存期较短的凭证。 授予的凭证会继承用于配置集成的 Azure Databricks 主体的特权。 这些凭证授予外部客户端对 Unity Catalog 元存储中注册数据的访问权限。

注意

Unity Catalog 凭证售卖支持对 Unity Catalog 数据的只读访问。 某些客户端支持访问 Delta Lake 支持的表,而另一些客户端则要求对表启用 Iceberg 读取 (UniForm)。 请参阅在 Delta 表 (UniForm) 上启用 Iceberg 读取

要获得临时凭证,发出请求的 Azure Databricks 主体(用户、组或服务主体)必须具有对架构的 EXTERNAL USE SCHEMA 特权。此架构中包含需要从外部引擎访问的表。 包含该架构的 Unity Catalog 元存储还必须显式启用外部访问。 请参阅启用对 Unity Catalog 数据的外部访问

凭证包括短生存期访问令牌字符串和云存储位置 URL,外部引擎可将其用于从云存储位置访问表数据和元数据。

要求

  • 必须在元存储上配置外部访问权限,并且授予 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 表的云对象存储中的数据和元数据。 可使用凭证售卖返回的值来配置访问权限。

注意

启用 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 "Authentication: 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

限制

存在以下限制:

  • 并非所有外部客户端都支持凭证售卖,并且支持可能会因基础云对象存储而异。

  • 仅支持由 Delta Lake 支持的 Unity Catalog 托管表和 Unity Catalog 外部表。

  • 不支持启用了功能的以下表类型或表:

    • 应用了行筛选器或列掩码的表。
    • 使用 Delta Sharing 共享的表。
    • Lakehouse 联合表(外表)。
    • 视图。
    • 增量实时表流式处理表。
    • 在线表。