Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

distributed_* セッション設定

これらの設定は system.settings で確認でき、ソースコード から自動生成されています。

distributed_aggregation_memory_efficient

Bool
デフォルト値
1

分散集約の省メモリモードが有効かどうかを示します。

distributed_connections_pool_size

UInt64
デフォルト値
1024

単一の分散テーブルに対するすべてのクエリの分散処理で使用される、リモートサーバーへの同時接続の最大数です。値は、クラスター内のサーバー数以上に設定することを推奨します。

distributed_foreground_insert

別名: insert_distributed_sync

Bool
デフォルト値
0

分散テーブルへのデータの同期挿入を有効または無効にします。

デフォルトでは、分散テーブルにデータを挿入すると、ClickHouse サーバーはバックグラウンドモードでクラスター内のノードにデータを送信します。distributed_foreground_insert=1 の場合、データは同期的に処理され、INSERT 操作が成功するのは、すべてのデータがすべての分片に保存された後のみです (internal_replication が true の場合は、各分片で少なくとも 1 つのレプリカ) 。

設定可能な値:

  • 0 — データはバックグラウンドモードで挿入されます。
  • 1 — データは同期モードで挿入されます。

Cloud でのデフォルト値: 1.

関連項目

distributed_group_by_no_merge

UInt64
デフォルト値
0

分散クエリ処理で、異なるサーバーからの集約状態をマージしません。異なる分片に異なるキーがあることが確実な場合に使用できます

設定可能な値:

  • 0 — 無効 (最終的なクエリ処理はイニシエーター ノードで実行されます) 。
  • 1 - 分散クエリ処理で、異なるサーバーからの集約状態をマージしません (クエリは分片上で完全に処理され、イニシエーターはデータをプロキシするだけです) 。異なる分片に異なるキーがあることが確実な場合に使用できます。
  • 2 - 1 と同じですが、ORDER BYLIMIT をイニシエーターで適用します (distributed_group_by_no_merge=1 のようにクエリがリモート ノード上で完全に処理される場合は適用できません) (ORDER BYLIMIT を含むクエリで使用できます) 。

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

Bool
デフォルト値
0
バージョン履歴
バージョンデフォルト値コメント
24.30true の場合、Distributed への INSERT 時に読み取り専用レプリカをスキップします

Distributed への INSERT クエリで、読み取り専用レプリカをスキップする機能を有効にします。

設定可能な値:

  • 0 — INSERT は通常どおり実行され、読み取り専用レプリカに送られた場合は失敗します
  • 1 — イニシエーターは、データを分片に送信する前に読み取り専用レプリカをスキップします。

distributed_product_mode

DistributedProductMode
デフォルト値
deny

分散サブクエリの動作を変更します。

ClickHouse は、クエリに分散テーブルの直積が含まれている場合、つまり分散テーブルに対するクエリに、その分散テーブルに対する非 GLOBAL のサブクエリが含まれている場合に、この設定を適用します。

制限事項:

  • IN および JOIN サブクエリにのみ適用されます。
  • FROM 句で、複数の分片を含む分散テーブルが使用されている場合に限ります。
  • サブクエリの対象が、複数の分片を含む分散テーブルである場合に限ります。
  • テーブル値 remote 関数には使用されません。

設定可能な値:

  • deny — デフォルト値。これらの種類のサブクエリの使用を禁止します ("Double-distributed in/JOIN subqueries is denied" 例外を返します) 。
  • local — サブクエリ内のデータベースとテーブルを、宛先サーバー (分片) のローカルなものに置き換え、通常の IN/JOIN はそのままにします。
  • globalIN/JOIN クエリを GLOBAL IN/GLOBAL JOIN に置き換えます。
  • allow — これらの種類のサブクエリの使用を許可します。

distributed_push_down_limit

UInt64
デフォルト値
1

各分片ごとに LIMIT を個別に適用するかどうかを有効または無効にします。

これにより、次のことを回避できます。

  • 余分な行をネットワーク経由で送信すること。
  • イニシエーターで LIMIT を超える行を処理すること。

バージョン 21.9 以降では、distributed_push_down_limit は少なくとも 1 つの条件が満たされる場合にのみクエリ実行を変更するため、結果が不正確になることはなくなりました。

設定可能な値:

  • 0 — 無効。
  • 1 — 有効。

関連項目:

Navigation