重要
此功能目前以公共预览版提供。
小窍门
有关如何使用 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 目录元存储中注册的数据的访问权限。
路径凭据售货 提供对 Unity 目录元存储中的外部位置的访问权限。
表凭据自动售货
若要接收表的临时凭据,请求的 Azure Databricks 主体(用户、组或服务主体)必须对包含该表的架构具有 EXTERNAL USE SCHEMA
特权。 还必须显式启用 Unity 目录元存储才能进行外部访问。 请参阅启用对 Unity Catalog 数据的外部访问。
凭据包括短生存期访问令牌字符串和云存储位置 URL,外部引擎可使用它们从云存储位置访问表数据和元数据。
注意
表 Unity 目录凭据自动售货支持以下各项:
- 对 Unity 目录托管 Delta 表的只读访问权限。
- 对 Unity 目录托管的 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 表提供支持的云存储中的数据和元数据。 可使用凭证售卖返回的值来配置访问权限。
注意
启用 include_manifest_capabilities
选项后,可以调用 ListTables API 来检索支持凭据售卖的表格列表。 只有标记 HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT
或 HAS_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_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 的外部表不提供事务性保证。
不支持以下表类型或启用了功能的表:
- 应用了行筛选器或列掩码的表。
- 使用增量共享来共享的表。
- 湖屋联合表(外表)。
- 视图。
- Lakeflow 声明性管道流式处理表。
- 在线表格。
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 参考中的 “生成临时路径凭据 ”。