> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> MergeTree テーブルのミューテーションとその進行状況に関する情報を含むシステムテーブルです。各ミューテーションコマンドは 1 行として表されます。

# system.mutations

<div id="description">
  ## 説明
</div>

このテーブルには、[MergeTree](/ja/reference/engines/table-engines/mergetree-family/mergetree) テーブルの [ミューテーション](/ja/reference/statements/alter#mutations) と、その進行状況に関する情報が含まれています。各ミューテーションコマンドは 1 行で表されます。

<div id="columns">
  ## カラム:
</div>

* `database` ([String](/ja/reference/data-types)) — ミューテーションが適用されたデータベース名。
* `table` ([String](/ja/reference/data-types)) — ミューテーションが適用されたテーブル名。
* `mutation_id` ([String](/ja/reference/data-types)) — ミューテーションの ID。レプリケートテーブルでは、これらの ID は ClickHouse Keeper の `<table_path_in_clickhouse_keeper>/mutations/` ディレクトリ内の znode 名に対応します。非レプリケートテーブルでは、ID はテーブルのデータディレクトリ内のファイル名に対応します。
* `command` ([String](/ja/reference/data-types)) — ミューテーションのコマンド文字列 (クエリの `ALTER TABLE [db.]table` より後の部分) 。
* `create_time` ([DateTime](/ja/reference/data-types)) — ミューテーションコマンドが実行のために送信された日時。
* `block_numbers.partition_id` ([Array(String)](/ja/reference/data-types)) — レプリケートテーブルのミューテーションでは、この配列にパーティションの ID が含まれます (各パーティションにつき 1 レコード) 。非レプリケートテーブルのミューテーションでは、この配列は空です。
* `block_numbers.number` ([Array(Int64)](/ja/reference/data-types)) — レプリケートテーブルのミューテーションでは、この配列には各パーティションにつき 1 レコードが含まれ、そのミューテーションで取得されたブロック番号が格納されます。各パーティションでは、この番号より小さい番号のブロックを含むパーツだけがミューテーションの対象になります。非レプリケートテーブルでは、すべてのパーティションのブロック番号は単一のシーケンスを形成します。つまり、非レプリケートテーブルのミューテーションでは、このカラムには、そのミューテーションで取得された単一のブロック番号を持つ 1 レコードが含まれます。
* `parts_in_progress_names` ([Array(String)](/ja/reference/data-types)) — 現在ミューテーション中のデータパーツ名の配列。
* `parts_to_do_names` ([Array(String)](/ja/reference/data-types)) — ミューテーション完了のために処理が必要なデータパーツ名の配列。
* `parts_to_do` ([Int64](/ja/reference/data-types)) — ミューテーション完了のために処理が必要なデータパーツ数。注: `parts_to_do` = 0 であっても、新しいデータパーツを作成する長時間実行中の INSERT により、そのデータパーツにもミューテーションが必要になるため、レプリケートテーブルのミューテーションがまだ完了していない場合があります。
* `parts_postpone_reasons` ([Map(String, String)](/ja/reference/data-types)) — part 名と、それぞれが保留されている理由のマップ。
* `is_done` ([UInt8](/ja/reference/data-types)) — ミューテーションが完了しているかどうかを示すフラグ。設定可能な値: ミューテーションが完了している場合は 1、まだ処理中の場合は 0。
* `is_killed` ([UInt8](/ja/reference/data-types)) — ミューテーションが kill されたかどうかを示します。ClickHouse Cloud でのみ利用可能です。注: is\_killed=1 は、ミューテーションが完全に終了したことを必ずしも意味しません。is\_killed=1 かつ is\_done=0 の状態のまま、ミューテーションが長時間残ることがあります。これは、別の長時間実行中のミューテーションが、kill されたミューテーションをブロックしている場合に発生することがあります。これは正常な状態です。
* `latest_failed_part` ([String](/ja/reference/data-types)) — 直近でミューテーションに失敗したパーツ名。
* `latest_fail_time` ([DateTime](/ja/reference/data-types)) — 直近のパートミューテーション失敗日時。
* `latest_fail_reason` ([String](/ja/reference/data-types)) — 直近のパートミューテーション失敗の原因となった例外メッセージ。
* `latest_fail_error_code_name` ([String](/ja/reference/data-types)) — 直近のパートミューテーション失敗の原因となった例外のエラーコード。

<Note>
  - パーツ名が `parts_postpone_reasons` に含まれておらず、まだミューテーションされていない場合、そのパーツはまだミューテーション対象としてスケジュールされていないことを意味します。
  - パーツ名 `all_parts` は、まだミューテーションされていないすべてのパーツを表します。
</Note>

* `is_killed` ([UInt8](/ja/reference/data-types/int-uint)) — ミューテーションが kill されたかどうかを示します。**ClickHouse Cloud でのみ利用できます。**

<Note>
  `is_killed=1` であっても、必ずしもミューテーションが完全に終了していることを意味するわけではありません。`is_killed=1` かつ `is_done=0` の状態が長時間続くことがあります。これは、別の長時間実行中のミューテーションが、kill されたミューテーションをブロックしている場合に発生します。これは正常な状態です。
</Note>

* `is_done` ([UInt8](/ja/reference/data-types/int-uint)) — ミューテーションが完了しているかどうかを示すフラグです。設定可能な値:
  * ミューテーションが完了している場合は `1`
  * ミューテーションがまだ進行中の場合は `0`

<Note>
  `parts_to_do = 0` であっても、長時間実行される `INSERT` クエリによって、ミューテーション の対象となる新しい データパーツ が作成されるため、レプリケートテーブルの ミューテーション がまだ完了していない可能性があります。
</Note>

一部の データパーツ の ミューテーション で問題が発生した場合、次のカラムに追加情報が含まれます。

* `latest_failed_part` ([String](/ja/reference/data-types/string)) — ミューテーション できなかった直近のパーツ名。
* `latest_fail_time` ([DateTime](/ja/reference/data-types/datetime)) — 直近の part ミューテーション が失敗した日時。
* `latest_fail_reason` ([String](/ja/reference/data-types/string)) — 直近の part ミューテーション が失敗した原因となった例外メッセージ。

<div id="monitoring-mutations">
  ## ミューテーションの監視
</div>

`system.mutations`テーブルで進行状況を確認するには、次のクエリを使用します。

```sql theme={null}
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.*` テーブルへの読み取り権限が必要です。

<Tip>
  **Cloud での使用**

  ClickHouse Cloud では、各ノードの `system.mutations` テーブルにクラスター内のすべての ミューテーション が含まれているため、`clusterAllReplicas` は不要です。
</Tip>

<div id="see-also">
  ## 関連項目
</div>

* [ミューテーション](/ja/reference/statements/alter#mutations)
* [MergeTree](/ja/reference/engines/table-engines/mergetree-family/mergetree) テーブルエンジン
* [ReplicatedMergeTree](/ja/reference/engines/table-engines/mergetree-family/replication) ファミリー
