system.mutations
このテーブルは、変異の情報を含んでおり、MergeTreeテーブルの進捗を示します。各変異コマンドは1つの行で表されます。
カラム:
-
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) — 最も最近のパートの変異失敗を引き起こした例外メッセージ。
変異の監視
system.mutationsテーブルの進捗を追跡するには、次のようなクエリを使用します - これにはsystem.*テーブルに対する読み取り権限が必要です:
table='tmp'
のtmp
を、変異を確認しているテーブルの名前に置き換えてください。
関連情報
- 変異
- MergeTree テーブルエンジン
- ReplicatedMergeTree ファミリー