system.mutations
このテーブルは、mutations の情報を含んでおり、MergeTree テーブルの進捗を示します。各ミューテーションコマンドは単一の行で表されています。
Columns:
-
database
(String) — ミューテーションが適用されたデータベースの名前。 -
table
(String) — ミューテーションが適用されたテーブルの名前。 -
mutation_id
(String) — ミューテーションのID。レプリケーションされたテーブルでは、これらのIDは ClickHouse Keeper の<table_path_in_clickhouse_keeper>/mutations/
ディレクトリ内の znode 名に対応します。非レプリケーションテーブルでは、これらのIDはテーブルのデータディレクトリ内のファイル名に対応します。 -
command
(String) — ミューテーションコマンドの文字列(ALTER TABLE [db.]table
の後のクエリの部分)。 -
create_time
(DateTime) — ミューテーションコマンドが実行のために提出された日時。 -
block_numbers.partition_id
(Array(String)) — レプリケーションテーブルのミューテーションについて、配列にはパーティションのIDが含まれています(各パーティションごとに1レコード)。非レプリケーションテーブルのミューテーションについては、配列は空です。 -
block_numbers.number
(Array(Int64)) — レプリケーションテーブルのミューテーションについて、配列には各パーティションごとに1レコードが含まれ、ミューテーションによって取得されたブロック番号が示されます。この番号未満のブロックを含むパーツのみが、パーティション内でミューテートされます。非レプリケーションテーブルでは、すべてのパーティションのブロック番号が単一のシーケンスを形成します。これは、非レプリケーションテーブルのミューテーションの場合、カラムがミューテーションによって取得された単一のブロック番号を持つ1レコードを含むことを意味します。
-
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.* テーブルに対する読み取り権限を必要とします:
table='tmp'
の tmp
を、ミューテーションをチェックしているテーブルの名前に置き換えてください。
See Also
- Mutations
- MergeTree テーブルエンジン
- ReplicatedMergeTree ファミリー