説明
カラム:
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_in_progress_names(Array(String)) — 現在ミューテーション中のデータパーツ名の配列。parts_to_do_names(Array(String)) — ミューテーション完了のために処理が必要なデータパーツ名の配列。parts_to_do(Int64) — ミューテーション完了のために処理が必要なデータパーツ数。注:parts_to_do= 0 であっても、新しいデータパーツを作成する長時間実行中の INSERT により、そのデータパーツにもミューテーションが必要になるため、レプリケートテーブルのミューテーションがまだ完了していない場合があります。parts_postpone_reasons(Map(String, String)) — part 名と、それぞれが保留されている理由のマップ。is_done(UInt8) — ミューテーションが完了しているかどうかを示すフラグ。設定可能な値: ミューテーションが完了している場合は 1、まだ処理中の場合は 0。is_killed(UInt8) — ミューテーションが kill されたかどうかを示します。ClickHouse Cloud でのみ利用可能です。注: is_killed=1 は、ミューテーションが完全に終了したことを必ずしも意味しません。is_killed=1 かつ is_done=0 の状態のまま、ミューテーションが長時間残ることがあります。これは、別の長時間実行中のミューテーションが、kill されたミューテーションをブロックしている場合に発生することがあります。これは正常な状態です。latest_failed_part(String) — 直近でミューテーションに失敗したパーツ名。latest_fail_time(DateTime) — 直近のパートミューテーション失敗日時。latest_fail_reason(String) — 直近のパートミューテーション失敗の原因となった例外メッセージ。latest_fail_error_code_name(String) — 直近のパートミューテーション失敗の原因となった例外のエラーコード。
- パーツ名が
parts_postpone_reasonsに含まれておらず、まだミューテーションされていない場合、そのパーツはまだミューテーション対象としてスケジュールされていないことを意味します。 - パーツ名
all_partsは、まだミューテーションされていないすべてのパーツを表します。
is_killed(UInt8) — ミューテーションが kill されたかどうかを示します。ClickHouse Cloud でのみ利用できます。
is_killed=1 であっても、必ずしもミューテーションが完全に終了していることを意味するわけではありません。is_killed=1 かつ is_done=0 の状態が長時間続くことがあります。これは、別の長時間実行中のミューテーションが、kill されたミューテーションをブロックしている場合に発生します。これは正常な状態です。is_done(UInt8) — ミューテーションが完了しているかどうかを示すフラグです。設定可能な値:- ミューテーションが完了している場合は
1 - ミューテーションがまだ進行中の場合は
0
- ミューテーションが完了している場合は
parts_to_do = 0 であっても、長時間実行される INSERT クエリによって、ミューテーション の対象となる新しい データパーツ が作成されるため、レプリケートテーブルの ミューテーション がまだ完了していない可能性があります。latest_failed_part(String) — ミューテーション できなかった直近のパーツ名。latest_fail_time(DateTime) — 直近の part ミューテーション が失敗した日時。latest_fail_reason(String) — 直近の part ミューテーション が失敗した原因となった例外メッセージ。
ミューテーションの監視
system.mutationsテーブルで進行状況を確認するには、次のクエリを使用します。
system.* テーブルへの読み取り権限が必要です。
関連項目
- ミューテーション
- MergeTree テーブルエンジン
- ReplicatedMergeTree ファミリー