Типы таблиц каталога Databricks Unity

Каталог Unity поддерживает три основных типа таблиц: управляемые, внешние и иностранные таблицы. Каждый тип отличается в том, как данные хранятся, управляются и регулируются.

Управляемые таблицы

Управляемые таблицы — это тип таблицы по умолчанию и рекомендуемый тип таблицы. Каталог Unity управляет жизненным циклом данных, расположением хранилища и оптимизацией. При удалении управляемой таблицы удаляются метаданные и базовые файлы данных.

Управляемые таблицы основываются на Delta Lake или Apache Iceberg и предоставляют следующие возможности:

  • Автоматическая оптимизация для уменьшения затрат на хранение и вычислительные ресурсы
  • Более быстрая производительность запросов во всех типах клиентов
  • Автоматическое обслуживание таблиц
  • Безопасный доступ для клиентов, отличных от Databricks, с помощью открытых API
  • Автоматическое обновление до последних функций платформы

Файлы данных хранятся в схеме или каталоге, содержащей таблицу. См. управляемые таблицы Unity Catalog для Delta Lake и Apache Iceberg.

Внешние таблицы

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

Внешние таблицы каталога Unity поддерживают форматы Delta Lake, CSV, JSON, AVRO, PARQUET, ORC и TEXT. Databricks рекомендует использовать формат Delta Lake, так как он имеет гарантии транзакций и оптимизацию производительности, которые другие форматы не используют.

При необходимости используйте внешние таблицы:

  • Регистрация существующих данных, несовместимых с управляемыми таблицами каталога Unity
  • Предоставление прямого доступа к данным от клиентов, отличных от Databricks, которые не поддерживают другие шаблоны внешнего доступа

См. статью " Работа с внешними таблицами".

Внешние таблицы

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

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

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

Внешние таблицы, использующие формат Delta Lake, не имеют большого количества оптимизаций, доступных в управляемых таблицах каталога Unity. Для рабочих нагрузок или часто запрашиваемых наборов данных перейдите в управляемые таблицы каталога Unity для повышения производительности. См. статью "Работа с внешними таблицами".

Сравнение типов таблиц

В следующей таблице сравниваются три типа таблиц:

Feature Управляемые таблицы Внешние таблицы Внешние таблицы
Управление жизненным циклом данных Управление каталогом Unity Вы управляете Внешняя система управляет
Расположение хранилища Управление каталогом Unity Вы указываете Внешняя система управляет
Автоматическая оптимизация Yes Limited No
Поддерживаемые форматы Delta Lake, Apache Iceberg Delta Lake (рекомендуется), CSV, JSON, AVRO, PARQUET, ORC, TEXT Зависит от внешней системы
Данные удалены DROP TABLE Yes No No
лучше всего подходит для Производственные нагрузки, данные, к которым часто обращаются Устаревшие интеграции, существующие данные Миграция из внешних систем, временный доступ

Другие типы таблиц

Azure Databricks также поддерживает специализированные типы таблиц для конкретных вариантов использования:

  • Потоковые таблицы: наборы данных конвейеров Lakeflow на базе Delta Lake с логикой инкрементной обработки
  • Материализованные представления: наборы данных в Lakeflow pipelines на базе Delta Lake, которые материализуют результаты запросов с использованием логики управляемого потока

Устаревшие типы таблиц

Следующие устаревшие типы таблиц поддерживаются для обратной совместимости, но не рекомендуется для новой разработки.

Таблицы Hive

Таблицы Hive управляются устаревшим хранилищем метаданных Hive и используют устаревшие шаблоны, включая кодеки Hive SerDe и синтаксис Hive SQL. По умолчанию таблицы, зарегистрированные с помощью устаревшего хранилища метаданных Hive, хранят данные в устаревшем корневом каталоге DBFS.

Databricks рекомендует перенести все таблицы из устаревшего каталога HMS в каталог Unity. См. статью "Объекты базы данных в устаревшем хранилище метаданных Hive".

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

Apache Spark поддерживает регистрацию и запросы таблиц Hive, но кодеки Hive SerDe не оптимизированы для Azure Databricks. Регистрируйте таблицы Hive только в том случае, если необходимо поддерживать запросы на данные, записанные внешними системами. См. таблицу Hive (устаревшую версию).

Динамические таблицы

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