Управление выдачей учетных данных каталога Unity для доступа к внешним системам
Совет
Сведения о чтении данных Azure Databricks с помощью Microsoft Fabric см. в статье Использование Microsoft Fabric для чтения данных, зарегистрированных в каталоге Unity.
В этой статье описывается, как функция предоставления учетных данных каталога Unity поддерживает доступ к данным в Azure Databricks из внешних механизмов обработки.
Vending учетных данных поддерживает внешние системы, которые подключаются к каталогу Unity с помощью REST API Unity и каталога REST Iceberg. См. чтение таблиц Databricks из клиентов Delta и доступ к данным Databricks с помощью внешних систем.
Что такое выдача учетных данных каталога Unity?
Выдача учетных данных предоставляет краткосрочные учетные данные с помощью REST API каталога Unity. Предоставленные учетные данные наследуют привилегии субъекта Azure Databricks, используемого для настройки интеграции. Эти учетные данные предоставляют внешним клиентам доступ к данным, зарегистрированным в хранилище метаданных каталога Unity.
Заметка
Служба выдачи учетных данных в Unity Catalog поддерживает следующее:
- Доступ только для чтения к управляемым таблицам каталога Unity.
- Доступ только для чтения к таблицам, настроенным для операций чтения Айсберга.
- Доступ на чтение и запись к внешним таблицам каталога Unity.
Некоторые клиенты поддерживают доступ к таблицам, управляемым через Delta Lake, в то время как другие требуют включения операций чтения посредством Iceberg (UniForm) на таблицах. См. как считывать таблицы Delta с помощью клиентов Iceberg.
Для получения временных учетных данных, субъект Azure Databricks (пользователь, группа или субъект-служба), запрашивающий их, должен иметь права EXTERNAL USE SCHEMA
на схему, содержащую таблицу, к которой они должны получить доступ из внешнего движка. Хранилище метаданных каталога Unity, содержащее схему, также должно быть явно включено для внешнего доступа. См. раздел Включение доступа к внешним данным в каталоге Unity.
Учетные данные включают временную строку маркера доступа и URL-адрес расположения облачного хранилища, который внешний механизм может использовать для доступа к данным и метаданным таблицы, находящимся в облачном хранилище.
Требования
- Необходимо настроить внешний доступ в хранилище метаданных и предоставить
EXTERNAL USE SCHEMA
субъекту, настроив подключение. См. раздел Включение доступа к внешним данным в каталоге Unity. - Чтобы получить доступ к рабочей области Azure Databricks с помощью открытых API каталога Unity или REST API Iceberg, URL-адрес рабочей области должен быть доступен подсистеме, выполняющей запрос. Сюда входят рабочие области, использующие списки IP-доступа или Приватный канал Azure.
- Чтобы получить доступ к базовому расположению облачного хранилища для объектов данных, зарегистрированных в каталоге Unity, URL-адреса хранилища, созданные API временных учетных данных каталога Unity, должны быть доступны подсистеме, выполняющей запрос. Это означает, что движок должен быть разрешен в списках брандмауэра и контроля доступа к сети для базовых облачных аккаунтов хранения.
Запрос временных учетных данных для доступа к внешним данным
Поддержка обмена учетными данными зависит от внешнего клиента. Если это поддерживается, клиент должен автоматически использовать поставляемые учетные данные при настройке подключения.
В этом разделе приведен пример явного вызова API-эндпоинта для выдачи учетных данных. Некоторым внешним клиентам может потребоваться явно задать конфигурации для доступа к данным и метаданным в облачном хранилище объектов, поддерживаемом таблицами каталога Unity. Для настройки доступа можно использовать значения, возвращаемые системой выдачи учетных данных.
Заметка
Вы можете получить список таблиц, поддерживающих управление учетными данными, вызвав API ListTables с включенным параметром include_manifest_capabilities
. Только таблицы, помеченные HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT
или HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT
, имеют право на ссылку в API временных табличных учетных данных. См. GET /api/2.1/unity-catalog/tables.
В следующем curl
примере явно запрашивают временные учетные данные для доступа к внешним данным. Этот запрос должен быть выполнен пользователем рабочей области с достаточными привилегиями.
curl -X POST -H "Authentication: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation_name": "<READ|READ_WRITE>"}'
Дополнительные сведения см. в разделе POST /api/2.1/unity-catalog/temporary-table-credentials в справочнике по REST API Azure Databricks.
Ограничения
Существуют следующие ограничения:
- Не все внешние клиенты поддерживают обмен учетными данными, а поддержка может отличаться в зависимости от базового облачного хранилища объектов.
- Поддерживаются только управляемые таблицы каталога Unity и внешние таблицы каталога Unity.
- Таблицы, настроенные на чтение с помощью Iceberg, разделяют это требование. См. как считывать таблицы Delta с помощью клиентов Iceberg.
- Клиенты Delta Lake могут считывать только те таблицы, которые поддерживаются Delta Lake, и должны поддерживать все задействованные протоколы чтения и записи, активированные в таблице. См. Как Azure Databricks управляет совместимостью функций Delta Lake?.
- Внешние таблицы, не использующие Delta Lake, не предоставляют гарантии транзакций.
- Следующие типы таблиц или таблицы с включенными функциями не поддерживаются:
- Таблицы с фильтрами строк или масками столбцов.
- Таблицы, разделяемые с использованием Delta Sharing.
- Федеративные таблицы Lakehouse (внешние таблицы).
- Просмотры.
- Материализованные представления.
- Delta Live Tables потоковые таблицы.
- Онлайн-таблицы.
- Индексы векторного поиска.