Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как настроить федерацию устаревшего хранилища метаданных Azure Databricks Hive, чтобы ваша организация работала с таблицами хранилища метаданных Hive с помощью каталога Unity.
Обзор федерации хранилища метаданных Hive см. в статье Федерация хранилища метаданных Hive: настройка Unity Catalog для управления таблицами, зарегистрированными в хранилище метаданных Hive.
Перед тем как начать
Просмотрите список служб и функций, поддерживаемых федерацией хранилища метаданных Hive: требования и поддержка функций.
Для каждого шага ниже перечислены конкретные требования.
Шаг 1. Подключение каталога Unity к хранилищу метаданных Hive
На этом шаге вы создадите подключение, защищаемый объект каталога Unity, указывающий путь и учетные данные для доступа к системе базы данных, в данном случае к устаревшему хранилищу метаданных Hive рабочей области Azure Databricks.
Requirements
- Привилегия
CREATE CONNECTIONв хранилище метаданных каталога Unity.
Создание подключения
Подключение задает путь и учетные данные для доступа к внешней системе базы данных. Чтобы создать подключение, можно использовать обозреватель каталогов или команду CREATE CONNECTION SQL в записной книжке Azure Databricks или редакторе sql-запросов Databricks.
Note
Вы также можете использовать REST API Databricks или CLI Databricks для создания соединения. См. POST /api/2.1/unity-catalog/connections и команды каталога Unity .
При настройке подключения к устаревшему хранилищу метаданных Azure Databricks Hive включите этот параметр "builtin": "true" в запрос API.
Необходимые разрешения: администратор хранилища метаданных или пользователь с привилегиями CREATE CONNECTION .
Обозреватель каталогов
В рабочей области Azure Databricks щелкните
Каталог.
В верхней части области каталога щелкните
" и выберите "Создать подключение " в меню.На странице "Основы подключения" введите понятное имя подключения.
Выберите тип подключения хранилища метаданных Hive, и тип хранилища метаданныхвнутренний.
(Необязательно) Добавьте комментарий.
Нажмите кнопку Далее.
(Необязательно) На странице Сведения о подключении введите полностью квалифицированный путь к каталогу складского хранилища Hive .
Это необходимо только в том случае, если вы не хотите использовать расположение по умолчанию.
Нажмите Create connection (Создать подключение).
На странице Основы каталога введите имя иностранного каталога.
Для авторизованных путейвыберите пути к облачному хранилищу, к которым можно получить доступ через каталог. Только таблицы, падающие под эти пути, можно запрашивать через федеративный каталог. Пути должны поддерживаться внешними местами. Дополнительные сведения см. в разделе Что такое авторизованные пути?.
После создания каталога можно изменить авторизованные пути. См. Что такое авторизованные пути?.
Нажмите Создать каталог.
На странице Access выберите рабочие области, в которых пользователи могут получить доступ к созданному каталогу. Вы можете выбрать Все рабочие области имеют доступ, или нажать Назначить рабочие области, выбрать рабочие области, а затем нажать Назначить.
Добавьте владельца, который сможет управлять доступом ко всем объектам в каталоге. Начните вводить пользователя или группу в текстовом поле, а затем щелкните пользователя или группу в возвращаемых результатах.
Предоставьте привилегии на каталоге.
- Нажмите Grant.
- Укажите принципалов , у которых будет доступ к объектам в каталоге. Начните вводить пользователя или группу в текстовом поле, а затем щелкните пользователя или группу в возвращаемых результатах.
- Выберите предустановки привилегий, чтобы предоставить каждому пользователю или группе. Всем пользователям учетной записи предоставлено
BROWSEпо умолчанию.- В раскрывающемся меню выберите средство чтения данных , чтобы предоставить привилегии
readобъектам каталога. - Выберите редактор данных в раскрывающемся меню, чтобы предоставить
readиmodifyпривилегии для объектов в каталоге. - Вручную выберите привилегии для предоставления.
- В раскрывающемся меню выберите средство чтения данных , чтобы предоставить привилегии
- Нажмите Grant.
Нажмите кнопку Далее.
На странице метаданных при необходимости укажите теги в формате "ключ-значение". Дополнительные сведения см. в статье Применение тегов к защищаемым объектам каталога Unity.
(Необязательно) Добавьте комментарий.
Нажмите кнопку Сохранить.
SQL
Выполните следующую команду в записной книжке или редакторе sql-запросов.
CREATE CONNECTION IF NOT EXISTS <connection-name> TYPE hive_metastore
OPTIONS (
builtin true,
warehouse_directory '/path/to/warehouse-directory' );
Используйте warehouse_directory только в том случае, если вы не хотите применять стандартное расположение каталога хранилища Hive для вашего мета-хранилища Hive, указанное в конфигурации кластера. Этот путь используется для определения местоположения управляемых таблиц или схем при создании на основе федеративного каталога.
Шаг 2. Создайте внешние расположения для данных в вашем внутреннем устаревшем хранилище метаданных Hive.
На этом шаге вы настроите внешнее расположение в каталоге Unity для управления доступом к расположениям облачного хранилища, в которые хранятся данные, зарегистрированные в устаревшем внутреннем хранилище метаданных Hive.
Внешние расположения — это защищаемые объекты каталога Unity, которые связывают учетные данные доступа к хранилищу с путями контейнеров облачного хранилища.
Параметры создания внешней локации
Процесс, который Databricks рекомендует для создания внешнего расположения в каталоге Unity, зависит от вашей ситуации:
- Если вы объединяете внутреннее хранилище метаданных Databricks Hive, которое хранит данные в монтировках DBFS или корне DBFS, создайте внешнее расположение с помощью Catalog Explorer или SQL и выберите опцию Copy from DBFS mount. Кроме того, см.
"Подключение к корневому расположению DBFS (устаревшее)."
Включить резервный режим на внешних локациях
Как только вы создадите внешнее местоположение в каталоге Unity, доступ к пути, представленному этим внешним местоположением, регулируется разрешениями в каталоге Unity при выполнении запросов на вычислительных ресурсах с поддержкой каталога Unity. Это может прервать существующие рабочие процессы, у которых нет достаточных разрешений каталога Unity для доступа к пути.
Если внешнее расположение находится в резервном режиме, система сначала проверяет разрешения каталога Unity субъекта запроса в расположении, и если это не удалось, возвращается к использованию существующих учетных данных кластера или записных книжек, таких как профили экземпляров или свойства конфигурации Apache Spark, чтобы существующие рабочие нагрузки продолжали выполняться без прерывания.
Резервный режим удобно при переносе устаревшей рабочей нагрузки. После обновления рабочих нагрузок для успешного выполнения с помощью разрешений каталога Unity необходимо отключить резервный режим, чтобы предотвратить использование устаревших учетных данных на уровне кластера для обхода управления данными каталога Unity.
Вы можете включить резервный режим с помощью Проводника каталога или REST API внешних местоположений каталога Unity.
Требуемые разрешения: Владелец внешнего ресурса.
Обозреватель каталогов
- В рабочей области Azure Databricks щелкните
Каталог.
- На странице быстрого доступа щелкните Внешние данные >.
- Выберите внешнее расположение, которое нужно обновить.
- Включите переключатель режима аварийного переключения и нажмите Включить для подтверждения.
API
В следующих примерах curl показано, как включить резервный режим при создании внешнего расположения и при обновлении существующего внешнего расположения.
Создание нового внешнего расположения:
curl -X POST -H 'Authorization: Bearer <token>' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations \
--data
'{
"name": "fallback_mode_enabled_external_location",
"url": "abfss://container-name@storage-account.dfs.core.windows.net/external_location_container/url",
"credential_name": "external_location_credential",
"fallback": true
"skip_validation": true
}'
Обновление внешней локации:
curl -X PATCH \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations/<external-location-name> \
--data
'{
"comment": "fallback mode enabled",
"fallback": true
}'
Шаг 3. Создание внешнего каталога
Note
Возможно, вы уже выполнили этот шаг, если вы использовали мастер создания подключений в обозревателе каталогов для завершения шага 1. Если вы не создали внешний каталог при завершении шага 1 или использовали SQL для создания подключения, необходимо выполнить инструкции в этом разделе.
На этом шаге вы используете подключение, созданное на шаге 1, для создания внешнего каталога в каталоге Unity, указывающего на внешнее расположение, созданное на шаге 2. внешний каталог — это защищаемый объект в Unity Catalog, который зеркально отражает базу данных или каталог во внешней системе данных, обеспечивая возможность выполнять запросы к этим данным в рабочей области Azure Databricks при управлении доступом через Unity Catalog. В этом случае зеркальный каталог — это ваши данные, зарегистрированные в хранилище метаданных Hive.
Каждый раз, когда пользователь или рабочий процесс взаимодействует с внешним каталогом, метаданные синхронизируются из хранилища метаданных Hive.
Требования
Требования к разрешениям:
Чтобы создать внешний каталог:
- Привилегия
CREATE CATALOGв вашем хранилище метаданных каталога Unity. - Право владения подключением или привилегия
CREATE FOREIGN CATALOGна подключение. - Чтобы ввести авторизованные пути для внешнего каталога, необходимо иметь привилегию
CREATE FOREIGN SECURABLEво внешнем расположении, которое охватывает эти пути. Владельцу внешнего расположения эта привилегия предоставляется по умолчанию.
Чтобы работать с внешним каталогом, выполните следующие действия.
- Владение каталогом или
USE CATALOG
Требования к вычислениям:
- Чтобы создать каталог с помощью обозревателя каталогов, не требуется вычислительных ресурсов.
- Создание каталога с помощью SQL: Databricks Runtime 13.3 LTS или более поздней версии.
- Для работы с каталогом: вычисление с стандартным режимом доступа в Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 или более поздней версии.
Создание внешнего каталога
Чтобы создать внешний каталог, можно использовать обозреватель каталогов или команду SQL CREATE FOREIGN CATALOG в записной книжке Azure Databricks или редакторе запросов SQL.
См. также Управление и работа с внешними каталогами.
Note
Вы также можете использовать API каталога Unity. См. Создание каталога в справочном разделе по REST API Databricks.
Обозреватель каталогов
В рабочей области Azure Databricks щелкните
Каталог , чтобы открыть обозреватель каталогов.
На странице быстрого доступа щелкните кнопку "Добавить данные" и выберите "Добавить каталог".
Введите имя каталога и выберите тип каталога из Foreign.
Выберите подключение , созданное на шаге 1, из раскрывающегося списка.
В поле Авторизованные пути введите пути к расположениям облачного хранилища, которые вы определили как внешние расположения на шаге 2. Например:
abfss://container@storageaccount.dfs.core.windows.net/demo, abfss://container@storageaccount.dfs.core.windows.net/depts/finance.Авторизованные пути — это дополнительный уровень безопасности для внешних каталогов, поддерживаемых федерацией хранилища метаданных Hive. См. Что такое авторизованные пути?.
В поле расположения хранилища укажите расположение в облачном хранилище, где будут храниться метаданные каталога. Например:
abfss://container@storageaccount.dfs.core.windows.net/catalog-metadata.Нажмите кнопку "Создать".
(Необязательно) Щелкните Настроить, чтобы открыть руководство, которое проведёт вас через предоставление разрешений для каталога и добавление тегов. Вы также можете выполнить эти действия позже.
См. раздел Управление привилегиями в каталога Unity и Применение тегов к защищаемым объектам каталога Unity.
(Необязательно) Привязка каталога к определенным рабочим областям.
По умолчанию доступ к каталогам можно получить из любой рабочей области, подключенной к хранилищу метаданных каталога Unity (с ограниченными правами пользователя). Если вы хотите разрешить доступ только из определенных рабочих областей, перейдите на вкладку "Рабочие области" и назначьте рабочие области. См. связывание каталога рабочей области.
Заполните каталог внешних данных метаданными из хранилища метаданных Hive.
Каждый раз, когда пользователь или рабочий процесс взаимодействует с внешним каталогом, метаданные синхронизируются из хранилища метаданных Hive. Первое взаимодействие заполняет каталог в каталоге Unity и делает его содержимое видимым в пользовательском интерфейсе обозревателя каталогов. Вы можете заполнить каталог, выбрав и запустив поддерживаемый вычислительный ресурс в проводнике каталогов. Вы должны быть владельцем каталога (в силу создания каталога) или пользователем с правами
USE CATALOG.
SQL
Выполните следующую SQL-команду в ноутбуке или редакторе запросов SQL. Элементы в квадратных скобках являются необязательными. Замените значения по умолчанию:
-
<catalog-name>: имя каталога в Azure Databricks. -
<connection-name>: имя объекта подключения, созданного на шаге 1. -
<path1>,<path2>. Пути к расположениям облачного хранилища, которые вы определили как внешние расположения на шаге 2. Например:abfss://container@storageaccount.dfs.core.windows.net/demo, abfss://container@storageaccount.dfs.core.windows.net/depts/finance. Авторизованные пути — это дополнительный уровень безопасности для внешних каталогов, поддерживаемых федерацией хранилища метаданных Hive. См. Что такое авторизованные пути?. См. Что такое авторизованные пути?. Если при создании каталога не добавляются авторизованные пути, можно использоватьALTER CATALOGдля их добавления позже. См. ALTER CATALOG. -
<storage-location>: расположение в облачном хранилище, в котором хранятся метаданные каталога. Например:abfss://container@storageaccount.dfs.core.windows.net/catalog-metadata.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (
authorized_paths '<path1>,<path2>',
storage_root '<storage-location>'
);
Каждый раз, когда пользователь или рабочий процесс взаимодействует с федеративным каталогом, метаданные синхронизируются из хранилища метаданных Hive.
Note
Если у внешней таблицы есть расположение хранилища на DBFS, и точка монтирования DBFS, поддерживающая таблицу, была переопределена на другой путь с момента последнего доступа к таблице, доступ к таблице завершится с кодом ошибки UC_RESOLVED_DBFS_PATH_MISMATCH. Используйте следующую команду, чтобы обновить разрешенное расположение DBFS и исправить ошибку:
REFRESH FOREIGN TABLE my_federated_catalog.schema.table RESOLVE DBFS LOCATION;
Вы должны быть владельцем или иметь привилегию на управление таблицей. См. REFRESH FOREIGN (CATALOG, SCHEMAи TABLE).