Skip to main content

説明

このテーブルには、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レコードが格納され、ミューテーションが取得したblock番号が記録されます。そのパーティション内でミューテーションされるのは、この番号より小さい番号のblockを含むパーツのみです。非レプリケートテーブルでは、すべてのパーティションのblock番号が単一の数列を構成します。したがって、非レプリケートテーブルのミューテーションでは、このカラムにミューテーションが取得した単一のblock番号を持つ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)) — パーツ名と処理延期の理由のmap。
  • 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) — 直近のパーツミューテーション失敗の原因となった例外のerror code。
  • パーツ名がparts_postpone_reasonsに含まれず、まだミューテーションされていない場合、そのパーツはまだミューテーション対象としてスケジュールされていません。
  • パーツ名all_partsは、まだミューテーションされていないすべてのパーツを表します。
  • 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.* テーブルへの読み取り権限が必要です。
Cloud での使用ClickHouse Cloud では、各ノードの system.mutations テーブルにクラスター内のすべての ミューテーション が含まれているため、clusterAllReplicas は不要です。

関連項目

最終更新日 2026年8月14日