これらの設定は system.settings で確認でき、ソースコード から自動生成されています。
distributed_aggregation_memory_efficient
分散集約の省メモリモードが有効かどうかを示します。
distributed_connections_pool_size
単一の分散テーブルに対するすべてのクエリの分散処理で使用される、リモートサーバーへの同時接続の最大数です。値は、クラスター内のサーバー数以上に設定することを推奨します。
distributed_foreground_insert
別名: insert_distributed_sync
分散テーブルへのデータの同期挿入を有効または無効にします。
デフォルトでは、分散テーブルにデータを挿入すると、ClickHouse サーバーはバックグラウンドモードでクラスター内のノードにデータを送信します。distributed_foreground_insert=1 の場合、データは同期的に処理され、INSERT 操作が成功するのは、すべてのデータがすべての分片に保存された後のみです (internal_replication が true の場合は、各分片で少なくとも 1 つのレプリカ) 。
設定可能な値:
0— データはバックグラウンドモードで挿入されます。1— データは同期モードで挿入されます。
Cloud でのデフォルト値: 1.
関連項目
distributed_group_by_no_merge
分散クエリ処理で、異なるサーバーからの集約状態をマージしません。異なる分片に異なるキーがあることが確実な場合に使用できます
設定可能な値:
0— 無効 (最終的なクエリ処理はイニシエーター ノードで実行されます) 。1- 分散クエリ処理で、異なるサーバーからの集約状態をマージしません (クエリは分片上で完全に処理され、イニシエーターはデータをプロキシするだけです) 。異なる分片に異なるキーがあることが確実な場合に使用できます。2-1と同じですが、ORDER BYとLIMITをイニシエーターで適用します (distributed_group_by_no_merge=1のようにクエリがリモート ノード上で完全に処理される場合は適用できません) (ORDER BYやLIMITを含むクエリで使用できます) 。
例
SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 1
FORMAT PrettyCompactMonoBlock
┌SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 2
FORMAT PrettyCompactMonoBlock
┌distributed_insert_skip_read_only_replicas
バージョン履歴
| バージョン | デフォルト値 | コメント |
|---|---|---|
| 24.3 | 0 | true の場合、Distributed への INSERT 時に読み取り専用レプリカをスキップします |
Distributed への INSERT クエリで、読み取り専用レプリカをスキップする機能を有効にします。
設定可能な値:
- 0 — INSERT は通常どおり実行され、読み取り専用レプリカに送られた場合は失敗します
- 1 — イニシエーターは、データを分片に送信する前に読み取り専用レプリカをスキップします。
distributed_product_mode
分散サブクエリの動作を変更します。
ClickHouse は、クエリに分散テーブルの直積が含まれている場合、つまり分散テーブルに対するクエリに、その分散テーブルに対する非 GLOBAL のサブクエリが含まれている場合に、この設定を適用します。
制限事項:
- IN および JOIN サブクエリにのみ適用されます。
- FROM 句で、複数の分片を含む分散テーブルが使用されている場合に限ります。
- サブクエリの対象が、複数の分片を含む分散テーブルである場合に限ります。
- テーブル値 remote 関数には使用されません。
設定可能な値:
deny— デフォルト値。これらの種類のサブクエリの使用を禁止します ("Double-distributed in/JOIN subqueries is denied" 例外を返します) 。local— サブクエリ内のデータベースとテーブルを、宛先サーバー (分片) のローカルなものに置き換え、通常のIN/JOINはそのままにします。global—IN/JOINクエリをGLOBAL IN/GLOBAL JOINに置き換えます。allow— これらの種類のサブクエリの使用を許可します。
distributed_push_down_limit
各分片ごとに LIMIT を個別に適用するかどうかを有効または無効にします。
これにより、次のことを回避できます。
- 余分な行をネットワーク経由で送信すること。
- イニシエーターで LIMIT を超える行を処理すること。
バージョン 21.9 以降では、distributed_push_down_limit は少なくとも 1 つの条件が満たされる場合にのみクエリ実行を変更するため、結果が不正確になることはなくなりました。
- distributed_group_by_no_merge > 0。
- クエリに
GROUP BY/DISTINCT/LIMIT BYがなく、ORDER BY/LIMITがある。 - クエリに
GROUP BY/DISTINCT/LIMIT BYとORDER BY/LIMITがあり、かつ:- optimize_skip_unused_shards が有効になっている。
- optimize_distributed_group_by_sharding_key が有効になっている。
設定可能な値:
- 0 — 無効。
- 1 — 有効。
関連項目: