Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице представлен обзор использования 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, необходимо выполнить следующие действия.
- Включите доступ к внешнему данным для вашего хранилища метаданных. См. включение доступа к внешним данным в хранилище метаданных.
- Предоставьте администратору, который настраивает интеграцию, привилегии
EXTERNAL USE SCHEMAна схему, содержащую объекты. Смотрите раздел "Предоставление привилегий каталога Unity субъекту". - Проверка подлинности с помощью одного из следующих методов:
- Аутентификация OAuth для межмашинного взаимодействия (M2M): поддерживает автоматическое обновление учетных данных и токенов для долгосрочных заданий Spark (>1 час). См Авторизация доступа сервисного принципала к Azure Databricks с помощью OAuth.
- Личный маркер доступа (PAT): см. статью "Авторизация доступа к ресурсам Azure Databricks".
Чтение таблиц Delta Lake с помощью Apache Spark с помощью проверки подлинности OAuth
Azure Databricks поддерживает проверку подлинности OAuth на компьютере (M2M). OAuth автоматически управляет обновлением токена для аутентификации каталога Unity. Для длительных заданий, для которых также требуется автоматическое продление учетных данных облачного хранилища, включите spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled параметр в конфигурации Spark.
Для внешних клиентов Apache Spark требуется проверка подлинности OAuth:
- Клиент Spark каталога Unity версии 0.3.1 или более поздней (
io.unitycatalog:unitycatalog-spark) - Apache Spark 4.0 или более поздней версии
- Delta Lake Spark 4.0.1 или более поздней версии с поддержкой OAuth
- Субъект-служба OAuth M2M с соответствующими разрешениями. См Авторизация доступа сервисного принципала к Azure Databricks с помощью 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"
Замените следующие переменные:
-
<uc-catalog-name>: имя каталога в каталоге Unity, содержащего таблицы. -
<oauth-token-endpoint>: URL-адрес конечной точки маркера OAuth. Чтобы создать этот URL-адрес, выполните указанные ниже действия.- Найдите идентификатор учетной записи Azure Databricks. См. раздел Найдите свой идентификатор учетной записи.
- Используйте формат:
https://accounts.cloud.databricks.com/oidc/accounts/<account-id>/v1/token
-
<oauth-client-id>: идентификатор клиента OAuth для субъекта-службы. См Авторизация доступа сервисного принципала к Azure Databricks с помощью OAuth. -
<oauth-client-secret>: секрет клиента OAuth для служебного принципала. См Авторизация доступа сервисного принципала к Azure Databricks с помощью OAuth.
-
<workspace-url>: URL-адрес рабочей области Azure Databricks, включая идентификатор рабочей области. Например:adb-1234567890123456.12.azuredatabricks.net.
Замечание
Приведенные выше версии пакета являются текущими по состоянию на последнее обновление этой страницы. Более новые версии могут быть доступны. Убедитесь, что версии пакетов совместимы с версией 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-connectorJAR — предоставляет поддержку Google Cloud Storage. Скачайте JAR отдельно и сошлитесь на него с помощьюspark.jars.
-
AWS:
Дополнительные облачные конфигурации см. в документации по каталогу 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) для субъекта, настраивающего интеграцию.
-
<workspace-url>: URL-адрес рабочей области Azure Databricks, включая идентификатор рабочей области. Например:adb-1234567890123456.12.azuredatabricks.net.
Продление полномочий
Чтобы включить автоматическое продление учетных данных для длительных заданий, добавьте следующую конфигурацию:
"spark.sql.catalog.<catalog-name>.renewCredential.enabled": true
Замечание
Приведенные выше версии пакета являются текущими по состоянию на последнее обновление этой страницы. Более новые версии могут быть доступны. Убедитесь, что версии пакетов совместимы с версиями Databricks Runtime и Spark.