> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

# system.mutations

## Описание

Таблица содержит информацию о [Мутациях](/ru/reference/statements/alter/index#mutations) таблиц [MergeTree](/ru/reference/engines/table-engines/mergetree-family/mergetree) и ходе их выполнения. Каждой команде мутации соответствует одна строка.

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

Чтобы отслеживать ход выполнения в таблице `system.mutations`, используйте следующий запрос:

```sql theme={null}
SELECT * FROM clusterAllReplicas('cluster_name', 'system', 'mutations')
WHERE is_done = 0 AND table = 'tmp';

-- or

SELECT * FROM clusterAllReplicas('cluster_name', 'system.mutations')
WHERE is_done = 0 AND table = 'tmp';
```

Примечание: для этого требуются разрешения на чтение таблиц `system.*`.

**Использование в Cloud**

В ClickHouse Cloud таблица `system.mutations` на каждом узле содержит все мутации кластера, поэтому `clusterAllReplicas` не требуется.

## Столбцы

* `database` ([String](/ru/reference/data-types/string)) — Имя базы данных, к которой была применена мутация.

* `table` ([String](/ru/reference/data-types/string)) — Имя таблицы, к которой была применена мутация.

* `mutation_id` ([String](/ru/reference/data-types/string)) — ID мутации. Для реплицируемых таблиц эти ID соответствуют именам znode в каталоге `<table_path_in_clickhouse_keeper>/mutations/` в ClickHouse Keeper. Для нереплицируемых таблиц ID соответствуют именам файлов в каталоге данных таблицы.

* `command` ([String](/ru/reference/data-types/string)) — Строка команды мутации (часть запроса после ALTER TABLE \[db.]table).

* `create_time` ([DateTime](/ru/reference/data-types/datetime)) — Дата и время отправки команды мутации на выполнение.

* `finish_time` ([DateTime](/ru/reference/data-types/datetime)) — Дата и время завершения мутации. Ноль, если мутация ещё не завершена или время её завершения неизвестно. Для нереплицируемых таблиц значение отслеживается в памяти и сбрасывается при перезагрузке таблицы (например, при перезапуске сервера). Для реплицируемых таблиц значение задаётся для каждой реплики; после перезапуска время завершения последней завершённой мутации восстанавливается из Keeper, а для более ранних завершённых мутаций указывается ноль.

* `block_numbers.partition_id` ([Array(String)](/ru/reference/data-types/array)) — Для мутаций реплицируемых таблиц массив содержит ID партиций' (по одной записи для каждой партиции). Для мутаций нереплицируемых таблиц массив пуст.

* `block_numbers.number` ([Array(Int64)](/ru/reference/data-types/array)) — Для мутаций реплицируемых таблиц массив содержит по одной записи для каждой партиции с номером блока, полученным мутацией. В партиции будут мутированы только части, содержащие блоки с номерами меньше этого номера. В нереплицируемых таблицах номера блоков во всех партициях образуют единую последовательность. Это означает, что для мутаций нереплицируемых таблиц столбец будет содержать одну запись с единственным номером блока, полученным мутацией.

* `parts_in_progress_names` ([Array(String)](/ru/reference/data-types/array)) — Массив имен частей данных, которые в настоящее время мутируются.

* `parts_to_do_names` ([Array(String)](/ru/reference/data-types/array)) — Массив имен частей данных, которые необходимо мутировать для завершения мутации.

* `parts_to_do` ([Int64](/ru/reference/data-types/int-uint)) — Количество частей данных, которые необходимо мутировать для завершения мутации. Примечание: даже если `parts_to_do` = 0, мутация реплицируемой таблицы может еще не завершиться из-за длительно выполняющейся операции INSERT, создающей новую часть данных, которую потребуется мутировать.

* `parts_postpone_reasons` ([Map(String, String)](/ru/reference/data-types/map)) — Карта имен частей и причин, по которым их обработка отложена.

* `is_done` ([UInt8](/ru/reference/data-types/int-uint)) — Флаг, указывающий, завершена ли мутация. Возможные значения: 1, если мутация завершена, 0, если мутация все еще выполняется.

* `is_killed` ([UInt8](/ru/reference/data-types/int-uint)) — Указывает, была ли мутация принудительно завершена. Доступно только в ClickHouse Cloud. Примечание: is\_killed=1 не обязательно означает, что обработка мутации полностью завершена. Мутация может длительное время оставаться в состоянии, при котором is\_killed=1 и is\_done=0. Это может произойти, если другая длительно выполняющаяся мутация блокирует принудительно завершенную мутацию. Это нормальная ситуация.

* `latest_failed_part` ([String](/ru/reference/data-types/string)) — Имя последней части, которую не удалось мутировать.

* `latest_fail_time` ([DateTime](/ru/reference/data-types/datetime)) — Дата и время последнего сбоя мутации части.

* `latest_fail_reason` ([String](/ru/reference/data-types/string)) — Сообщение об исключении, вызвавшем последний сбой мутации части.

* `latest_fail_error_code_name` ([String](/ru/reference/data-types/string)) — Код ошибки исключения, вызвавшего последний сбой мутации части.

* Если имя части отсутствует в `parts_postpone_reasons` и она ещё не была мутирована, это означает, что часть ещё не запланирована для мутации.

* Имя части `all_parts` обозначает все части, которые ещё не были мутированы.

* `is_killed` ([UInt8](/ru/reference/data-types/int-uint)) — Указывает, была ли мутация принудительно завершена. **Доступно только в ClickHouse Cloud.**

`is_killed=1` не обязательно означает, что мутация полностью завершена. Мутация может в течение длительного времени оставаться в состоянии, при котором `is_killed=1` и `is_done=0`. Это может произойти, если другая длительно выполняющаяся мутация блокирует принудительно завершённую мутацию. Это нормальная ситуация.

* `is_done` ([UInt8](/ru/reference/data-types/int-uint)) — Флаг, указывающий, завершена ли мутация. Возможные значения:
  * `1`, если мутация завершена,
  * `0`, если мутация всё ещё выполняется.

Даже если `parts_to_do = 0`, мутация реплицируемой таблицы может быть ещё не завершена из-за длительно выполняющегося запроса `INSERT`, который создаст новую часть, к которой нужно будет применить мутацию.

Если при мутации некоторых частей возникли проблемы, следующие столбцы содержат дополнительную информацию:

* `latest_failed_part` ([String](/ru/reference/data-types/string)) — Имя последней части, для которой не удалось выполнить мутацию.
* `latest_fail_time` ([DateTime](/ru/reference/data-types/datetime)) — Дата и время последнего сбоя мутации части.
* `latest_fail_reason` ([String](/ru/reference/data-types/string)) — Сообщение об исключении, вызвавшем последний сбой мутации части.

## См. также

* [Мутации](/ru/reference/statements/alter/index#mutations)
* [MergeTree](/ru/reference/engines/table-engines/mergetree-family/mergetree) — движок таблицы
* семейство [ReplicatedMergeTree](/ru/reference/engines/table-engines/mergetree-family/replication)
