概要
SELECT クエリにのみ適用され、分散
クエリ処理では、各サーバーに個別に適用されます。
ClickHouse では通常、各行ごとに制限を確認するのではなく、データパーツが
完全に処理された後でのみ制限を確認します。このため、
パーツの処理中に制限を超過してしまう
可能性があります。
overflow_mode 設定
overflow_mode 設定もあり、制限を超えたときにどうなるかを定義します。指定できる値は次の 2 つです:
throw: 例外をスローします (デフォルト) 。break: クエリの実行を停止し、部分的な結果を返します。これは、 入力データが尽きた場合と同じです。
break を指定した max_execution_time によってクエリが停止された場合、一部の操作では
部分的な結果を安全に返すことができないため、より少ない結果を返す代わりに、結果を生成せずに停止します。単一の値を
計算する関数は、その値を生成せずに停止します。停止が TIMEOUT_EXCEEDED エラーとしても
client に到達するか、結果が欠落するだけかは、クエリが中断された場所によって異なります。タイムアウトによって未完了のままとなった Memory テーブルのミューテーションではテーブルは変更されず、
TIMEOUT_EXCEEDED が報告されます。INSERT では QUERY_WAS_CANCELLED が報告される場合があります。他の
レプリカまたはバックグラウンド作業を待機する一部の操作は、そもそも max_execution_time で停止しません。クォーラム
書き込みはクォーラムが満たされるまで待機を続けるか、先に
insert_quorum_timeout が経過した場合は UNKNOWN_STATUS_OF_INSERT を報告します。
group_by_overflow_mode の設定
group_by_overflow_mode 設定には、
値 any もあります。
any: セットに入ったキーについては集約を継続しますが、 セットに新しいキーは追加しません。
設定一覧
「何らかの最大量」に対する制限には、
0 を指定できます。
これは「無制限」を意味します。廃止された設定
以下の設定は廃止されています。