Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к:
Databricks SQL
Databricks Runtime
Удалите неиспользуемые файлы из каталога таблицы.
Примечание.
Эта команда работает по-разному в зависимости от того, работаете ли вы в таблице Delta, Apache Spark или Apache Iceberg.
Очистите таблицу Delta
Рекурсивно очищает каталоги, связанные с табличными данными Delta. Полные сведения и ограничения см. в разделе "Удаление неиспользуемых файлов данных с помощью вакуума".
VACUUM удаляет все файлы из каталога таблиц, которые не управляются Delta, а также файлы данных, которые больше не находятся в последнем состоянии журнала транзакций для таблицы и старше порога хранения.
VACUUM пропускает все каталоги, имена которых начинаются с символа подчеркивания (_), включая каталоги _delta_log. Секционирование таблицы по столбцу, который начинается с подчеркивания, является исключением из этого правила; VACUUM сканирует все допустимые разделы, включенные в целевую таблицу Delta. Файлы данных таблицы Delta удаляются через период времени после их логического удаления из журнала транзакций Delta, который включает период хранения, а не на основании меток времени изменения в системе хранения. По умолчанию срок хранения составляет 7 дней.
Если вы выполните VACUUM в Delta-таблице, вы потеряете возможность вернуться к версии старше указанного периода хранения данных.
Если включена прогнозная оптимизация , Azure Databricks автоматически активирует VACUUM операцию в рамках процесса оптимизации. В большинстве случаев вам не нужно запускать VACUUM вручную.
Предупреждение
Databricks настоятельно рекомендует задать интервал хранения не менее 7 дней. Если у вас есть задания, которые выполняются в течение нескольких дней, длительные задания могут записывать файлы, которые еще не зафиксированы. Если срок хранения слишком короткий, VACUUM может удалить эти незафиксированные файлы до завершения задания.
В Delta Lake есть механизм проверки безопасности, позволяющий предотвратить выполнение опасной команды VACUUM. В Databricks Runtime вы уверены, что в этой таблице нет операций, которые занимают больше указанного интервала хранения, вы можете отключить эту проверку безопасности, задав свойство конфигурации Spark spark.databricks.delta.retentionDurationCheck.enabled на false.
Очистка таблицы Apache Iceberg
Рекурсивно удаляет файлы без ссылок из каталогов, связанных с таблицей Apache Iceberg. Срок хранения фиксирован в течение 7 дней.
Если включена прогнозная оптимизация , Azure Databricks автоматически активирует VACUUM операцию в рамках процесса оптимизации. В большинстве случаев вам не нужно запускать VACUUM вручную.
Синтаксис
VACUUM table_name { { FULL | LITE } | DRY RUN } [...]
Параметры
-
Определяет существующую таблицу Delta. Имя не должно включать темпоральную спецификацию или спецификацию параметров.
DRY RUNВозвращает список до 1000 файлов, которые нужно удалить.
FULLилиLITEПрименяется к:
Databricks SQL
Databricks Runtime 16.1 и более поздних версийFULLвыполняет вакуумную операцию в полном режиме . Это удаляет файлы данных по истечении срока хранения и все файлы в каталоге таблицы, на которые не ссылается таблица.LITEвыполняет операцию вакуума в режиме Lite . Вместо поиска всех файлов в каталоге таблицVACUUMиспользует журнал транзакций Delta для идентификации и удаления файлов, на которые больше не ссылаются версии таблиц в течение срока хранения. ЕслиVACUUM LITEне удается завершить, так как журнал Delta был обрезан, возникает исключение DELTA_CANNOT_VACUUM_LITE.Значение по умолчанию —
FULL.
Внимание
Окно хранения для команды VACUUM определяется свойством таблицы delta.deletedFileRetentionDuration, которое по умолчанию составляет 7 дней.
Это означает, что VACUUM удаляет файлы данных, на которые больше не ссылается версия таблицы Delta за последние 7 дней.
Чтобы сохранить данные в течение длительного периода, например для поддержки перемещения по времени в течение длительного времени, задайте для этого свойства таблицы более высокое значение.
В следующем примере показано, как задать пороговое значение 30 дней:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Вакуум других таблиц
Рекурсивно вакуумирует каталоги, связанные с таблицами, которые не являются ни Delta, ни Iceberg, удаляя незафиксированные файлы, которые старше установленного порога удержания. По умолчанию срок хранения составляет 7 дней.
В этих таблицах Azure Databricks автоматически активирует VACUUM операции при записи данных.
Синтаксис
VACUUM table_name
Параметры
-
Определяет существующую таблицу по имени или пути.