Поделиться через


Федерация хранилищ метаданных Hive: разрешение Unity Catalog управлять tables, зарегистрированными в хранилище метаданных Hive

Важный

Эта функция доступна в общедоступной предварительной версии.

В этой статье представлена федерация метаданных хранилища Hive, которая позволяет Unity Catalog управлять элементами tables, хранящимися в этом хранилище метаданных. Вы можете федеративно подключить внешнее хранилище метаданных Hive или устаревшее внутреннее хранилище метаданных Azure Databricks Hive.

Федерацию хранилища метаданных Hive можно использовать для следующих вариантов использования:

  • В качестве шага в процессе миграции к Unity Catalog, обеспечивая пошаговую миграцию без необходимости адаптации кода, некоторые из ваших рабочих нагрузок продолжают использовать данные, зарегистрированные в вашем хранилище метаданных Hive, в то время как другие переносятся.

    Этот вариант использования наиболее подходит для организаций, использующих устаревшее внутреннее хранилище метаданных Azure Databricks Hive, поскольку федеративные внутренние Hive metastores позволяют как чтение, так и запись рабочих нагрузок.

  • Для обеспечения долгосрочной гибридной модели для организаций, которые должны поддерживать некоторые данные в хранилище метаданных Hive вместе с данными, зарегистрированными в Unity Catalog.

    Этот вариант использования наиболее подходит для организаций, использующих внешнее хранилище метаданных Hive, так как федеративные catalogs для этих metastores Hive доступны только для чтения.

Схема , которая представляет федерацию Hive

Обзор федерации хранилища метаданных Hive

В системе федерации хранилища метаданных Hive вы создаете подключение из рабочей среды Azure Databricks к вашему хранилищу метаданных Hive, а Unity Catalog сканирует его, чтобы наполнить федеративную catalog, что позволяет вашей организации эффективно взаимодействовать с хранилищем метаданных Hive tables через Unity Catalog, обеспечивая централизованный контроль доступа, отслеживание происхождения, поиск и многое другое.

Федеративные metastores Hive, которые являются внешними для рабочей области Azure Databricks, позволяют считывать данные с помощью CatalogUnity. Внутренние metastores Hive предоставляют возможность чтения и записи, обновления метаданных хранилища Hive и метаданных Unity Catalog при записи.

При запросе федеративных ресурсов хранилища метаданных Hive Unity Catalog предоставляет уровень управления, выполняя такие функции, как проверки контроля доступа и аудит, а запросы выполняются с помощью семантики хранилища метаданных Hive. Например, если пользователь запрашивает table, хранящийся в формате Parquet в объединенном catalog, то:

  • Unity Catalog проверяет, имеет ли пользователь доступ к table и определяет родословную запроса.
  • Сам запрос выполняется непосредственно в базовом метахранилище Hive, используя актуальные метаданные и информацию partition, хранящиеся там.

диаграмма, показывающая связь между рабочими нагрузками HMS, Unity Catalogи Databricks в сценарии федерации Hive

Как федерация хранилища метаданных Hive сравнивается с использованием внешнего Unity Catalogtables?

Unity Catalog имеет возможность создавать внешние tables, принимая данные, которые уже существуют в произвольном расположении облачного хранилища, и регистрируя их в Unity Catalog в качестве table. В этом разделе рассматриваются различия между внешним и федеративным хранилищем метаданных Hive tables.

Оба типа table имеют следующие свойства:

  • Можно использовать для регистрации произвольного расположения в облачном хранилище в качестве table.
  • Может применять разрешения Unity Catalog и детальные элементы управления доступом.
  • Можно просмотреть в истории для запросов, ссылающихся на них.

Только федеративные tables имеют следующие свойства:

  • Автоматически обнаруживаются на основе обхода хранилища метаданных Hive. Как только tables создаются в хранилище метаданных Hive, они отображаются и доступны для запроса в федеративных Unity Catalogcatalog.
  • Разрешить tables определяться семантикой Hive, например Hive SerDes и секциями.
  • Разрешить tables пересекаться с другими tables в федеративных catalogs.
  • Разрешить tables находиться в корневых местах DBFS.
  • Включите views, определенные в хранилище метаданных Hive.

Таким образом вы можете рассматривать федеративное хранилище метаданных Hive tables как предложение обратной совместимости с хранилищем метаданных Hive, что позволяет рабочим нагрузкам использовать семантику только Hive, но с управлением, предоставляемым Unity Catalog.

Однако некоторые функции Unity Catalog недоступны в федеративной системе tables, например:

  • Функции, доступные только для Unity Catalog, управляемых tables, таких как прогнозируемая оптимизация.
  • Векторный поиск, разностный обмен данными, мониторинг Lakehouse и онлайн-tables.
  • Некоторый функционал хранилища функций, включая создание хранилища функций, создание структуры для обслуживания моделей, создание спецификаций функций, логирование моделей и пакетную оценку.

Производительность может быть незначительно хуже, чем рабочие нагрузки на Unity Catalog или в хранилище метаданных Hive, так как хранилище метаданных Hive и Unity Catalog находятся на трассе запроса федеративной системы table.

Дополнительные сведения о поддерживаемых функциях см. в разделе Требования, поддерживаемые функции и ограничения.

Что означает запись в федеративное хранилище метаданных Hive catalog в Azure Databricks?

Записи поддерживаются только для внутреннего федеративного Hive metastores, а не для внешнего Hive metastores.

Записи в федеративные metastores имеют два типа:

  • Операции DDL, такие как CREATE TABLE, ALTER TABLEи DROP TABLE.

    Операции DDL синхронно отражаются в базовом хранилище метаданных Hive. Например, выполнение инструкции CREATE TABLE создает table как в метахранилище Hive, так и в федеративной системе catalog.

    Предупреждение

    Это также означает, что команды DROP фиксируются в хранилище метаданных Hive. Например, DROP SCHEMA mySchema CASCADE удаляет все tables в базовом хранилище метаданных Hive schemaбез возможности UNDROP, так как хранилище метаданных Hive не поддерживает UNDROP.

  • Операции DML, такие как INSERT, UPDATEи DELETE.

    Операции DML также синхронно отражаются в базовом хранилище метаданных Hive table. Например, выполнение INSERT INTO добавляет записи в table в хранилище метаданных Hive.

    Поддержка записи — это ключ для обеспечения простого перехода во время миграции из хранилища метаданных Hive в Unity Catalog. См. Как использовать федерацию хранилища метаданных Hive во время миграции в Unity Catalog?.

Как set федерацию хранилища метаданных Hive?

Чтобы set федерацию хранилища метаданных Hive, сделайте следующее:

  1. Создайте подключение в Unity Catalog, указывающее путь и credentials для доступа к хранилищу метаданных Hive.

    Федерация хранилища метаданных Hive использует это подключение для сканирования хранилища метаданных Hive. Для большинства систем баз данных вы предоставляете имя пользователя и пароль. Для подключения к устаревшей внутренней рабочей области Azure Databricks хранилище метаданных Hive федерация хранилища метаданных Hive отвечает за авторизацию.

  2. Создайте учетных данных хранилища и внешнего расположения в Unity для путей к , зарегистрированным в хранилище метаданных Hive.

    Внешние локации содержат пути и хранилище credentials, которые требуются для доступа к этим путям. credentials хранилища — это защищаемые объекты Unity Catalog, которые указывают credentials, такие как управляемые удостоверения Azure, для доступа к облачному хранилищу. В зависимости от рабочего процесса, выбранного для создания внешних расположений, может потребоваться создать хранилище credentials перед созданием внешнего расположения.

  3. Создайте федеративные в Unity с помощью подключения, созданного на шаге 1.

    Это catalog, которые пользователи и рабочие процессы используют для работы с хранилищем метаданных Hive tables с помощью Unity Catalog. После создания федеративного catalogUnity Catalog заполняет его tables, зарегистрированным в хранилище метаданных Hive.

  4. Grant привилегии tables в федеративном catalog с помощью Unity Catalog.

    Кроме того, можно использовать ряды Unity Catalog и фильтры column для тонкого управления доступом.

  5. Начните запрашивать данные.

    Доступ к федеративным данным с помощью Unity Catalog доступен только для чтения для внешних metastores Hive и чтения и записи для внутренних metastoresHive.

    Для внутреннего хранилища Hive metastores и внешнего хранилища Hive metastoresUnity Catalog непрерывно обновляет метаданные table по мере их изменения в хранилище метаданных Hive. Для внутренних metastoresHive новые tables и table обновления, зафиксированные из федеративного catalog, записываются обратно в хранилище метаданных Hive, обеспечивая полную совместимость между Catalog Unity и хранилищем метаданных Hive catalogs.

Подробные инструкции см. в следующих руководствах.

Как использовать федерацию хранилища метаданных Hive во время миграции в Unity Catalog?

Федерация хранилища метаданных Hive позволяет переходить в Unity Catalog постепенно, уменьшая потребность в координации между командами и рабочими нагрузками. В частности, если вы выполняете миграцию из внутреннего Hive-хранилища метаданных вашей рабочей области Azure Databricks, возможность одновременно читать и записывать данные как в Hive-хранилище метаданных, так и в хранилище метаданных Unity Catalog означает, что вы можете поддерживать "зеркало" metastores на протяжении всей миграции, предоставляя следующие преимущества:

  • Рабочие нагрузки, выполняемые в федеративном catalogs выполняются в режиме совместимости хранилища метаданных Hive, что снижает затраты на адаптацию кода во время миграции.
  • Каждая рабочая нагрузка может выполнять миграцию независимо от других пользователей, зная, что в течение периода миграции данные будут доступны как в хранилище метаданных Hive, так и в Unity Catalog, что позволяет обеспечить координацию между рабочими нагрузками, имеющими зависимости друг от друга.

схема , которая содержит общие сведения о федерации HMS в контексте миграции

В этом разделе описывается типичный рабочий процесс для переноса внутреннего устаревшего хранилища метаданных Hive рабочей области Azure Databricks в Unity Catalogс использованием федерации хранилища метаданных Hive для упрощения перехода. Он не применяется к миграции внешнего хранилища метаданных Hive. Федеративные системы catalogs для внешних узлов Hive metastores не поддерживают операции записи.

Шаг 1. Федерация внутреннего хранилища метаданных Hive

На этом шаге вы создадите федеративный catalog, который отражает хранилище метаданных Hive в Unity Catalog. Давайте назовем его hms_in_uc.

схема , на которой показаны рабочие нагрузки, запущенные в хранилище метаданных Hive, и наличие зеркального федеративного Unity Catalogcataloghms_in_uc

Заметка

В рамках процесса федерации вы set внешних расположений для предоставления доступа к данным в облачном хранилище. В сценариях миграции, в которых некоторые рабочие нагрузки запрашивают данные с помощью устаревших механизмов доступа, а другие рабочие нагрузки обращаются к тем же данным в Unity Catalog, управляемые Unity Catalogэлементы управления доступом на внешних расположениях могут препятствовать устаревшим рабочим нагрузкам получать доступ к путям к хранилищу из вычислительных ресурсов, поддерживающих Unity Catalog. Вы можете включить резервный режим для этих внешних расположений, чтобы вернуться к любой области кластера или записной книжки, credentials, которые были определены для устаревшей рабочей нагрузки. После завершения миграции вы отключите резервный режим. См. Что такое резервный режим?.

Дополнительные сведения см. в разделе Включение федерации хранилища метаданных Hive для устаревшей рабочей области Hive.

Шаг 2. Запуск новых рабочих нагрузок для федеративных catalog в Unity Catalog

Если у вас есть федеративный catalog, вы можете grant аналитиков SQL и потребителей обработки и анализа данных доступ к нему и начать разработку новых рабочих нагрузок, которые указывают на него. Новые рабочие нагрузки получают выгоду от дополнительных функций set в Unity Catalog, включая управление доступом, поиск и линейность.

схема , на котором показаны существующие рабочие нагрузки, выполняемые в хранилище метаданных Hive и новые рабочие нагрузки, выполняемые в зеркальном Catalog федеративных catalog, hms_in_uc

На этом шаге обычно выполняются следующие действия:

  • Выберите Unity Catalog-совместимые вычислительные ресурсы (то есть режимы доступа к однопользовательским или общим кластерам, хранилища SQL или бессерверные вычисления). См. требования, поддерживаемые функции и ограничения.
  • Сделайте федеративный catalogcatalog по умолчанию в вычислительном ресурсе или добавьте USE CATALOG hms_in_uc в начало кода. Так как схемы и table имена в федеративном catalog являются точными зеркалами тех, которые находятся в хранилище метаданных Hive, ваш код начнёт обращаться к федеративному catalog.

Шаг 3. Перенос существующих заданий для запуска с использованием федеративной catalog

Чтобы перенести существующие задания для запроса федеративных catalog:

  1. Измените catalog по умолчанию в кластере заданий на hms_in_uc, задав свойство в самом кластере или добавив USE CATALOG hms_in_uc в начале кода.
  2. Переключите задание на однопользовательский или общий режим доступа и обновите его до одной из версий среды выполнения Databricks, поддерживающей федерацию хранилища метаданных Hive. См. требования, поддерживаемые функции и ограничения.
  3. Попросите администратора Azure Databricks grant правильные права Unity Catalog привилегии для объектов данных в hms_in_uc и любых облачных путей хранилища (включенных в Unity Catalog внешних расположений), к которым обращается задание. См. раздел Управление привилегиями в CatalogUnity.

Второй экземпляр схемы, предоставляющий обзор федерации HMS в контексте миграции

Шаг 4. Deny доступ к хранилищу метаданных Hive

После переноса всех рабочих нагрузок для выполнения запросов к федеративным catalog, хранилище метаданных Hive больше не требуется. Вы можете использовать устаревшие table управления доступом и разрешения вычислений для блокировки прямого доступа из рабочей области Azure Databricks в хранилище метаданных Hive. Например, можно:

  1. Revoke все привилегии объектов в хранилище метаданных Hive catalog.

    Команда MSCK REPAIR PRIVILEGES удобна для этой цели. Ознакомьтесь с MSCK REPAIR PRIVILEGES и привилегиями хранилища метаданных Hive и защищаемыми объектами (устаревшими).

  2. Запретить пользователям создавать и использовать кластеры, которые обходят table управление доступом (кластеры, использующие режим совместного доступа без изоляции или наследуемый пользовательский тип кластера), используя политики вычислений.

    См. раздел Управление конфигурациями вычислений.

  3. Сделайте пространство работы по умолчанию федеративным catalogcatalog.

    См. Управление catalogпо умолчанию.

Часто задаваемые вопросы

В следующих разделах приведены более подробные сведения о федерации хранилища метаданных Hive.

Что такое резервный режим?

Резервный режим — это настройка во внешних местоположениях, которые можно использовать для обхода проверок разрешений Unity Catalog во время миграции на Unity Catalog. Настройка гарантирует, что на этапе установки рабочие нагрузки, которые еще не перенесены, не влияют.

Unity Catalog получает доступ к облачному хранилищу с помощью внешних расположений, которые являются защищаемыми объектами, определяющими путь и учетные данные для доступа к учетной записи облачного хранения. Вы можете выдавать разрешения на них, например READ FILES, чтобы управлять тем, кто может использовать путь. Одной из проблем в процессе миграции является то, что вы можете не хотеть, чтобы Unity Catalog начала немедленно управлять всем доступом к пути. Например, если у вас есть неперенесенные рабочие нагрузки, которые ссылаются на этот путь.

Резервный режим позволяет отсрочить строгое применение контроля доступа Unity Catalog на внешними объектами. Если включен резервный режим, рабочие нагрузки, обращающиеся к пути, сначала проверяются на разрешения Unity Catalog, и если они не проходят проверку, используется credentials, имеющие область действия кластера или записной книжки, такие как профили экземпляров или свойства конфигурации 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

Что такое авторизованные пути?

При создании федеративной catalogвам будет предложено указать авторизованные пути, по которым сохраняются данные в облачном хранилище и метаданных Hive where и tables. Все table, к которым вы хотите получить доступ с помощью федерации хранилища метаданных Hive, должны охватываться этими путями. Databricks рекомендует, чтобы авторизованные пути были подпутями, которые используются большим числом tables. Например, если у вас есть tables на abfss://container@storageaccount.dfs.core.windows.net/bucket/table1, ./bucket/table2и ./bucket/table3, необходимо предоставить abfss://container@storageaccount.dfs.core.windows.net/bucket/ в качестве авторизованного пути.

Вы можете использовать UCX для определения путей, присутствующих в хранилище метаданных Hive.

Авторизованные пути добавляют дополнительный уровень безопасности в системе федерации catalogs, позволяя владельцу catalog применять ограничивающие меры доступа к данным, к которым пользователи могут получить доступ через федерацию. Это полезно, если ваше хранилище метаданных Hive позволяет пользователям выполнять update метаданные и произвольно изменять расположения table — обновления, которые в противном случае были бы синхронизированы с федеративным catalog. В этом сценарии пользователи могут переопределить tables, к которым у них уже есть доступ, чтобы они указывали на новые расположения, к которым они в противном случае не имели доступа.

Можно ли настроить федерацию Hive metastores с помощью UCX?

UCX, проект Databricks Labs по переносу рабочих областей Azure Databricks на платформу Unity Catalog, включает инструменты для включения федерации мета-хранилищ Hive.

  • enable-hms-federation
  • create-federated-catalog

См. файл Readme проекта на GitHub. Общие сведения об UCX см. в статье Использование служебных программ UCX для обновления вашей рабочей области до Unity Catalog.

Требования, поддерживаемые функции и ограничения

В следующем table перечислены службы и функции, поддерживаемые федерацией хранилища метаданных Hive. В некоторых случаях также перечислены неподдерживаемые службы или функции. В этих tablesаббревиатура "HMS" расшифровывается как хранилище метаданных Hive.

Категория Поддерживается Не поддерживается
Metastores — устаревшее рабочее пространство Hive metastores (внутреннее для Databricks)
— внешние metastores в Apache Hive версии 0.13 или 2.3 с помощью mySQL
— внешние элементы metastores в базах данных, отличных от MySQL
— Hive 3.1
Операции - Внутренняя система Databricks HMS: операции чтения и записи
- Внешний HMS: режим только для чтения
Ресурсы данных метаданного хранилища Hive — Управляемые и внешние объекты tables в метахранилище Hive
-Схемы
- Views
— Hive SerDe tables
— функции Hive и определяемые пользователем функции
— Создание новых мелких клонов в федеративной системе catalog
— tables с поддержкой JDBC
— Delta Sharing передал tables
— доступ к мелким клонам, зарегистрированным в хранилище метаданных Hive через федеративные catalog
Хранение — Azure Data Lake Storage 2-го поколения
— Tables, ссылающиеся на расположения подключения DBFS, включая корневую папку DBFS
— пути Tables, которые перекрываются с путями HMS table, определенные во внешних местоположениях
— пути HMS tables, которые пересекаются со стандартными путями объектов Unity Catalog
— доступ к tables в корне DBFS или точкам монтирования, зарегистрированным во внешнем HMS
— доступ к tables в корневом каталоге DBFS или местах монтирования из любой рабочей области, кроме той, в которой определен внутренний Hive Metastore (HMS).
поддержка брандмауэра - для учетной записи хранения рабочей области
Типы вычислений — Общие кластеры
— кластеры, назначенные одному пользователю
— бессерверные (все)
— хранилища SQL (все)
Нет кластеров изоляции
Вычислительные версии — Все каналы SQL Databricks
- Все каналы Delta Live Tables
— Databricks Runtime 13.3 LTS
— Databricks Runtime 14.3 LTS
— Databricks Runtime 15.1 и более поздние версии
Функции Catalog Unity — модель привилегий Unity Catalog
— фильтры строк и маски column
-Аудита
- Подчиненная линия происхождения
— поиск Table
— доступ между рабочими областями (кроме корневого и подключаемого сервера DBFS)
— доступ к данным ограничен определенными внешними расположениями
— Delta общий доступ
- Мониторинг Lakehouse
— векторный поиск
— Онлайн tables
— Некоторые функции функционального хранилища, включая создание функционального хранилища, создание модельного обслуживания, создание спецификаций функций, ведение журнала моделей и пакетную оценку моделей
— Вы не можете записывать материализованные Tables Delta Live views и потоковую передачу tables в федеративный catalog, но можно использовать федеративные ресурсы в качестве источника для материализованных Tables Delta Live views и потоковой передачи tables.
— автоматическая миграция устаревших table списков управления доступом в привилегии Unity Catalog для федеративного catalog. UCX могут помочь в этом.