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


Работа с внешними таблицами

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

Azure Databricks поддерживает следующие методы регистрации внешних таблиц:

  • Федерация баз данных использует защищенные подключения JDBC для интеграции с внешними системами данных, такими как PostgreSQL и MySQL.
  • Федерация каталогов подключает внешние каталоги, такие как хранилище метаданных Hive, Glue или Snowflake Horizon Catalog, для запроса данных непосредственно в хранилище файлов.

Дополнительные сведения о подключении к внешним источникам см. в статье "Что такое Федерация Lakehouse?" .

Это важно

Все таблицы в внешнем каталоге являются внешними таблицами, а внешние таблицы должны находиться в внешнем каталоге.

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

Зачем использовать внешнюю таблицу?

Внешние таблицы обеспечивают гибкость при интеграции Azure Databricks с существующими системами данных или миграции из устаревших систем.

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

Федерация Lakehouse предоставляет бесплатное решение для загрузки данных из внешних систем данных, не поддерживаемых LakeFlow Connect. Databricks рекомендует использовать материализованные представления для репликации внешних таблиц в каталог Unity. Смотрите Загрузка данных из внешних таблиц с материализованными представлениями.

Создание или запись в внешние таблицы

Если у вас есть достаточные привилегии, а рабочая область настроена с внутренним федеративным хранилищем метаданных Hive, вы можете создать или записать в внешние таблицы, поддерживаемые внутренним федеративным хранилищем метаданных Hive. Внешнее федеративное хранилище метаданных Hive и все внешние таблицы, поддерживаемые Федерацией Lakehouse, доступны только для чтения.

Azure Databricks не управляет метаданными, данными или семантикой для записи в внешние таблицы. Внешние таблицы могут быть подкреплены форматом, совместимым с ACID, например Delta Lake или Apache Iceberg, но внешние таблицы не предоставляют транзакционные гарантии управляемых таблиц каталога Unity.

Большинство оптимизаций в Azure Databricks, направленных на повышение производительности запросов, увеличение скорости записи, пропуск данных и выполнение запросов только к метаданным, требуют Unity Catalog. Databricks рекомендует сравнивать производительность запросов чтения и записи между внешними таблицами и управляемыми таблицами каталога Unity, используя последнюю версию среды выполнения Databricks для оценки задержек и различий затрат. См. таблицы под управлением каталога Unity в Azure Databricks для Delta Lake и Apache Iceberg.