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

Описание

Таблица содержит информацию о Мутациях таблиц MergeTree и ходе их выполнения. Каждой команде мутации соответствует одна строка.

Столбцы:

  • database (String) — Имя базы данных, к которой была применена мутация.
  • table (String) — Имя таблицы, к которой была применена мутация.
  • mutation_id (String) — Идентификатор мутации. Для реплицируемых таблиц эти идентификаторы соответствуют именам znode в каталоге <table_path_in_clickhouse_keeper>/mutations/ в ClickHouse Keeper. Для нереплицируемых таблиц идентификаторы соответствуют именам файлов в каталоге данных таблицы.
  • command (String) — Строка команды мутации (часть запроса после ALTER TABLE [db.]table).
  • create_time (DateTime) — Дата и время, когда команда мутации была отправлена на выполнение.
  • block_numbers.partition_id (Array(String)) — Для мутаций реплицируемых таблиц массив содержит идентификаторы партиций (по одной записи для каждой партиции). Для мутаций нереплицируемых таблиц массив пуст.
  • block_numbers.number (Array(Int64)) — Для мутаций реплицируемых таблиц массив содержит по одной записи для каждой партиции с номером блока, назначенным мутации. В партиции будут мутированы только те части данных, которые содержат блоки с номерами меньше этого числа. В нереплицируемых таблицах номера блоков во всех партициях образуют единую последовательность. Это означает, что для мутаций нереплицируемых таблиц столбец будет содержать одну запись с одним номером блока, назначенным мутации.
  • parts_in_progress_names (Array(String)) — Массив имен частей данных, которые сейчас мутируются.
  • parts_to_do_names (Array(String)) — Массив имен частей данных, которые необходимо мутировать для завершения мутации.
  • parts_to_do (Int64) — Количество частей данных, которые необходимо мутировать для завершения мутации. Примечание: даже если parts_to_do = 0, мутация реплицируемой таблицы может быть еще не завершена из-за длительно выполняющегося INSERT, который создает новую часть данных, которую потребуется мутировать.
  • parts_postpone_reasons (Map(String, String)) — Сопоставление имен частей данных с причинами, по которым их обработка отложена.
  • is_done (UInt8) — Флаг, указывающий, завершена мутация или нет. Возможные значения: 1, если мутация завершена, 0, если мутация все еще выполняется.
  • is_killed (UInt8) — Указывает, была ли принудительно остановлена мутация. Доступно только в ClickHouse Cloud. Примечание: is_killed=1 не обязательно означает, что мутация полностью завершена. Мутация может оставаться в состоянии, когда is_killed=1 и is_done=0, в течение длительного времени. Это может происходить, если другая длительно выполняющаяся мутация блокирует остановленную мутацию. Это нормальная ситуация.
  • latest_failed_part (String) — Имя последней части данных, которую не удалось мутировать.
  • latest_fail_time (DateTime) — Дата и время последней ошибки мутации части данных.
  • latest_fail_reason (String) — Сообщение исключения, вызвавшего последнюю ошибку мутации части данных.
  • latest_fail_error_code_name (String) — Код ошибки исключения, вызвавшего последнюю ошибку мутации части данных.
  • Если имя части данных отсутствует в parts_postpone_reasons и она ещё не подвергалась мутации, это означает, что эта часть данных пока не запланирована для мутации.
  • Имя части данных all_parts обозначает все части данных, которые ещё не подвергались мутации.
  • is_killed (UInt8) — Указывает, была ли мутация принудительно остановлена. Доступно только в ClickHouse Cloud.
is_killed=1 не обязательно означает, что мутация полностью завершена. Мутация может в течение длительного времени оставаться в состоянии, когда is_killed=1, а is_done=0. Это может происходить, если остановленную мутацию блокирует другая длительно выполняющаяся мутация. Это нормальная ситуация.
  • is_done (UInt8) — Флаг, указывающий, завершена мутация или нет. Возможные значения:
    • 1, если мутация завершена,
    • 0, если мутация всё ещё выполняется.
Даже если parts_to_do = 0, мутация реплицируемой таблицы может быть ещё не завершена из-за длительно выполняющегося запроса INSERT, который создаст новую часть данных, к которой нужно будет применить мутацию.
Если при мутации некоторых частей данных возникли проблемы, следующие столбцы содержат дополнительную информацию:
  • latest_failed_part (String) — Имя последней части данных, для которой не удалось выполнить мутацию.
  • latest_fail_time (DateTime) — Дата и время последнего сбоя мутации части данных.
  • latest_fail_reason (String) — Сообщение об исключении, вызвавшем последний сбой мутации части данных.

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

Чтобы отслеживать ход выполнения в таблице system.mutations, используйте следующий запрос:
SELECT * FROM clusterAllReplicas('cluster_name', 'system', 'mutations')
WHERE is_done = 0 AND table = 'tmp';

-- или

SELECT * FROM clusterAllReplicas('cluster_name', 'system.mutations')
WHERE is_done = 0 AND table = 'tmp';
Примечание: для этого требуются разрешения на чтение таблиц system.*.
Использование в CloudВ ClickHouse Cloud таблица system.mutations на каждом узле содержит все мутации кластера, поэтому clusterAllReplicas не требуется.

См. также

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