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_to_do_names(Array(String)) — Массив имён кусков данных, которые необходимо мутировать для завершения мутации.parts_to_do(Int64) — Количество кусков данных, которые необходимо мутировать для завершения мутации.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