Перейти к основному содержимому
Перейти к основному содержимому

Применение патчей из легковесных обновлений

Beta feature. Learn more.
ALTER TABLE [db.]table [ON CLUSTER cluster] APPLY PATCHES [IN PARTITION partition_id]

Команда вручную запускает физическую материализацию патч-частей, созданных командами легковесного UPDATE. Она принудительно применяет неприменённые патчи к частям данных, перезаписывая только затронутые столбцы.

Примечание
  • Работает только для таблиц семейства MergeTree (включая реплицируемые таблицы).
  • Это операция мутации, и она выполняется асинхронно в фоновом режиме.

Когда использовать APPLY PATCHES

Совет

Как правило, вам не нужно использовать APPLY PATCHES

Патч-части обычно применяются автоматически во время слияний, когда настройка apply_patches_on_merge включена (по умолчанию). Однако вы можете захотеть вручную выполнить применение патчей в следующих сценариях:

  • Чтобы уменьшить накладные расходы на применение патчей во время запросов SELECT
  • Чтобы консолидировать несколько патч-частей, прежде чем они накопятся
  • Чтобы подготовить данные к резервному копированию или экспорту с уже материализованными патчами
  • Когда apply_patches_on_merge отключена и вы хотите контролировать момент применения патчей

Примеры

Применить все патчи, ожидающие применения, для таблицы:

ALTER TABLE my_table APPLY PATCHES;

Применяйте патчи только к определённой партиции:

ALTER TABLE my_table APPLY PATCHES IN PARTITION '2024-01';

Совместное использование с другими операциями:

ALTER TABLE my_table APPLY PATCHES, UPDATE column = value WHERE condition;

Мониторинг применения мутаций

Вы можете отслеживать прогресс применения мутаций с помощью таблицы system.mutations:

SELECT * FROM system.mutations
WHERE table = 'my_table' AND command LIKE '%APPLY PATCHES%';

См. также