メインコンテンツへスキップ
KILLステートメントには 2 種類あります。クエリを停止するものと、ミューテーション を停止するものです

KILL QUERY

現在実行中のクエリを強制終了しようとします。 終了対象のクエリは、KILL クエリの WHERE 句で定義された条件を使用して、system.processes テーブルから選択されます。 例: まず、未完了のクエリの一覧を取得する必要があります。この SQL クエリでは、実行時間が長い順に表示されます。 単一の ClickHouse ノードでの一覧:
ClickHouseクラスターの一覧:
クエリを強制終了します。
ClickHouse Cloud またはセルフマネージドのクラスターでクエリを停止する場合は、すべてのレプリカでクエリが停止されるよう、必ず ON CLUSTER [cluster-name] オプションを使用してください
読み取り専用ユーザーは、自分自身のクエリしか停止できません。 デフォルトでは、クエリの非同期バージョン (ASYNC) が使用され、クエリが停止したことの確認は待機しません。 同期バージョン (SYNC) は、すべてのクエリが停止するまで待機し、各プロセスの停止時にその情報を表示します。 レスポンスには kill_status カラムが含まれ、このカラムは次の値を取ります。
  1. finished – クエリは正常に停止されました。
  2. waiting – クエリに停止シグナルを送信した後、その終了を待機しています。
  3. その他の値は、クエリを停止できない理由を示します。
テストクエリ (TEST) は、ユーザーの権限を確認し、停止対象のクエリの一覧を表示するだけです。

KILL MUTATION

長時間実行されている、または完了していない ミューテーション がある場合、ClickHouseサービスの動作状態が悪化している可能性があります。ミューテーション は非同期で実行されるため、システム上の利用可能なリソースをすべて消費してしまうことがあります。必要に応じて、次のいずれかを行ってください。
  • 新しい ミューテーション、INSERTSELECT をすべて一時停止し、ミューテーション の queue が処理を完了するまで待ちます。
  • または、KILL コマンドを送信して、これらの ミューテーション の一部を手動で停止します。
現在実行中のミューテーションのキャンセルと削除を試みます。キャンセルするミューテーションは、KILL クエリの WHERE 句で指定したフィルタを使用して system.mutations テーブルから選択されます。 テストクエリ (TEST) は、ユーザーの権限を確認し、停止対象のミューテーションの一覧を表示するだけです。 例: 未完了のミューテーション数の count() を取得します: 単一の ClickHouse ノードにおけるミューテーション数:
ClickHouseレプリカクラスターのミューテーション数:
未完了のミューテーションの一覧をクエリします: 単一のClickHouseノードのミューテーション一覧:
ClickHouse クラスター内のミューテーション一覧:
必要に応じてミューテーションを終了します:
このクエリは、ミューテーションが停止して完了できなくなった場合に有用です (たとえば、ミューテーションのクエリ内の関数が、テーブル内のデータに適用された際に例外をスローする場合) 。 ミューテーションによってすでに行われた変更はロールバックされません。
system.mutations テーブルの is_killed=1 カラム (ClickHouse Cloud のみ) は、必ずしもそのミューテーションが完全に終了したことを意味するわけではありません。ミューテーションが is_killed=1 かつ is_done=0 の状態のまま、長時間残ることがあります。これは、別の長時間実行中のミューテーションが、kill されたミューテーションをブロックしている場合に発生する可能性があります。これは正常な状態です。
最終更新日 2026年7月2日