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


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

Important

Таблицы Delta Lake, управляемые каталогом Unity, общедоступны. Таблицы Apache Iceberg, управляемые каталогом Unity, доступны в общедоступной предварительной версии с Databricks Runtime 16.4 LTS и более поздними версиями.

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

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

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

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

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

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

Note

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

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

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

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

Feature Benefits Включено по умолчанию? Конфигурируемый?
Прогнозная оптимизация Автоматически оптимизирует макет данных и вычислительные ресурсы с помощью искусственного интеллекта, поэтому вам не нужно вручную обрабатывать операции для управляемых таблиц. Databricks рекомендует включить прогнозную оптимизацию для всех управляемых таблиц, чтобы снизить затраты на хранение и вычисления.
Прогнозная оптимизация автоматически выполняется:
Да, для всех новых учетных записей, созданных 11 ноября 2024 г. или после этого.
Для текущих учетных записей Azure Databricks начинает развертывать прогнозную оптимизацию по умолчанию. Проверьте , включена ли прогнозная оптимизация.
Да. См. раздел "Включить прогнозную оптимизацию".
Автоматическое кластеризация жидкости Для таблиц с прогнозной оптимизацией включение автоматической кластеризации жидкости позволяет Azure Databricks интеллектуально выбирать ключи кластеризации. По мере изменения шаблонов запросов Azure Databricks автоматически обновляет ключи кластеризации для повышения производительности и снижения затрат. нет Да. См. раздел "Включить кластеризацию жидкости".
Кэширование метаданных Кэширование метаданных транзакций в памяти повышает производительность запросов, минимизируя запросы к журналу транзакций, хранящимся в облаке. Эта функция повышает производительность запросов. Да Нет. Кэширование метаданных всегда включено для управляемых таблиц.
Автоматическое DROP TABLE удаление файлов после команды При удалении управляемой таблицы Azure Databricks удаляет данные в облачном хранилище через 8 дней, что снижает затраты на хранение. Для внешних таблиц необходимо вручную перейти в контейнер хранилища и удалить файлы. Да Нет. Для управляемых таблиц файлы всегда удаляются автоматически через 8 дней.

Доступ к данным Databricks с помощью внешних систем

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

Следующие открытые API предоставляют внешним системам доступ к управляемым таблицам каталога Unity:

  • Unity REST API: предоставляет клиентам Delta доступ только для чтения к управляемым таблицам Delta.
  • Каталог REST Iceberg (IRC): предоставляет доступ для чтения и записи клиентам Iceberg для взаимодействия с таблицами Iceberg и доступ только для чтения к таблицам Delta с включённой функцией чтения Iceberg (UniForm).

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

Кроме того, Delta Sharing — это протокол с открытым исходным кодом, который обеспечивает безопасный и управляемый доступ к внешним партнерам и платформам. Вы можете использовать Delta Sharing для предоставления партнерам временного доступа только для чтения.

Все операции чтения и записи в управляемые таблицы должны использовать имена таблиц, каталогов и схем, при наличии. Например: catalog_name.schema_name.table_name. Доступ на основе пути к управляемым таблицам каталога Unity не поддерживается (за исключением режима совместимости), так как он обходит элементы управления доступом каталога Unity и мешает правильному функционированию функций управляемых таблиц.

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

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

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

Используйте следующий синтаксис 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 разрешения на таблицу Айсберга. Эта операция записывает только в метаданные таблицы, а вычислительная система поддерживает разрешения к таблице только на время выполнения задания.

Note

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

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

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

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

  • MANAGE на столе или ты должен быть владельцем стола.
  • USE SCHEMA в родительской схеме таблицы.
  • USE CATALOG в родительском каталоге таблицы.

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

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

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