> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# parallel_replicas_* セッション設定

> parallel_replicas_* の生成グループに含まれる ClickHouse セッション設定。

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>型</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>デフォルト値</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          再起動せずに変更可能
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>ベータ</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                ベータ機能です。 
                <u>
                    <a href="/docs/docs/beta-and-experimental-features#beta-features">
                        詳しくはこちら。
                    </a>
                </u>
            </span>
        </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            実験的な機能です。 <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">詳細を見る。</a></u>
        </div>;
};

これらの設定は [system.settings](/docs/ja/reference/system-tables/settings) で確認でき、[ソースコード](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp) から自動生成されています。

<div id="parallel_replicas_allow_in_with_subquery">
  ## parallel\_replicas\_allow\_in\_with\_subquery
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "true の場合、IN のサブクエリは各フォロワー レプリカで実行されます"}]}]} />

true の場合、IN のサブクエリは各フォロワー レプリカで実行されます。

<div id="parallel_replicas_allow_materialized_views">
  ## parallel\_replicas\_allow\_materialized\_views
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "並列レプリカでのmaterialized viewの使用を許可する"}]}]} />

並列レプリカでのmaterialized viewの使用を許可します

<div id="parallel_replicas_allow_view_over_mergetree">
  ## parallel\_replicas\_allow\_view\_over\_mergetree
</div>

<BetaBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "新しい設定"}]}]} />

`MergeTree` テーブルに対する単純なビューで、並列レプリカがビューの内部クエリではなく外側のクエリを実行できるようにし、ノード間の並列化を向上させます。これは、すべての分岐が異なる `MergeTree` テーブルを読み取る `UNION ALL` ビューにも適用されます。

<div id="parallel_replicas_connect_timeout_ms">
  ## parallel\_replicas\_connect\_timeout\_ms
</div>

<SettingsInfoBlock type="Milliseconds" default_value="300" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "300"},{"label": "並列レプリカのクエリ用に個別の接続タイムアウトを設定"}]}]} />

並列レプリカでクエリ実行を行う際に、リモートレプリカへの接続に使用するタイムアウトをミリ秒単位で指定します。タイムアウトした場合、該当するレプリカはクエリ実行に使用されません

<div id="parallel_replicas_count">
  ## parallel\_replicas\_count
</div>

<BetaBadge />

<SettingsInfoBlock type="UInt64" default_value="0" />

これは内部設定であり、直接使用するものではなく、「並列レプリカ」モードの実装上の詳細を表します。この設定は、クエリ処理に参加する並列レプリカの数に合わせて、分散クエリのためにイニシエーターサーバーによって自動的に設定されます。

<div id="parallel_replicas_custom_key">
  ## parallel\_replicas\_custom\_key
</div>

<BetaBadge />

特定のテーブルに対して、レプリカ間で処理を分割するために使用できる任意の整数式です。
値には任意の整数式を指定できます。

主キーを使用した単純な式が推奨されます。

この設定を、単一の分片と複数のレプリカで構成されるクラスターで使用した場合、それらのレプリカは仮想分片に変換されます。
それ以外の場合は、`SAMPLE` キーと同様に動作し、各分片の複数のレプリカを使用します。

<div id="parallel_replicas_custom_key_range_lower">
  ## parallel\_replicas\_custom\_key\_range\_lower
</div>

<BetaBadge />

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "動的な分片で並列レプリカを使用する際の range フィルターを制御する設定を追加"}]}]} />

フィルタータイプ `range` が、カスタム範囲 `[parallel_replicas_custom_key_range_lower, INT_MAX]` に基づいて、レプリカ間で作業を均等に分割できるようにします。

[parallel\_replicas\_custom\_key\_range\_upper](/docs/ja/reference/settings/session-settings/parallel-replicas#parallel_replicas_custom_key_range_upper) と組み合わせて使用すると、範囲 `[parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]` に対して、フィルターがレプリカ間で作業を均等に分割できるようになります。

注: この設定によってクエリ処理中に追加のデータがフィルタリングされることはありません。代わりに、並列処理のために範囲フィルターが範囲 `[0, INT_MAX]` を分割する境界点が変更されます。

<div id="parallel_replicas_custom_key_range_upper">
  ## parallel\_replicas\_custom\_key\_range\_upper
</div>

<BetaBadge />

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "動的な分片で並列レプリカを使用する際の範囲フィルターを制御する設定を追加しました。値が 0 の場合、上限は無効になります"}]}]} />

フィルタータイプ `range` が、カスタム範囲 `[0, parallel_replicas_custom_key_range_upper]` に基づいて、レプリカ間で作業を均等に分割できるようにします。値が 0 の場合、上限は無効になり、カスタムキー式の最大値が設定されます。

[parallel\_replicas\_custom\_key\_range\_lower](/docs/ja/reference/settings/session-settings/parallel-replicas#parallel_replicas_custom_key_range_lower) と組み合わせて使用すると、範囲 `[parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]` に対して、フィルターがレプリカ間で作業を均等に分割できるようになります。

注: この設定によってクエリ処理中に追加のデータがフィルターされることはありません。代わりに、並列処理のために範囲フィルターが範囲 `[0, INT_MAX]` を分割する位置が変更されます

<div id="parallel_replicas_filter_pushdown">
  ## parallel\_replicas\_filter\_pushdown
</div>

<BetaBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "新しい設定"}]}]} />

並列レプリカが実行するよう選択するクエリの一部へのフィルタのプッシュダウンを許可します

<div id="parallel_replicas_for_cluster_engines">
  ## parallel\_replicas\_for\_cluster\_engines
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.3"},{"label": "1"},{"label": "新しい設定"}]}]} />

table function エンジンを、対応する -Cluster の代替に置き換えます

<div id="parallel_replicas_for_non_replicated_merge_tree">
  ## parallel\_replicas\_for\_non\_replicated\_merge\_tree
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

true の場合、ClickHouse はレプリケートされていない MergeTree テーブルに対しても並列レプリカアルゴリズムを使用します

<div id="parallel_replicas_index_analysis_only_on_coordinator">
  ## parallel\_replicas\_index\_analysis\_only\_on\_coordinator
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "1"},{"label": "索引解析は replica-coordinator でのみ実行され、他のレプリカではスキップされます。parallel_replicas_local_plan が有効な場合にのみ適用されます"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "索引解析は replica-coordinator でのみ実行され、他のレプリカではスキップされます。parallel_replicas_local_plan が有効な場合にのみ適用されます"}]}]} />

索引解析は replica-coordinator でのみ実行され、他のレプリカではスキップされます。parallel\_replicas\_local\_pla が有効な場合にのみ適用されます

<div id="parallel_replicas_insert_select_local_pipeline">
  ## parallel\_replicas\_insert\_select\_local\_pipeline
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "並列レプリカを使用する分散 INSERT SELECT でローカルパイプラインを使用します。現在はパフォーマンス上の問題により無効化されています"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "並列レプリカを使用する分散 INSERT SELECT でローカルパイプラインを使用します。現在はパフォーマンス上の問題により無効化されています"}]}]} />

並列レプリカを使用する分散 INSERT SELECT でローカルパイプラインを使用します

<div id="parallel_replicas_local_plan">
  ## parallel\_replicas\_local\_plan
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "並列レプリカを使用するクエリで、ローカルレプリカに対してローカルプランを使用する"}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "1"},{"label": "並列レプリカを使用するクエリで、ローカルレプリカに対してローカルプランを使用する"}]}, {"id": "row-3","items": [{"label": "24.10"},{"label": "1"},{"label": "並列レプリカを使用するクエリで、ローカルレプリカに対してローカルプランを使用する"}]}]} />

ローカルレプリカ向けにローカルプランを構築します

<div id="parallel_replicas_mark_segment_size">
  ## parallel\_replicas\_mark\_segment\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "この設定の値は自動的に自動決定されるようになりました"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "128"},{"label": "新しい並列レプリカコーディネーター実装でセグメントサイズを制御するための新しい設定を追加しました"}]}]} />

パーツは、並列読み取りのためにレプリカ間へ分配されるセグメントに仮想的に分割されます。この設定は、それらのセグメントのサイズを制御します。何をしているのかを十分に理解している場合を除き、変更は推奨されません。値は \[128; 16384] の範囲である必要があります。

<div id="parallel_replicas_min_number_of_rows_per_replica">
  ## parallel\_replicas\_min\_number\_of\_rows\_per\_replica
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

クエリで使用するレプリカ数を、 (読み取ると推定される行数 / min\_number\_of\_rows\_per\_replica) に制限します。なお、最大値は引き続き 'max\_parallel\_replicas' によって制限されます

<div id="parallel_replicas_mode">
  ## parallel\_replicas\_mode
</div>

<SettingsInfoBlock type="ParallelReplicasMode" default_value="read_tasks" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "read_tasks"},{"label": "この設定は、並列レプリカ機能をベータ化する一環として導入されました"}]}]} />

並列レプリカでカスタムキーとともに使用するフィルターの種類。default - カスタムキーに対して剰余演算を使用します。range - カスタムキーの値の型で取り得るすべての値を使って、カスタムキーに範囲フィルターを適用します。

<div id="parallel_replicas_only_with_analyzer">
  ## parallel\_replicas\_only\_with\_analyzer
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "並列レプリカは、アナライザが有効な場合にのみサポートされます"}]}]} />

並列レプリカを使用するには、アナライザを有効にする必要があります。アナライザが無効な場合は、レプリカからの並列読み取りが有効になっていても、クエリ実行はローカル実行にフォールバックします。アナライザを有効にせずに並列レプリカを使用することはサポートされていません

<div id="parallel_replicas_plan_based">
  ## parallel\_replicas\_plan\_based
</div>

<ExperimentalBadge />

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "新しい設定"}]}]} />

並列レプリカのローカル/リモート境界を、プラン変換として表現します。プランナーはまず通常のローカルプランを構築し、次に読み取りステップの上に分割ステップを挿入します。その後、分割ステップより下のプラン部分を、ローカル読み取りとリモート読み取りの `UNION` に置き換えます。これにより、その部分はレプリカ上で実行され、残りはコーディネーター上で実行されます。実験的機能であり、`parallel_replicas_local_plan` より優先されます。

<div id="parallel_replicas_prefer_local_join">
  ## parallel\_replicas\_prefer\_local\_join
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "true の場合、JOIN を並列レプリカアルゴリズムで実行でき、かつ JOIN の右側のすべてのストレージが *MergeTree であるときは、GLOBAL JOIN ではなくローカル JOIN が使用されます。"}]}]} />

true の場合、JOIN を並列レプリカアルゴリズムで実行でき、かつ JOIN の右側のすべてのストレージが \*MergeTree であるときは、GLOBAL JOIN ではなくローカル JOIN が使用されます。

<div id="parallel_replicas_prefer_local_replica">
  ## parallel\_replicas\_prefer\_local\_replica
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "新しい設定。無効にすると、並列読み取り用のレプリカはローカルレプリカを強制的に含めず、負荷分散アルゴリズムのみに基づいて選択されます。"}]}]} />

有効時 (デフォルト) には、並列読み取りに使用されるレプリカ群に常にローカルレプリカが含まれます。
無効時には、ローカルレプリカは優先されず、レプリカは負荷分散アルゴリズムのみに基づいて選択されます。
これにより、`max_parallel_replicas = 1` を指定したクエリを別のホストに送ることができ、多数の短いクエリがクラスター全体に分散される場合のキャッシュ局所性を改善できます。

<div id="parallel_replicas_support_projection">
  ## parallel\_replicas\_support\_projection
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "新しい設定。並列レプリカでプロジェクションの最適化を適用できます。parallel_replicas_local_plan が有効で、aggregation_in_order が無効な場合にのみ有効です。"}]}]} />

並列レプリカでプロジェクションの最適化を適用できます。parallel\_replicas\_local\_plan が有効で、aggregation\_in\_order が無効な場合にのみ有効です。
