system.mutations
Таблица содержит информацию о мутациях таблиц MergeTree и их прогрессе. Каждая команда мутации представлена одной строкой.
Columns:
-
database(String) — Имя базы данных, к которой применена мутация. -
table(String) — Имя таблицы, к которой применена мутация. -
mutation_id(String) — ID мутации. Для реплицированных таблиц эти ID соответствуют именам znode в директории<table_path_in_clickhouse_keeper>/mutations/в ClickHouse Keeper. Для нереплицированных таблиц ID соответствуют именам файлов в директории данных таблицы. -
command(String) — Строка команды мутации (часть запроса послеALTER TABLE [db.]table). -
create_time(DateTime) — Дата и время, когда команда мутации была отправлена на выполнение. -
block_numbers.partition_id(Array(String)) — Для мутаций реплицированных таблиц массив содержит ID разделов (одна запись для каждого раздела). Для мутаций нереплицированных таблиц массив пуст. -
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) — Сообщение исключения, которое вызвало последний сбой мутации части.
Monitoring Mutations
Чтобы отслеживать прогресс в таблице system.mutations, используйте запрос, подобный следующему - это требует разрешений на чтение в таблицах system.*:
замените tmp в table='tmp' на имя таблицы, по которой вы проверяете мутации.
См. также
- Mutations
- Движок таблиц MergeTree
- Семейство ReplicatedMergeTree