Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
重要
此功能目前以公共预览版提供。
小窍门
有关如何使用 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 目录系统元存储中的外部位置的访问权限。
要求
- 必须在元存储上配置外部访问,并将
EXTERNAL USE SCHEMA授予请求者的主体。 请参阅在元存储上启用外部数据访问。 - 请求引擎必须可访问工作区 URL,包括IP 访问列表后面的引擎或Azure 专用链接。
- 必须通过防火墙和网络控制访问云存储 URL。
表格凭证发放
表凭据包括一个短期有效的访问令牌字符串和一个云存储位置的 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_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": "<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 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 参考中的 “生成临时路径凭据 ”。