从 Delta 客户端读取 Databricks 表

本文概述了如何使用 Unity REST API 从外部 Delta 客户端访问 Unity 目录托管表和外部表。

使用 Iceberg REST 目录 从支持的 Iceberg 客户端(包括 Apache Spark 和 DuckDB)读取 Azure Databricks 上已注册的 Unity Catalog 表。

有关受支持的集成的完整列表,请参阅 Unity 目录集成

使用 Unity REST API 读取和写入

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 对象的访问权限:

使用 Apache Spark 读取 Delta 表

下面是将 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 目录文档