Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье представлена федерация хранилища метаданных Hive, которая позволяет каталогу Unity управлять таблицами, хранящимися в хранилище метаданных Hive. Вы можете федеративно подключить внешнее хранилище метаданных Hive или устаревшее внутреннее хранилище метаданных Azure Databricks Hive.
Федерацию хранилища метаданных Hive можно использовать для следующих вариантов использования:
В рамках миграционного пути к каталогу Unity можно провести постепенную миграцию без адаптации кода, в то время как часть ваших рабочих нагрузок продолжает использовать данные, зарегистрированные в хранилище метаданных Hive, а остальные переносятся в каталог Unity.
Этот вариант использования наиболее подходит для организаций, использующих устаревшее внутреннее хранилище метаданных Azure Databricks Hive сегодня, так как федеративные внутренние хранилища метаданных Hive позволяют выполнять как чтение, так и запись рабочих нагрузок.
Для предоставления долгосрочной гибридной модели для организаций, которые должны поддерживать некоторые данные в хранилище метаданных Hive вместе с данными, зарегистрированными в каталоге Unity.
Этот вариант использования наиболее подходит для организаций, использующих внешнее хранилище метаданных Hive, так как внешние каталоги для этих хранилищ метаданных Hive доступны только для чтения.
Схема 
Обзор федерации хранилища метаданных Hive
В федерации хранилища метаданных Hive вы создаете подключение из рабочей области Azure Databricks к хранилищу метаданных Hive, а каталог Unity сканирует хранилище метаданных Hive для заполнения внешнего каталога, иногда называемого федеративным каталогом, что позволяет вашей организации работать с таблицами хранилища метаданных Hive в каталоге Unity, предоставляя централизованные элементы управления доступом, учет родословной, поиск и многое другое.
Федеративные хранилища метаданных Hive, которые являются внешними для рабочей области Azure Databricks, позволяют читать с помощью каталога Unity. Внутренние хранилища метаданных Hive позволяют считывать и записывать, обновлять метаданные хранилища метаданных Hive, а также метаданные каталога Unity при записи.
При запросе внешних таблиц в федеративном хранилище метаданных Hive каталог Unity предоставляет уровень управления, выполняя такие функции, как проверки контроля доступа и аудит, а запросы выполняются с помощью семантики хранилища метаданных Hive. Например, если пользователь запрашивает таблицу, хранящуюся в формате Parquet в внешнем каталоге, то:
- Каталог Unity проверяет, имеет ли пользователь доступ к таблице, и определяет родословную для запроса.
- Сам запрос выполняется в базовом хранилище метаданных Hive, используя последние метаданные и сведения о секциях, хранящиеся там.
Как федерация хранилища метаданных Hive сравнивается с использованием внешних таблиц в Unity Catalog?
Каталог Unity имеет возможность создавать внешние таблицы, принимая данные, которые уже существуют в произвольном расположении облачного хранилища и регистрируются в каталоге Unity в качестве таблицы. В этом разделе рассматриваются различия между внешними и иностранными таблицами в федеративном хранилище метаданных Hive.
Оба типа таблицы имеют следующие свойства:
- Можно использовать для регистрации произвольного расположения в облачном хранилище в качестве таблицы.
- Может применять разрешения каталога Unity и детализированные элементы управления доступом.
- Можно просмотреть в родословной для запросов, которые на них ссылаются.
Внешние таблицы в федеративном хранилище метаданных Hive имеют следующие свойства:
- Автоматически обнаруживаются на основе обхода хранилища метаданных Hive. Как только таблицы создаются в хранилище метаданных Hive, они отображаются и доступны для запроса в внешнем каталоге каталога Unity.
- Разрешить определение таблиц с семантикой Hive, например Hive SerDes и партиций.
- Разрешить таблицам иметь перекрывающиеся пути с другими таблицами во внешних каталогах.
- Разрешить размещение таблиц в корневых каталогах DBFS.
- Включите представления, определенные в хранилище метаданных Hive.
Таким образом, вы можете рассматривать внешние таблицы в федеративном хранилище метаданных Hive как предложение обратной совместимости с хранилищем метаданных Hive, что позволяет рабочим нагрузкам использовать семантику только Hive, но с управлением, предоставляемым каталогом Unity.
Однако некоторые функции каталога Unity недоступны во внешних таблицах, например:
- Функции, доступные только для управляемых таблиц каталога Unity, таких как прогнозная оптимизация.
- Векторный поиск, Delta Sharing, мониторинг качества данных и онлайн таблицы.
- Некоторый функционал хранилища функций, включая создание хранилища функций, создание структуры для обслуживания моделей, создание спецификаций функций, логирование моделей и пакетную оценку.
Производительность может быть незначительно хуже рабочих нагрузок в каталоге Unity или хранилище метаданных Hive, так как хранилище метаданных Hive и каталог Unity находятся на пути запроса внешней таблицы.
Дополнительные сведения о поддерживаемых функциях см. в разделе "Требования" и "Поддержка функций".
Что означает запись в внешний каталог в федеративном хранилище метаданных Hive?
Записи поддерживаются только для федеративных внутренних хранилищ метаданных Hive, а не для внешних хранилищ метаданных Hive.
Записи в федеративные хранилища метаданных имеют два типа:
Операции DDL, такие как
CREATE TABLE,ALTER TABLEиDROP TABLE.Операции DDL синхронно отражаются в базовом хранилище метаданных Hive. Например, при выполнении инструкции
CREATE TABLEсоздается таблица как в хранилище метаданных Hive, так и во внешнем каталоге.Warning
Это также означает, что команды
DROPфиксируются в хранилище метаданных Hive. Например,DROP SCHEMA mySchema CASCADEудаляет все таблицы в базовой схеме хранилища метаданных Hive без возможностиUNDROP, так как хранилище метаданных Hive не поддерживаетUNDROP.Операции DML, такие как
INSERT,UPDATEиDELETE.Операции DML также синхронно отражаются в базовой таблице хранилища метаданных Hive. Например, запуск
INSERT INTOдобавляет записи в таблицу в хранилище метаданных Hive.Поддержка записи — это ключ для обеспечения простого перехода во время миграции из хранилища метаданных Hive в каталог Unity. См. Как использовать федерацию хранилища метаданных Hive во время миграции в каталог Unity?.
Как настроить федерацию хранилища метаданных Hive?
Чтобы настроить федерацию хранилища метаданных Hive, сделайте следующее:
Создайте подключение в каталоге Unity, указывающее путь и учетные данные для доступа к хранилищу метаданных Hive.
Федерация хранилища метаданных Hive использует это подключение для сканирования хранилища метаданных Hive. Для большинства систем баз данных вы предоставляете имя пользователя и пароль. Для подключения к устаревшему внутреннему рабочему пространству Azure Databricks, федерация хранилища метаданных Hive отвечает за авторизацию.
Создайте учетные данные для хранилища и внешнее местоположение в каталоге Unity для путей к таблицам, зарегистрированным в метахранилище Hive.
Внешние локации содержат пути и учетные данные хранилища, необходимые для доступа к этим путям. Учетные данные хранилища — это защищаемые объекты каталога Unity, которые указывают учетные данные, такие как управляемые удостоверения Azure, для доступа к облачному хранилищу. В зависимости от рабочего процесса, выбранного для создания внешних расположений, перед созданием внешнего расположения может потребоваться создать учетные данные хранения.
Создайте внешний каталог в каталоге Unity с помощью подключения, созданного на шаге 1.
Это каталог, используемый пользователями и рабочими процессами рабочей области для работы с таблицами хранилища метаданных Hive с помощью каталога Unity. После создания внешнего каталога каталог Unity заполняет его таблицами, зарегистрированными в хранилище метаданных Hive.
Предоставьте привилегии таблицам в внешнем каталоге с помощью каталога Unity.
Вы также можете использовать фильтры строк и столбцов каталога Unity для точного управления доступом.
Начните запрашивать данные.
Доступ к внешним таблицам с помощью каталога Unity доступен только для чтения для внешних хранилищ метаданных Hive и чтения и записи для внутренних хранилищ метаданных Hive.
Для внутренних и внешних хранилищ метаданных Hive Unity Catalog постоянно обновляет метаданные таблиц по мере их изменения в хранилище метаданных Hive. Для внутренних хранилищ метаданных Hive новые таблицы и обновления таблиц, зафиксированные из внешнего каталога, записываются обратно в хранилище метаданных Hive, обеспечивая полное взаимодействие между каталогом Unity и каталогами хранилища метаданных Hive.
Подробные инструкции см. в следующих разделах:
- Включить федерацию хранилища метаданных Hive для устаревшего рабочего пространства Hive
- Включить федерацию хранилища метаданных Hive для внешнего хранилища метаданных Hive
Как использовать федерацию хранилища метаданных Hive во время миграции в каталог Unity?
Федерация хранилища метаданных Hive позволяет постепенно переходить в каталог Unity, уменьшая потребность в координации между командами и рабочими нагрузками. В частности, если вы переносите данные из внутреннего хранилища метаданных Hive в рабочей области Azure Databricks, возможность читать из и записывать в хранилище метаданных Hive и в хранилище метаданных каталога Unity означает, что во время миграции вы можете поддерживать зеркальные хранилища метаданных, что предоставляет следующие преимущества:
- Рабочие нагрузки, выполняемые для внешних каталогов, выполняются в режиме совместимости хранилища метаданных Hive, что снижает затраты на адаптацию кода во время миграции.
- Каждая рабочая нагрузка может выполнять миграцию независимо от других пользователей, зная, что в течение периода миграции данные будут доступны как в хранилище метаданных Hive, так и в каталоге Unity, удаляя необходимость координации между рабочими нагрузками, имеющими зависимости друг от друга.
схема 
В этом разделе описывается типичный рабочий процесс миграции внутреннего устаревшего хранилища метаданных Hive в рабочей области Azure Databricks в каталог Unity, с использованием федерации хранилища метаданных Hive для облегчения перехода. Он не применяется к миграции внешнего хранилища метаданных Hive. Внешние каталоги для внешних хранилищ метаданных Hive не поддерживают записи.
Шаг 1. Федерация внутреннего хранилища метаданных Hive
На этом шаге создается внешний каталог, который зеркально отражает хранилище метаданных Hive в каталоге Unity. Давайте назовём это hms_in_uc.
Схема 
Note
В рамках процесса федерации вы настраиваете внешние местоположения для предоставления доступа к данным в облачном хранилище. В сценариях миграции, где некоторые рабочие нагрузки запрашивают данные с помощью устаревших механизмов доступа, а другие рабочие нагрузки запрашивают те же данные в каталоге Unity, управляемый каталогом Unity контроль доступа к внешним расположениям может предотвратить доступ устаревших рабочих нагрузок к путям хранения из вычислительных ресурсов с поддержкой каталога Unity. Вы можете включить "режим отката" в этих внешних локациях, чтобы использовать любые учетные данные, ограниченные кластером или записной книжкой, которые были определены для устаревшей рабочей нагрузки. После завершения миграции вы отключите резервный режим. См. Что такое резервный режим?.
Для получения подробной информации см. раздел Как включить федерацию метасторов Hive для устаревшей рабочей области.
Шаг 2. Запуск новых рабочих нагрузок в отношении внешнего каталога в Unity Catalog
Если у вас есть внешний каталог, вы можете предоставить аналитикам SQL и потребителям обработки и анализа данных доступ к нему и начать разработку новых рабочих нагрузок, указывающих на него. Новые рабочие нагрузки пользуются дополнительным набором функций в Unity Catalog, включая управление доступом, поиск и родословную.
На этом шаге обычно выполняются следующие действия:
- Выберите вычислительные ресурсы, совместимые с каталогом Unity (то есть стандартные или выделенные режимы доступа к вычислительным ресурсам, хранилища SQL или бессерверные вычисления). См. сведения о требованиях и поддержке функций.
- Сделайте внешний каталог каталогом по умолчанию в вычислительном ресурсе или добавьте
USE CATALOG hms_in_ucв начало кода. Так как схемы и имена таблиц во внешнем каталоге являются точными зеркалами, как в хранилище метаданных Hive, ваш код начнет обращаться к внешнему каталогу.
Шаг 3. Перенос существующих заданий для выполнения с использованием внешнего каталога
Чтобы перенести существующие задания для запроса внешнего каталога, выполните следующие действия.
- Измените каталог по умолчанию в кластере заданий на
hms_in_uc, установив соответствующее свойство в самом кластере или добавивUSE CATALOG hms_in_ucв начале вашего кода. - Переключите задание на стандартный или выделенный режим доступа и выполните обновление до одной из версий среды выполнения Databricks, которая поддерживает федерацию хранилища метаданных Hive. См. сведения о требованиях и поддержке функций.
- Попросите администратора Azure Databricks предоставить соответствующие привилегии Unity Catalog для объектов данных в
hms_in_ucи по всем облачным путям хранения (включенных во внешние расположения Unity Catalog), которые использует задача. См. раздел Управление привилегиями в каталоге Unity.
Шаг 4. Отключение прямого доступа к хранилищу метаданных Hive
После переноса всех рабочих нагрузок для запроса внешнего каталога больше не требуется хранилище метаданных Hive.
Отключите прямой доступ к хранилищу метаданных Hive.
См. Отключение доступа к метастору Hive, используемому в рабочем пространстве Azure Databricks.
Запретить пользователям создавать и использовать кластеры, которые обходают управление доступом к таблицам (кластеры, использующие режим общего доступа к изоляции или устаревший пользовательский тип кластера) с помощью политик вычислений и параметра рабочей области "Принудительное изоляция пользователей ".
Ознакомьтесь с конфигурациями вычислений и применением типов кластеров изоляции пользователей в рабочей области.
Сделайте федеративный каталог каталогом рабочей области по умолчанию.
Часто задаваемые вопросы
В следующих разделах приведены более подробные сведения о федерации хранилища метаданных Hive.
Что такое резервный режим?
Резервный режим — это параметр на внешних ресурсах, который можно использовать для обхода проверок разрешений каталога Unity во время перехода на него. Установка этого параметра гарантирует, что в процессе настройки рабочие нагрузки, которые еще не перенесены, не будут затронуты.
Каталог Unity получает доступ к облачному хранилищу через внешние местоположения, которые являются защищаемыми объектами, определяющими путь и учетные данные для доступа к вашей учетной записи облачного хранилища. Вы можете выдавать разрешения на них, например READ FILES, чтобы управлять тем, кто может использовать путь. Одна из проблем в процессе миграции заключается в том, что вы, возможно, не захотите, чтобы каталог Unity сразу начал управлять всем доступом к пути, например, если у вас есть существующие, неимигрированные рабочие нагрузки, ссылающиеся на этот путь.
Режим запасного варианта позволяет отложить строгое применение контроля доступа Unity Catalog к внешним местоположениям. Если включен режим резервного доступа, рабочие нагрузки, имеющие доступ к пути, сначала проверяются на соответствие разрешениям каталога Unity. В случае неуспеха используется альтернатива, предусматривающая учетные данные, применимые в рамках кластера или конкретной записной книжки, например, профили экземпляров или свойства конфигурации Apache Spark. Это позволяет существующим рабочим нагрузкам продолжать использовать текущую учетную запись.
Резервный режим предназначен только для использования во время миграции. Вы должны отключить его, когда все рабочие нагрузки перенесены и вы готовы применить управление доступом в Unity Catalog.
Журнал аудита запросов для резервного использования
Используйте следующий запрос, чтобы проверить, был ли доступ к внешнему ресурсу в резервном режиме за последние 30 дней. Если в учетной записи отсутствует резервный режим доступа, Databricks рекомендует отключить резервный режим.
SELECT event_time, user_identity, action_name, request_params, response, identity_metadata
FROM system.access.audit
WHERE
request_params.fallback_enabled = 'true' AND
request_params.path LIKE '%some-path%' AND
event_time >= current_date() - INTERVAL 30 DAYS
LIMIT 10
Что такое авторизованные пути?
При создании внешнего каталога, поддерживаемого федерацией хранилища метаданных Hive, вам будет предложено предоставить авторизованные пути в облачное хранилище, где хранятся таблицы хранилища метаданных Hive. Любая таблица, к которой требуется получить доступ с помощью федерации хранилища метаданных Hive, должна охватываться этими путями. Databricks рекомендует, чтобы авторизованные пути были подпутями, которые являются общими для большого количества таблиц. Например, если у вас есть таблицы в abfss://container@storageaccount.dfs.core.windows.net/bucket/table1, ./bucket/table2и ./bucket/table3, необходимо указать abfss://container@storageaccount.dfs.core.windows.net/bucket/ в качестве авторизованного пути.
Вы можете изменить авторизованные пути для существующего каталога, если вы являетесь владельцем каталога или у вас есть MANAGE и USE CATALOG разрешения.
Чтобы изменить авторизованные пути для существующего каталога, выполните следующие действия.
- В рабочей области Azure Databricks щелкните
Каталог.
- В панели каталога найдите и нажмите на федеративный каталог.
- На странице сведений о каталоге щелкните значок
и выберите "Изменить авторизованные пути".
- При необходимости добавьте или удалите пути.
- Нажмите кнопку Сохранить.
Вы можете использовать UCX для определения путей, присутствующих в хранилище метаданных Hive.
Авторизованные пути добавляют дополнительный уровень безопасности для внешних каталогов, поддерживаемых федерацией хранилища метаданных Hive. Они позволяют владельцу каталога применять правила к данным, к которым пользователи могут получить доступ, используя федерацию. Это полезно, если хранилище метаданных Hive позволяет пользователям обновлять метаданные и произвольно изменять расположения таблиц— обновления, которые в противном случае будут синхронизированы в внешний каталог. В этом сценарии пользователи могут потенциально переопределить таблицы, к которым у них уже есть доступ, чтобы они указывали на новые расположения, к которым они в противном случае не имели доступа.
Можно ли интегрировать хранилища метаданных Hive с помощью UCX?
UCX, проект Databricks Labs для переноса рабочих пространств Azure Databricks в Unity Catalog, включает утилиты для настройки федерации хранилища метаданных Hive.
enable-hms-federationcreate-federated-catalog
См. файл Readme проекта на GitHub. Общие сведения об UCX см. в разделе . Используйте утилиты UCX для обновления рабочей области до Unity Catalog.
Сведения об обновлении метаданных для всех типов федерации каталога см. в статье "Что такое федерация каталога?".
Требования и поддержка функций
В следующей таблице перечислены службы и функции, поддерживаемые федерацией хранилища метаданных Hive. В некоторых случаях также перечислены неподдерживаемые службы или функции. В этих таблицах "HMS" обозначает хранилище метаданных Hive.
| Category | Supported | Не поддерживается |
|---|---|---|
| Metastores |
|
|
| Operations |
|
|
| Ресурсы данных метаданного хранилища Hive |
|
|
| Storage |
|
|
| Типы вычислений |
|
Нет кластеров изоляции |
| Вычислительные версии |
|
|
| Функции каталога Unity |
|
|
Работа с мелкими клонами
Important
Поддержка неглубокого клонирования находится в общедоступной предварительной версии.
Федерация хранилища метаданных Hive поддерживает создание мелких клонов из таблиц, зарегистрированных в хранилище метаданных Hive, со следующими предостережениями:
При чтении поверхностного клона из федеративного каталога хранилища метаданных Hive клон имеет состояние подготовки
DEGRADED. Это означает, что неглубокий клон использует модель разрешений Hive, которая требует, чтобы пользователь, когда считывает из неглубокого клона, имел привилегиюSELECTкак для неглубокого клона, так и для базовой таблицы.Чтобы обновить поверхностный клон, чтобы он соответствовал модели разрешений каталога Unity, владелец таблицы должен запустить
REPAIR TABLE <table> SYNC METADATA. После исполнения команды состояние резервирования таблицы изменяется наACTIVE, и в дальнейшем разрешения управляются каталогом Unity. Последующие операции чтения на мелком клоне требуютSELECTтолько на самом мелком клоне, если команда выполняется на вычислениях, поддерживающих Unity Catalog.Неглубокие клоны, созданные в DBFS или основанные на таблицах, монтированных в DBFS, не поддерживаются.
Limitations
- Не удается запросить федеративные таблицы, в которых файлы таблиц хранятся вне расположения федеративной таблицы. Они могут включать таблицы, в которых разделы хранятся вне расположения таблицы, или в случае таблиц Avro, где схема указывается с помощью свойства таблицы
avro.schema.url. При запросе таких таблиц может быть выброшено исключениеUNAUTHORIZED_ACCESSилиAccessDeniedException.