从 Delta 客户端读取 Databricks 表

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

小贴士

有关如何使用 Microsoft Fabric 读取 Azure Databricks 数据的信息,请参阅 使用 Microsoft Fabric 读取在 Unity 目录中注册的数据。

使用 Unity REST API 读取数据

Unity REST API 为外部客户端提供对注册到 Unity Catalog 的 Delta 表的读取访问权限。 某些客户端还支持创建表及写入到现有表。

使用终结点 /api/2.1/unity-catalog 配置访问权限。

要求

Azure Databricks 支持通过 Unity REST API 访问 Unity Catalog 中的表。 必须在工作区启用 Unity Catalog 才能使用这些终结点。 以下表类型符合 Unity REST API 读取的条件:

  • Unity Catalog 托管表。
  • 使用 Delta Lake 存储的 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 Catalog 文档