Поделиться через


Чтение таблиц Azure Databricks клиентами Delta Lake

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

Используйте каталог REST Iceberg для чтения таблиц, зарегистрированных в каталоге Unity в Azure Databricks, из поддерживаемых клиентов Iceberg, включая Apache Spark и DuckDB.

Полный список поддерживаемых интеграции см. в разделе "Интеграция каталога Unity".

Совет

Сведения о чтении данных Azure Databricks с помощью Microsoft Fabric см. в статье Использование Microsoft Fabric для чтения данных, зарегистрированных в каталоге Unity.

Чтение и запись с помощью REST API Unity

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

Настройте доступ с помощью URL-адреса рабочей области. Клиент Spark каталога Unity автоматически направляет запросы к соответствующей конечной точке API каталога Unity.

Это важно

URL-адрес рабочей области, используемый для конечной точки REST API Unity, должен содержать идентификатор рабочей области. Без идентификатора рабочей области запросы API могут возвращать 303 перенаправление на страницу входа вместо ожидаемого ответа.

Чтобы найти URL-адрес рабочей области и идентификатор рабочей области, ознакомьтесь с именами экземпляров рабочей области, URL-адресами и идентификаторами.

Требования

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

  • Таблицы, управляемые каталогом Unity.
  • Внешние таблицы каталога Unity.

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

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

Azure Databricks поддерживает проверку подлинности OAuth на компьютере (M2M). OAuth автоматически управляет обновлением токена для аутентификации каталога Unity. Для длительных заданий, для которых также требуется автоматическое продление учетных данных облачного хранилища, включите spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled параметр в конфигурации Spark.

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

Следующая конфигурация необходима для чтения управляемых таблиц каталога Unity и внешних таблиц Delta Lake с 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.catalog.<uc-catalog-name>.renewCredential.enabled": "true",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-azure:3.3.6"

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

Замечание

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

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

Это важно

Databricks рекомендует использовать OAuth вместо PATs для проверки подлинности учетных записей пользователей, так как OAuth обеспечивает более надежную безопасность. Сведения о проверке подлинности с помощью учетной записи пользователя Databricks с помощью OAuth см. в статье "Авторизация доступа пользователей к Azure Databricks с помощью OAuth".

Конфигурация

Следующие пакеты или JAR должны быть включены в конфигурацию Spark:

  • Delta Lake Spark (io.delta:delta-spark): обеспечивает поддержку Delta Lake для Apache Spark.
  • Соединитель Spark каталога Unity (io.unitycatalog:unitycatalog-spark): подключает Apache Spark к каталогу Unity.
  • Соединитель облачного хранилища: требуется для доступа к облачному хранилищу объектов, резервному хранилищу таблиц. Соединитель зависит от поставщика облачных служб:
    • AWS: org.apache.hadoop:hadoop-aws — обеспечивает поддержку файловой системы S3.
    • Azure: org.apache.hadoop:hadoop-azure предоставляет поддержку Azure Data Lake Storage 2-го поколения.
    • GCP: gcs-connector JAR — предоставляет поддержку Google Cloud Storage. Скачайте JAR отдельно и сошлитесь на него с помощью spark.jars.

Дополнительные облачные конфигурации см. в документации по каталогу Unity OSS.

"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_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-azure:3.3.6"

:::

Переменные

Замените следующие переменные в конфигурации:

  • <uc-catalog-name>: имя каталога Unity Catalog, содержащего ваши таблицы.
  • <token>: личный маркер доступа (PAT) для субъекта, настраивающего интеграцию.

Продление полномочий

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

"spark.sql.catalog.<catalog-name>.renewCredential.enabled": true

Замечание

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