KILL 文
There are two kinds of kill statements: to kill a query and to kill a mutation
KILL QUERY
現在実行中のクエリを強制終了しようとします。
終了するクエリは、KILL クエリの WHERE 句で定義された基準を使用して、system.processes テーブルから選択されます。
例:
最初に、不完全なクエリのリストを取得する必要があります。この SQL クエリは、最も長く実行されているものに基づいて提供されます:
単一の ClickHouse ノードからのリスト:
ClickHouse クラスターからのリスト:
クエリを終了する:
ClickHouse Cloud またはセルフマネージドクラスタでクエリを終了する場合は、``` ON CLUSTER [cluster-name]
読み取り専用ユーザーは、自分のクエリのみを停止できます。
デフォルトでは、確認を待たない非同期バージョンのクエリが使用されます(ASYNC)。
同期バージョン(SYNC)は、すべてのクエリが停止するのを待ち、各プロセスが停止する際の情報を表示します。
レスポンスには、次の値を取ることができるkill_statusカラムが含まれています:
finished– クエリが正常に終了しました。waiting– 終了信号を送信した後、クエリの終了を待機しています。- 他の値は、クエリを停止できない理由を説明します。
テストクエリ(TEST)は、ユーザーの権限をチェックするだけで、停止するクエリのリストを表示します。
KILL MUTATION
長時間実行されているか不完全なミューテーションの存在は、ClickHouse サービスが適切に動作していないことを示すことがよくあります。ミューテーションの非同期性は、システム上のすべての利用可能なリソースを消費する可能性があります。次のいずれかを行う必要があります:
- すべての新しいミューテーション、
INSERT、およびSELECTを一時停止し、ミューテーションのキューが完了するのを待ちます。 - または、
KILLコマンドを送信して、これらのミューテーションのいくつかを手動で終了します。
現在実行中のミューテーションをキャンセルして削除しようとします。キャンセルするミューテーションは、KILL クエリの WHERE 句で指定されたフィルタを使用して、system.mutations テーブルから選択されます。
テストクエリ(TEST)は、ユーザーの権限を確認するだけで、停止するミューテーションのリストを表示します。
例:
不完全なミューテーションの数を取得する count():
単一の ClickHouse ノードからのミューテーションの数:
レプリカの ClickHouse クラスターからのミューテーションの数:
不完全なミューテーションのリストをクエリします:
単一の ClickHouse ノードからのミューテーションのリスト:
ClickHouse クラスターからのミューテーションのリスト:
必要に応じてミューテーションを終了します:
ミューテーションがスタックしていて完了できない場合に役立つクエリです(例えば、ミューテーションクエリ内の関数がテーブルに含まれるデータに適用されたときに例外をスローする場合など)。
ミューテーションによって既に行われた変更は元に戻されません。
is_killed=1 カラム(ClickHouse Cloud のみ)は、system.mutations テーブルにおいて、ミューテーションが完全に終了したことを必ずしも意味しません。is_killed=1 で、is_done=0 の状態が長時間続くことがあります。これは、別の長時間実行中のミューテーションが殺されたミューテーションをブロックしている場合に発生します。これは通常の状況です。