> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-trino-dialect.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/index#mutations) と、その進行状況に関する情報が含まれています。各ミューテーションコマンドは 1 行で表されます。

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

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

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

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

<Note>
  `is_killed=1`であっても、ミューテーションが完全に完了したとは限りません。`is_killed=1`かつ`is_done=0`の状態が長期間続く場合があります。これは、別の長時間実行中のミューテーションによって、停止されたミューテーションがブロックされている場合に発生することがあります。これは正常な状態です。
</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)) — 直近の パーツ ミューテーション が失敗した日時。
* `latest_fail_reason` ([String](/ja/reference/data-types/string)) — 直近の パーツ ミューテーション が失敗した原因となった例外メッセージ。

<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/index#mutations)
* [MergeTree](/ja/reference/engines/table-engines/mergetree-family/mergetree) テーブルエンジン
* [ReplicatedMergeTree](/ja/reference/engines/table-engines/mergetree-family/replication) ファミリー
