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


Управляемые таблицы каталога Unity в Azure Databricks для Delta Lake и Apache Iceberg

Это важно

Управляемые таблицы каталога Unity обычно доступны для таблиц Delta Lake. Для таблиц Apache Iceberg эта функция доступна в общедоступной предварительной версии и доступна в Databricks Runtime 16.4 LTS и выше.

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

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

Databricks рекомендует использовать управляемые таблицы для использования следующих преимуществ:

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

Управляемые таблицы поддерживают взаимодействие, разрешая доступ из клиентов Delta Lake и Iceberg. С помощью открытых API и учётных данных Unity Catalog позволяет внешним движкам, таким как Trino, DuckDB, Apache Spark, Daft и Iceberg REST, а также каталожным движкам, интегрированным с Dremio, получать доступ к управляемым таблицам. Delta Sharing, протокол с открытым исходным кодом, обеспечивает безопасный, управляемый обмен данными с внешними партнерами и платформами.

Вы можете работать с управляемыми таблицами на всех языках и продуктах, поддерживаемых в Azure Databricks. Для создания, обновления, удаления или запроса управляемых таблиц требуются определенные привилегии. См. в каталоге Unity раздел Управление привилегиями.

Все операции чтения и записи в управляемые таблицы должны использовать имена таблиц и каталог и имена схем, где они существуют (например, catalog_name.schema_name.table_name).

Замечание

Эта страница посвящена управляемым таблицам каталога Unity. Для управления таблицами в устаревшем хранилище метаданных Hive см. раздел Объекты базы данных в устаревшем хранилище метаданных Hive.

Зачем использовать управляемые таблицы каталога Unity?

Управляемые таблицы каталога Unity автоматически оптимизируют затраты на хранение и скорость запросов с помощью технологий, управляемых ИИ, таких как автоматическое кластеризация, сжатие размера файла и интеллектуальная сбор статистических данных. Эти таблицы упрощают управление данными с такими функциями, как автоматическое вакуумирование и кэширование метаданных, обеспечивая взаимодействие с сторонними средствами Delta и Iceberg.

Функция Преимущества
Прогнозная оптимизация Оптимизирует макет данных и вычислительные ресурсы с помощью ИИ, автоматически определяя размер вычислительных ресурсов, уплотняя задания для максимальной эффективности и регистрируя результаты, чтобы вы могли отслеживать, что произошло.
Прогнозная оптимизация автоматически выполняется:

Эта функция снижает затраты на вычислительные ресурсы и хранилище за счет экономии размера хранилища. См. прогнозную оптимизацию для управляемых каталогом Unity таблиц.
Автоматическая кластеризация жидкостей Данные автоматически кластеризуются наиболее эффективно на основе шаблонов доступа запросов к таблицам, что значительно повышает скорость запросов для всех клиентов (Databricks и других). См. автоматическая кластеризация жидкости.
Автоматическая статистика Сбор статистики улучшает производительность запросов за счет использования эффективных методов пропуска данных и оптимизации соединений. Автоматически собирая важные статистические данные, такие как минимальные и максимальные значения для столбцов, Azure Databricks может определить, какие файлы являются неуместными, и исключить их во время выполнения запроса. Это снижает вычислительные издержки. Внешние таблицы каталога Unity, которые создают статистику на основе первых 32 столбцов по умолчанию, а управляемые таблицы каталога Unity динамически собирают статистику для столбцов, наиболее важных для рабочих нагрузок запросов.
Кэширование метаданных Кэширование метаданных транзакций в памяти для минимизации запросов к журналу транзакций, хранящейся в облаке. Эта функция повышает производительность запросов.
Оптимизация размера файла Azure Databricks автоматически уменьшает размеры файлов до оптимального, на основе данных, собранных из тысяч рабочих развертываний в фоновом режиме. Azure Databricks автоматически определяет размер целевого файла и корректирует записи, чтобы лучше соответствовать этим размерам файлов, что может помочь повысить производительность запросов и сэкономить затраты на хранение. См. раздел Configure Delta Lake для управления размером файлов данных.
DROP TABLE При удалении управляемой таблицы данные будут автоматически удалены в облачном хранилище через 7 дней, что снижает затраты на хранение. Для внешних таблиц необходимо вручную перейти в контейнер хранилища и удалить файлы.

Создание управляемой таблицы

Используйте следующий синтаксис SQL, чтобы создать пустую управляемую таблицу с помощью SQL. Замените значения заполнителей:

  • <catalog-name>: имя каталога, содержащего таблицу.
  • <schema-name>: имя схемы, содержащей таблицу.
  • <table-name>: это имя для таблицы.
  • <column-specification>: имя и тип данных каждого столбца.
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
  <column-specification>
);

-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
  <column-specification>
)
USING iceberg;

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

Замечание

Чтобы создать таблицу Айсберга, явно укажите USING iceberg. В противном случае Azure Databricks создает таблицу Delta Lake по умолчанию.

Управляемые таблицы можно создавать из результатов запроса или операций записи DataFrame. В следующих статьях демонстрируется несколько шаблонов, которые можно использовать для создания управляемой таблицы в Azure Databricks:

Необходимые разрешения

Чтобы создать управляемую таблицу, убедитесь, что у вас есть:

  • USE SCHEMA разрешение на родительскую схему таблицы.
  • USE CATALOG разрешение на родительский каталог таблицы.
  • CREATE TABLE разрешение на основную схему таблицы.

Удалите управляемую таблицу

Вы должны быть владельцем таблицы или иметь MANAGE право удалить управляемую таблицу. Чтобы удалить управляемую таблицу, выполните следующую команду SQL:

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

Каталог Unity поддерживает UNDROP TABLE команду для восстановления удаленных управляемых таблиц в течение 7 дней. Через 7 дней Azure Databricks помечает базовые данные для удаления из облачного клиента и удаляет файлы во время автоматического обслуживания таблиц. См. UNDROP.