Saltar al contenido principal
ALTER TABLE [db.]table [ON CLUSTER cluster] APPLY PATCHES [IN PARTITION partition_id]
Este comando desencadena manualmente la materialización física de las partes de parche creadas por las sentencias de actualización ligera. Aplica por la fuerza los parches pendientes a las partes de datos reescribiendo únicamente las columnas afectadas.
  • Solo funciona con tablas de la familia MergeTree (incluidas las tablas replicadas).
  • Se trata de una operación de mutación y se ejecuta de forma asíncrona en segundo plano.

Cuándo usar APPLY PATCHES

En general, no deberías necesitar usar APPLY PATCHES
Las partes de parche normalmente se aplican automáticamente durante las fusiones cuando la configuración apply_patches_on_merge está habilitada (de forma predeterminada). Sin embargo, puede que quieras desencadenar manualmente la aplicación de parches en estos casos:
  • Para reducir la sobrecarga de aplicar parches durante las consultas SELECT
  • Para consolidar varias partes de parche antes de que se acumulen
  • Para preparar los datos para copias de seguridad o exportaciones con los parches ya materializados
  • Cuando apply_patches_on_merge está deshabilitada y quieres controlar cuándo se aplican los parches

Ejemplos

Aplicar todos los parches pendientes de una tabla:
ALTER TABLE my_table APPLY PATCHES;
Aplique parches solo a una partición específica:
ALTER TABLE my_table APPLY PATCHES IN PARTITION '2024-01';
Combínelo con otras operaciones:
ALTER TABLE my_table APPLY PATCHES, UPDATE column = value WHERE condition;

Seguimiento de la aplicación de parches

Puede seguir el progreso de la aplicación de parches usando la tabla system.mutations:
SELECT * FROM system.mutations
WHERE table = 'my_table' AND command LIKE '%APPLY PATCHES%';

Véase también

Última modificación el 10 de junio de 2026