本文概述了如何使用 Unity REST API 从外部 Delta 客户端访问 Unity 目录托管表和外部表。
使用 Iceberg REST 目录 从支持的 Iceberg 客户端(包括 Apache Spark 和 DuckDB)读取 Azure Databricks 上已注册的 Unity Catalog 表。
有关受支持的集成的完整列表,请参阅 Unity 目录集成。
Unity REST API 提供对注册到 Unity 目录的表的外部客户端读取访问权限。 某些客户端还支持创建表及写入现有表。
使用终结点 /api/2.1/unity-catalog
配置访问权限。
Azure Databricks 支持 Unity REST API 访问作为 Unity Catalog 的一部分的表。 必须在工作区中启用 Unity Catalog 才能使用这些终结点。 以下表类型符合 Unity REST API 读取的条件:
- Unity Catalog 托管表。
- Unity Catalog 外部表。
必须完成以下配置步骤,才能使用 Unity REST API 配置从 Delta 客户端读取 Databricks 对象的访问权限:
- 为元存储启用 外部数据访问 。 请参阅 在元存储上启用外部数据访问。
- 授予负责配置集成的主体在包含对象的架构上的
EXTERNAL USE SCHEMA
权限。 请参阅授予主体EXTERNAL USE SCHEMA
。 - 使用 Databricks 个人访问令牌进行身份验证。 请参阅 授权访问 Azure Databricks 资源。
下面是将 Apache Spark 配置为读取 Unity Catalog 托管表和外部 Delta 表的设置示例:
"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>/api/2.1/unity-catalog",
"spark.sql.catalog.<uc-catalog-name>.token":"<token>",
"spark.sql.defaultCatalog":"<uc-catalog-name>"
替换以下变量:
<uc-catalog-name>
:Unity Catalog 中包含表的目录的名称。<workspace-url>
:Azure Databricks 工作区的 URL。<token>
:配置集成的主体的 PAT 令牌。
重要
具体配置因支持目录的云对象存储类型而异。 有关其他配置,请参阅 OSS Unity 目录文档 。