Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью федерации каталогов вы получаете непосредственный доступ к внешней таблице в объектном хранилище. Запрос выполняется только с помощью вычислений Databricks и поэтому более экономичный и оптимизированный для производительности. Федерация каталогов используется для интеграции с платформами, имеющими службы каталогов и поддерживающими открытые форматы таблиц, такими как внешние метасторы Hive, устаревшие метасторы Databricks Hive, Salesforce Data 360, Snowflake и OneLake.
Распространенные варианты использования
Распространенные варианты использования:
- В качестве шага в пути миграции к каталогу Unity, обеспечивая добавочную миграцию без адаптации кода, при этом некоторые рабочие нагрузки продолжают использовать данные, зарегистрированные во внешнем каталоге, а другие переносятся.
- Для предоставления долгосрочной гибридной модели для организаций, которые должны поддерживать некоторые данные во внешнем каталоге вместе с данными, зарегистрированными в каталоге Unity.
Обзор федерации каталога
При федерации каталогов вы создаете подключение из рабочей области Databricks к внешнему каталогу, а каталог Unity выполняет обход внешнего каталога для заполнения внешнего каталога, иногда называемого федеративным каталогом, который позволяет вашей организации работать с таблицами внешнего каталога в каталоге Unity, предоставляя централизованные элементы управления доступом, происхождение, поиск и многое другое.
Федеративные внешние каталоги, расположенные вне рабочей области Databricks, поддерживают чтение, используя каталог Unity. Внутренние хранилища метаданных Hive позволяют считывать и записывать, обновлять метаданные хранилища метаданных Hive, а также метаданные каталога Unity при изменении метаданных.
При запросе внешних таблиц в федеративном внешнем каталоге каталог Unity предоставляет уровень управления, выполняя такие функции, как проверки контроля доступа и аудит, а запросы выполняются с помощью семантики внешнего каталога. Например, если пользователь запрашивает таблицу, хранящуюся в формате Parquet в внешнем каталоге:
- Каталог Unity проверяет, имеет ли пользователь доступ к таблице, и определяет родословную для запроса.
- Сам запрос выполняется в базовом внешнем каталоге, используя последние метаданные и сведения о секциях, хранящиеся там.
Что такое авторизованные пути?
При создании внешнего каталога, поддерживаемого федерацией хранилища метаданных Hive, вам будет предложено предоставить авторизованные пути к облачному хранилищу, где хранятся таблицы хранилища метаданных Hive. Любая таблица, к которой требуется получить доступ с помощью федерации хранилища метаданных Hive, должна охватываться этими путями. Databricks рекомендует, чтобы авторизованные пути были подпутями, которые являются общими для большого количества таблиц. Например, если у вас есть таблицы в s3://bucket/table1, s3://bucket/table2и s3://bucket/table3, необходимо указать s3://bucket/ в качестве авторизованного пути.
Авторизованные пути добавляют дополнительный уровень безопасности для внешних каталогов, поддерживаемых федерацией хранилища метаданных Hive. Они позволяют владельцу каталога применять правила к данным, к которым пользователи могут получить доступ, используя федерацию. Это полезно, если хранилище метаданных Hive позволяет пользователям обновлять метаданные и произвольно изменять расположения таблиц, обновления, которые в противном случае будут синхронизированы в внешний каталог. В этом сценарии пользователи могут потенциально переопределить таблицы, к которым у них уже есть доступ, чтобы они указывали на новые расположения, к которым они в противном случае не имели доступа.
Пример: незащищенное хранилище метаданных Hive
В следующем примере показано, как злоумышленник может обойти разрешения каталога Unity и получить доступ к конфиденциальным данным в федеративном каталоге, управляя путями в незащищенном хранилище метаданных Hive.
Администратор настраивает федерацию хранилища метаданных Hive и предоставляет Полу доступ к схеме non_sensitive в каталоге Unity. У Пола нет доступа к схеме sensitive_table в каталоге Unity.
Хотя каталог Unity является безопасным, хранилище метаданных Hive не является безопасным. Пол может изменить путь таблицы non_sensitive_table в хранилище метаданных Hive на s3://abc/def. При следующем обновлении федеративного каталога путь федеративной таблицы в каталоге Unity обновляется. Так как Unity Catalog уже имеет учетные данные для доступа к s3://abc/def, а Пол имеет SELECT доступ, он теперь может получить доступ к данным из таблицы sensitive_table.
Чтобы добавить авторизованные пути в масштабе, можно использовать следующие средства:
Unity Catalog Помощник по миграции встроенные вспомогательные функции
Средства автоматизации, такие как Terraform
Встроенные вспомогательные функции в следующем ноутбуке:
Вспомогательные функции авторизованных путей
Обновление метаданных
Каталог Unity автоматически обновляет метаданные для внешних таблиц во время запроса. Если схема внешнего каталога изменяется, каталог Unity получает последние метаданные при выполнении запроса. Это поведение сохраняет текущую схему и оптимально подходит для большинства рабочих нагрузок.
Однако Databricks рекомендует вручную обновлять метаданные в следующих случаях:
- Для поддержания согласованности внешних таблиц, к которым обращаются внешние механизмы. Пути, которые обходят Databricks Runtime, не запускают автоматическое обновление, что может привести к устареванию метаданных.
- Чтобы повысить производительность рабочих нагрузок, в которых требуется избежать обновления метаданных во время выполнения запроса. Обновление метаданных упреждающим образом позволяет выполнять запросы быстрее с помощью кэшированных метаданных. Этот подход особенно полезен сразу после создания внешнего каталога, так как первый запрос в противном случае активирует полное обновление.
Автоматизация обновления метаданных с помощью заданий Lakeflow
Запланируйте периодическое обновление метаданных с использованием задания Lakeflow и команды SQL. Рассмотрим пример.
-- Refresh an entire catalog
> REFRESH FOREIGN CATALOG some_catalog;
-- Refresh a specific schema
> REFRESH FOREIGN SCHEMA some_catalog.some_schema;
-- Refresh a specific table
> REFRESH FOREIGN TABLE some_catalog.some_schema.some_table;
Настройте задание для выполнения с регулярными интервалами в зависимости от частоты ожидаемых изменений внешней схемы.