Saltar al contenido principal

Descripción

La tabla contiene información sobre las mutaciones de las tablas MergeTree y su progreso. Cada comando de mutación se representa mediante una sola fila.

Columnas:

  • database (String) — El nombre de la base de datos a la que se aplicó la mutación.
  • table (String) — El nombre de la tabla a la que se aplicó la mutación.
  • mutation_id (String) — El ID de la mutación. En las tablas replicadas, estos ID corresponden a nombres de znode en el directorio <table_path_in_clickhouse_keeper>/mutations/ de ClickHouse Keeper. En las tablas no replicadas, los ID corresponden a nombres de archivo en el directorio de datos de la tabla.
  • command (String) — La cadena del comando de mutación (la parte de la consulta después de ALTER TABLE [db.]table).
  • create_time (DateTime) — La fecha y hora en que se envió el comando de mutación para su ejecución.
  • block_numbers.partition_id (Array(String)) — En las mutaciones de tablas replicadas, el array contiene los ID de las particiones (un registro por cada partición). En las mutaciones de tablas no replicadas, el array está vacío.
  • block_numbers.number (Array(Int64)) — En las mutaciones de tablas replicadas, el array contiene un registro por cada partición, con el número de bloque adquirido por la mutación. En la partición, solo se mutarán las partes que contengan bloques con números inferiores a este. En las tablas no replicadas, los números de bloque de todas las particiones forman una única secuencia. Esto significa que, en las mutaciones de tablas no replicadas, la columna contendrá un registro con un único número de bloque adquirido por la mutación.
  • parts_in_progress_names (Array(String)) — Un array con los nombres de las partes de datos que se están mutando actualmente.
  • parts_to_do_names (Array(String)) — Un array con los nombres de las partes de datos que deben mutarse para completar la mutación.
  • parts_to_do (Int64) — El número de partes de datos que deben mutarse para completar la mutación. Nota: incluso si parts_to_do = 0, es posible que una mutación de una tabla replicada aún no se haya completado debido a un INSERT de larga duración que está creando una nueva parte de datos que deberá mutarse.
  • parts_postpone_reasons (Map(String, String)) — Un map de nombres de partes a los motivos por los que se posponen.
  • is_done (UInt8) — Indica si la mutación se ha completado o no. Posibles valores: 1 si la mutación se ha completado, 0 si la mutación sigue en proceso.
  • is_killed (UInt8) — Indica si una mutación ha sido cancelada. Solo está disponible en ClickHouse Cloud. Nota: is_killed=1 no significa necesariamente que la mutación haya finalizado por completo. Es posible que una mutación permanezca durante un período prolongado en un estado en el que is_killed=1 e is_done=0. Esto puede ocurrir si otra mutación de larga duración está bloqueando la mutación cancelada. Esta es una situación normal.
  • latest_failed_part (String) — El nombre de la parte más reciente que no pudo mutarse.
  • latest_fail_time (DateTime) — La fecha y hora del fallo más reciente en una mutación de parte.
  • latest_fail_reason (String) — El mensaje de excepción que provocó el fallo más reciente en una mutación de parte.
  • latest_fail_error_code_name (String) — El código de error de la excepción que provocó el fallo más reciente en una mutación de parte.
  • Si el nombre de una parte no está en parts_postpone_reasons y todavía no ha sido mutada, significa que la parte aún no está programada para una mutación.
  • El nombre de parte all_parts representa todas las partes que todavía no han sido mutadas.
  • is_killed (UInt8) — Indica si una mutación ha sido cancelada. Solo disponible en ClickHouse Cloud.
is_killed=1 no significa necesariamente que la mutación se haya finalizado por completo. Es posible que una mutación permanezca durante un período prolongado en un estado en el que is_killed=1 e is_done=0. Esto puede ocurrir si otra mutación de larga duración está bloqueando la mutación cancelada. Esta es una situación normal.
  • is_done (UInt8) — Indica si la mutación se ha completado o no. Posibles valores:
    • 1 si la mutación se ha completado,
    • 0 si la mutación sigue en proceso.
Incluso si parts_to_do = 0, es posible que una mutación en una tabla replicada todavía no haya finalizado debido a una consulta INSERT de larga duración, que creará una nueva parte de datos que deberá mutarse.
Si hubo problemas al mutar algunas partes de datos, las siguientes columnas contienen información adicional:
  • latest_failed_part (String) — El nombre de la parte más reciente que no pudo mutarse.
  • latest_fail_time (DateTime) — La fecha y hora del fallo más reciente de mutación de una parte.
  • latest_fail_reason (String) — El mensaje de excepción que causó el fallo más reciente de mutación de una parte.

Monitorización de mutaciones

Para seguir el progreso de la tabla system.mutations, use la siguiente consulta:
SELECT * FROM clusterAllReplicas('cluster_name', 'system', 'mutations')
WHERE is_done = 0 AND table = 'tmp';

-- o

SELECT * FROM clusterAllReplicas('cluster_name', 'system.mutations')
WHERE is_done = 0 AND table = 'tmp';
Nota: esto requiere permisos de lectura sobre las tablas system.*.
Uso de CloudEn ClickHouse Cloud, la tabla system.mutations de cada nodo contiene todas las mutaciones del clúster, por lo que no es necesario usar clusterAllReplicas.

Véase también

Última modificación el 10 de junio de 2026