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
の状態が長時間続くことがあります。これは、別の長時間実行中のミューテーションが殺されたミューテーションをブロックしている場合に発生します。これは通常の状況です。