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


REORG TABLE

Область применения: флажок Databricks SQL флажок Databricks Runtime 11.3 LTS и выше

Реорганизуйте таблицу Delta Lake путем перезаписи файлов для очистки обратимо удаленных данных, таких как данные столбцов, удаленные с помощью инструкции ALTER TABLE DROP COLUMN.

Синтаксис

REORG [ TABLE ] table_name { [ WHERE predicate ] APPLY ( PURGE ) |
                             APPLY ( UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ) } )

Для версий Среды выполнения Databricks до 15.4 TABLE является обязательным ключевым словом.

Примечание.

  • APPLY (PURGE) перезаписывает только файлы, содержащие обратимо удаленные данные.
  • APPLY (UPGRADE) может перезаписать все файлы.
  • REORG TABLE является идемпотентным, то есть если он выполняется дважды в одном наборе данных, второй запуск не влияет.
  • После выполнения APPLY (PURGE)обратимо удаленные данные могут по-прежнему существовать в старых файлах. Для физического удаления старых файлов можно выполнить инструкцию VACUUM.

Параметры

  • table_name

    Определяет существующую таблицу Delta. Имя не должно включать темпоральную спецификацию или спецификацию параметров.

  • WHEREpredicate

    Для APPLY (PURGE)этого переорганизует файлы, соответствующие заданному предикату секции. Поддерживаются только фильтры, включающие атрибуты ключа секции.

  • APPLY (PURGE)

    Указывает, что целью перезаписи файлов является очистка обратимо удаленных данных. Чтобы принудительно перезаписать данные, см. статью "Очистка только метаданных".

  • APPLY (UPGRADE UNIFORM ( ICEBERG_COMPAT_VERSION = version ))

    Область применения: флажок Databricks SQL флажок Databricks Runtime 14.3 и более поздних версий

    Указывает, что цель перезаписи файлов — обновить таблицу до заданной версии Iceberg. version должен быть либо 1 , либо 2.

Примеры

> REORG TABLE events APPLY (PURGE);

> REORG TABLE events WHERE date >= '2022-01-01' APPLY (PURGE);

> REORG TABLE events
    WHERE date >= current_timestamp() - INTERVAL '1' DAY
    APPLY (PURGE);

> REORG TABLE events APPLY (UPGRADE UNIFORM(ICEBERG_COMPAT_VERSION=2));