> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-postgresql-tls-support.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# parallel_replicas_* セッション設定

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

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["バージョン", "デフォルト値", "コメント"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        バージョン履歴
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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}>
                <span>ベータ</span>
            </a>;
  }
  return <a href="/docs/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>ベータ機能です</span>
        </a>;
};

export const ExperimentalBadge = () => {
  return <a href="/docs/beta-and-experimental-features#experimental-features" 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>
            実験的な機能です
        </a>;
};

これらの設定は [system.settings](/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" />

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

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

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

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

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

<BetaBadge />

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

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

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

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

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

<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" />

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

[parallel\_replicas\_custom\_key\_range\_upper](/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" />

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

[parallel\_replicas\_custom\_key\_range\_lower](/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" />

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

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

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

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" />

索引解析は 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" />

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

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

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

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

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

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

パーツは、並列読み取りのためにレプリカ間へ分配されるセグメントに仮想的に分割されます。この設定は、それらのセグメントのサイズを制御します。何をしているのかを十分に理解している場合を除き、変更は推奨されません。値は \[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" />

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

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

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

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

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

<ExperimentalBadge />

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

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

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

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

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" />

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

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

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

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