Доступ к таблицам Databricks с использованием клиентов Delta

На этой странице описывается, как использовать REST API Unity для создания, чтения и записи в таблицы, управляемые каталогом Unity, и внешние таблицы из клиентов Delta. Полный список поддерживаемых интеграции см. в разделе "Интеграция каталога Unity".

Совет

Сведения о том, как считывать данные Azure Databricks с помощью Microsoft Fabric, см. в Microsoft Fabric с Azure Databricks.

Создание, чтение и запись с помощью REST API Unity

Это важно

Создание и запись в управляемые таблицы каталога Unity из клиентов Delta находится в бета-версии.

REST API Unity предоставляет внешним клиентам доступ на создание, чтение и запись к таблицам, зарегистрированным в каталоге Unity. Настройте доступ с помощью URL-адреса рабочей области в качестве конечной точки. Доступны следующие типы таблиц:

Тип таблицы Читайте Напишите Создайте
Управляемый дельта Да Да* Да*
Внешняя разность Да Да Да

* Поддерживается для управляемых таблиц Delta с фиксациями каталога.

Требования

Azure Databricks поддерживает доступ REST API Unity к таблицам в рамках каталога Unity. Для использования этих конечных точек необходимо включить каталог Unity в рабочей области.

Чтобы настроить доступ к таблицам из клиентов Delta с помощью REST API Unity, необходимо выполнить следующие действия по настройке доступа к таблицам из клиентов Delta:

Ограничения

  • Внешний доступ к таблицам UniForm с IcebergCompatV3 в настоящее время не поддерживается. После внешней записи в таблицу UniForm необходимо запустить MSCK REPAIR TABLE в Databricks, чтобы создать метаданные Iceberg.
  • Изменения схемы (например, ALTER TABLE), обновления свойств таблицы и изменения функций таблицы в настоящее время не поддерживаются в управляемых таблицах из внешних клиентов.
  • Внешние клиенты не могут выполнять операции обслуживания таблиц, такие как OPTIMIZE, VACUUMи ANALYZEв управляемых таблицах Delta.
  • Внешние клиенты не могут создавать неглубокие клоны.
  • Внешние клиенты не могут создавать таблицы с созданными столбцами, столбцами по умолчанию или столбцами ограничений.
  • При создании внешних таблиц Azure Databricks рекомендует использовать Apache Spark, чтобы обеспечить совместимость определений столбцов с Apache Spark. API не проверяет правильность спецификации столбца. Если спецификация несовместима с Apache Spark, среда выполнения Databricks может не считывать таблицы.

Доступ к таблицам Delta с помощью Apache Spark с помощью проверки подлинности PAT

Требуется проверка подлинности PAT для внешних клиентов Spark:

  • Клиент Spark для Unity Catalog версии 0.4.1 или выше (io.unitycatalog:unitycatalog-spark)
  • Apache Spark 4.0 или более поздней версии
  • Delta Spark 4.2.0 или более поздней версии
  • Личный маркер доступа для субъекта, обращаюющегося к каталогу Unity. См. статью "Авторизация доступа к ресурсам Azure Databricks".

Следующая конфигурация необходима для чтения или записи в управляемые и внешние таблицы Delta каталога Unity с помощью Apache Spark с помощью проверки подлинности PAT:

"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>",
"spark.sql.catalog.<uc-catalog-name>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.2.0,io.unitycatalog:unitycatalog-spark_2.13:0.4.1,org.apache.hadoop:hadoop-azure:3.4.2"

Замените следующие переменные:

  • <uc-catalog-name>: имя каталога в каталоге Unity, содержащего таблицы.
  • <token>: личный маркер доступа (PAT) для субъекта, настраивающего интеграцию.
  • <workspace-url>: URL-адрес рабочей области Azure Databricks, включая идентификатор рабочей области. Например: adb-1234567890123456.12.azuredatabricks.net.

Замечание

Приведенные выше версии пакета являются текущими по состоянию на последнее обновление этой страницы. Более новые версии могут быть доступны. Убедитесь, что версии пакетов совместимы с версией Spark.

Дополнительные сведения о настройке Apache Spark для облачного хранилища объектов см. в документации Unity Catalog OSS.

Это важно

Databricks Runtime 16.4 и более поздних версий требуется для чтения, записи в таблицы или создания таблиц с включенными фиксациями каталога. Databricks Runtime 18.0 и более поздних версий требуется для включения или отключения фиксаций каталога в существующих таблицах.

Чтобы создать управляемые таблицы Delta с фиксациями каталога, используйте следующий SQL:

CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported') USING delta;

Чтобы создать внешние таблицы Delta, используйте следующий SQL:

CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
USING delta
LOCATION <path>;

Доступ к таблицам Delta с помощью Apache Spark с помощью проверки подлинности OAuth

Azure Databricks также поддерживает проверку подлинности OAuth на компьютере (M2M). OAuth автоматически обрабатывает обновление срока действия токенов и учетных данных для аутентификации в Unity Catalog.

Требуется проверка подлинности OAuth для внешних клиентов Spark:

Следующая конфигурация необходима для создания, чтения или записи в управляемые таблицы каталога Unity и внешних таблиц Delta с помощью Apache Spark с помощью проверки подлинности OAuth:

"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>",
"spark.sql.catalog.<uc-catalog-name>.auth.type": "oauth",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.2.0,io.unitycatalog:unitycatalog-spark_2.13:0.4.1,org.apache.hadoop:hadoop-azure:3.4.2"

Замените следующие переменные:

  • <workspace-url>: URL-адрес рабочей области Azure Databricks, включая идентификатор рабочей области. Например: adb-1234567890123456.12.azuredatabricks.net.

Замечание

Приведенные выше версии пакета являются текущими по состоянию на последнее обновление этой страницы. Более новые версии могут быть доступны. Убедитесь, что версии пакетов совместимы с версией Spark.