Перейти к основному содержанию
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%';

См. также

Последнее изменение 10 июня 2026 г.