system.mutations
Описание
Таблица содержит информацию о мутациях таблиц 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 используйте следующий запрос:
Примечание: для этого требуются права на чтение таблиц system.*.
В ClickHouse Cloud таблица system.mutations на каждом узле содержит все мутации кластера, поэтому использование clusterAllReplicas не требуется.
См. также
- Мутации
- Движок таблиц MergeTree
- Семейство ReplicatedMergeTree