skip_unavailable_shards_mode パラメータによって制御されます。
設定可能な値:
- 1 — スキップが有効です。 分片が使用不可の場合、ClickHouse は部分的なデータに基づく結果を返し、ノードの可用性の問題は報告しません。
- 0 — スキップが無効です。 分片が使用不可の場合、ClickHouse は例外をスローします。
skip_unavailable_shards が有効なときに、リモート分片からのどの例外をサイレントに無視するかを制御します。skip_unavailable_shards = 0 の場合、この設定は効果を持ちません。
設定可能な値:
-
unavailable— 接続関連のエラーのみを無視します。ClickHouse がそのいずれのレプリカにも接続できない場合、またはレプリカのホスト名を DNS で解決できない場合、その分片は使用不可と見なされます。 -
unavailable_or_table_missing—unavailableに加えて、分片上のテーブルまたはデータベースが存在しないことによって発生するエラーも無視します。これは、クラスター全体でテーブルを作成または削除している間に役立ちます。これは既定値であり、テーブルが存在しない分片も使用不可として扱っていたskip_unavailable_shardsの従来の動作と一致します。 -
unavailable_or_exception_before_processing—unavailableに加えて、分片がイニシエーターにデータブロックを 1 つも返す前に受信したあらゆる例外を無視します。分片がすでに何らかのデータを返した後に到着した例外は、常に再スローされます。なお、「データを返す前」かどうかの判定はイニシエーター側で行われます。分片がブロッキング計算 (たとえば集約、ソート、またはLIMIT BY) を実行する場合、ブロックを 1 つも出力する前に行を処理して失敗することがあり、その場合はその部分的な処理結果はサイレントに破棄され、クエリは残りの分片から構築された結果を返します。そのため、これは最も許容範囲の広いモードであり、注意して使用する必要があります。