Конвертировать в Delta Lake

Команда SQL CONVERT TO DELTA выполняет однократное преобразование таблиц Parquet и Iceberg в таблицы Delta Lake. Для поэтапного преобразования таблиц Parquet или Iceberg в Delta Lake см. пошаговое клонирование таблиц Parquet и Iceberg в Delta Lake.

Каталог Unity поддерживает команду SQL CONVERT TO DELTA для таблиц Parquet и Iceberg, хранящихся во внешних расположениях, управляемых каталогом Unity.

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

См. техническую документацию в CONVERT TO DELTA.

Преобразование директории файлов формата Parquet или Iceberg, находящейся во внешнем хранилище, в формат Delta Lake

Примечание

  • Преобразование таблиц Iceberg находится в общедоступной предварительной версии.
  • Преобразование таблиц Iceberg поддерживается в Databricks Runtime 10.4 LTS и выше.
  • Преобразование таблиц хранилища метаданных Iceberg не поддерживается.
  • Преобразование таблиц Iceberg, подверженных эволюции секций, не поддерживается.
  • Преобразование таблиц Iceberg с режимом merge-on-read, в которых выполнялись обновления, удаления или слияния, не поддерживается.
  • Ниже перечислены ограничения на преобразование таблиц Айсберга с разделами, определенными по усеченным столбцам.
    • В Databricks Runtime 12.2 LTS и ниже поддерживается только усеченный тип столбца string.
    • В Databricks Runtime 13.3 LTS и более поздних версиях можно работать с усеченными столбцами типов string, longили int.
    • Azure Databricks не поддерживает работу с усеченными столбцами типа decimal.

Каталог файлов данных Parquet можно преобразовать в таблицу Delta Lake, если у вас есть доступ на запись в месте хранения. Сведения о настройке доступа с помощью каталога Unity см. в статье Connect to cloud object storage and services using Unity Catalog.

Примечание

Для каталога Unity требуется Azure Data Lake Storage 2-го поколения.

CONVERT TO DELTA parquet.`abfss://container@storageAccount.dfs.core.windows.net/parquet-data`;

CONVERT TO DELTA iceberg.`abfss://container@storageAccount.dfs.core.windows.net/iceberg-data`;

Чтобы загрузить преобразованные таблицы как внешние таблицы в Unity Catalog, вам потребуется разрешение CREATE EXTERNAL TABLE на внешнее расположение.

Примечание

Для Databricks Runtime 11.3 LTS и более поздних версий CONVERT TO DELTA автоматически определяет сведения о секционировании для таблиц, зарегистрированных в хранилище метаданных Hive. Необходимо указать сведения о секционировании для внешних таблиц каталога Unity.

Преобразование управляемых и внешних таблиц в Delta Lake с использованием Unity Catalog

CONVERT TO DELTA синтаксис можно использовать только для создания внешних таблиц каталога Unity. Используйте инструкцию CTAS для преобразования управляемой метастором Hive устаревшей таблицы Parquet непосредственно в управляемую таблицу каталога Unity Delta Lake, см. Обновление таблицы Hive до управляемой таблицы каталога Unity, используя CREATE TABLE AS SELECT.

Чтобы обновить внешнюю таблицу Parquet до внешней таблицы каталога Unity, см. обновление одной таблицы Hive до внешней таблицы каталога Unity с помощью мастера обновления.

После регистрации внешней таблицы Parquet в каталоге Unity его можно преобразовать во внешнюю таблицу Delta Lake. Необходимо указать сведения о секционировании, если таблица Parquet секционирована.

CONVERT TO DELTA catalog_name.database_name.table_name;

CONVERT TO DELTA catalog_name.database_name.table_name PARTITIONED BY (date_updated DATE);