Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице описывается, как использовать 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:
- Включите доступ к внешнему данным для вашего хранилища метаданных. См. включение доступа к внешним данным в хранилище метаданных.
- Предоставьте основному пользователю, получающему доступ к данным извне, привилегию
EXTERNAL USE SCHEMAна схему, содержащую объекты. Смотрите раздел "Предоставление привилегий каталога Unity субъекту". - Для внешних таблиц, к которым обращается путь: предоставьте пользователю
EXTERNAL USE LOCATIONправа на внешнее хранилище, содержащее путь к таблице. Смотрите раздел "Предоставление привилегий каталога Unity субъекту". - Убедитесь, что у субъекта есть соответствующие привилегии:
-
SELECTв таблице для чтения -
MODIFYв таблице для операций записи -
CREATEв схеме создания таблицы - Для внешних записей в управляемые Delta-таблицы убедитесь, что в таблице, в которую происходит запись, включены коммиты каталогов.
-
- Проверка подлинности с помощью одного из следующих методов:
- Личный токен доступа (PAT): см. раздел Authorize access to Azure Databricks resources.
- Аутентификация OAuth для межмашинного взаимодействия (M2M): поддерживает автоматическое обновление учетных данных и токенов для долгосрочных заданий Spark (>1 час). См. Авторизуйте доступ служебного субъекта к Azure Databricks через OAuth.
Ограничения
- Внешний доступ к таблицам 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:
- Клиент Spark для Unity Catalog версии 0.4.1 или более поздней (
io.unitycatalog:unitycatalog-spark) - Apache Spark 4.0 или более поздней версии
- Delta Spark 4.2.0 или более поздней версии
- Субъект-служба OAuth M2M с соответствующими разрешениями. См. Авторизуйте доступ служебного субъекта к Azure Databricks через OAuth.
Следующая конфигурация необходима для создания, чтения или записи в управляемые таблицы каталога 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"
Замените следующие переменные:
-
<uc-catalog-name>: имя каталога в каталоге Unity, содержащего таблицы. -
<oauth-token-endpoint>: URL-адрес конечной точки маркера OAuth. Чтобы создать этот URL-адрес, выполните указанные ниже действия.- Найдите URL-адрес Azure Databricks workspace.
- Используйте формат:
https://<workspace-url>/oidc/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.