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


Управляемые таблицы каталога 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 и недоступны для внешних таблиц и внешних таблиц.

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.