> ## 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.

# paramètres de session parallel_replicas_*

> Paramètres de session ClickHouse du groupe généré parallel_replicas_*.

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
  }}>Type</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Par défaut</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modifiable sans redémarrage
        </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>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Fonctionnalité en bêta. 
                <u>
                    <a href="/docs/docs/beta-and-experimental-features#beta-features">
                        En savoir plus.
                    </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>
            Fonctionnalité expérimentale. <u><a href="/docs/docs/beta-and-experimental-features#experimental-features">En savoir plus.</a></u>
        </div>;
};

Ces paramètres sont disponibles dans [system.settings](/docs/fr/reference/system-tables/settings) et sont générés automatiquement à partir du [code source](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": "Si la valeur est true, la sous-requête de IN sera exécutée sur chaque réplique suiveuse"}]}]} />

Si la valeur est true, la sous-requête de IN sera exécutée sur chaque réplique suiveuse.

<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": "Autoriser l’utilisation des vues matérialisées avec les répliques parallèles"}]}]} />

Autoriser l’utilisation des vues matérialisées avec les répliques parallèles

<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": "Nouveau paramètre"}]}]} />

Permet aux répliques parallèles d'exécuter la requête externe d'une vue simple basée sur des tables `MergeTree` (au lieu de la requête interne de la vue), ce qui améliore la parallélisation entre les nœuds. S'applique également aux vues `UNION ALL` dont les branches lisent toutes dans des tables `MergeTree` différentes.

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

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "300"},{"label": "Délai de connexion distinct pour les requêtes avec répliques parallèles"}]}]} />

Délai d’expiration, en millisecondes, pour établir une connexion à une réplique distante lors de l’exécution d’une requête avec des répliques parallèles. Si le délai expire, la réplique correspondante n’est pas utilisée pour l’exécution de la requête

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

<BetaBadge />

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

Il s'agit d'un paramètre interne qui ne doit pas être utilisé directement et qui correspond à un détail d'implémentation du mode « répliques parallèles ». Pour les requêtes distribuées, ce paramètre est automatiquement défini par le serveur initiateur sur le nombre de répliques parallèles participant au traitement de la requête.

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

<BetaBadge />

Une expression entière arbitraire qui peut être utilisée pour répartir le travail entre les répliques d’une table donnée.
La valeur peut être n’importe quelle expression entière.

Il est préférable d’utiliser des expressions simples basées sur les clés primaires.

Si ce paramètre est utilisé sur un cluster composé d’un seul shard avec plusieurs répliques, ces répliques seront converties en shards virtuels.
Sinon, il se comportera comme pour la clé `SAMPLE` et utilisera plusieurs répliques de chaque shard.

<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": "Ajoute des paramètres permettant de contrôler le filtre de plage lors de l’utilisation de répliques parallèles avec des shards dynamiques"}]}]} />

Permet au filtre de type `range` de répartir uniformément la charge entre les répliques à partir de la plage personnalisée `[parallel_replicas_custom_key_range_lower, INT_MAX]`.

Utilisé conjointement avec [parallel\_replicas\_custom\_key\_range\_upper](/docs/fr/reference/settings/session-settings/parallel-replicas#parallel_replicas_custom_key_range_upper), il permet au filtre de répartir uniformément la charge entre les répliques sur la plage `[parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]`.

Remarque : ce paramètre n’entraîne aucun filtrage de données supplémentaire pendant le traitement des requêtes ; il modifie simplement les points auxquels le filtre de plage découpe la plage `[0, INT_MAX]` pour le traitement parallèle.

<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": "Ajoute des paramètres pour contrôler le filtre de plage lors de l’utilisation de répliques parallèles avec des shards dynamiques. Une valeur de 0 désactive la limite supérieure"}]}]} />

Permet au filtre de type `range` de répartir uniformément le travail entre les répliques en fonction de la plage personnalisée `[0, parallel_replicas_custom_key_range_upper]`. Une valeur de 0 désactive la borne supérieure et la fixe à la valeur maximale de l’expression de clé personnalisée.

Lorsqu’il est utilisé conjointement avec [parallel\_replicas\_custom\_key\_range\_lower](/docs/fr/reference/settings/session-settings/parallel-replicas#parallel_replicas_custom_key_range_lower), ce paramètre permet au filtre de répartir uniformément le travail entre les répliques sur la plage `[parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]`.

Remarque : ce paramètre n’entraîne pas le filtrage de données supplémentaires pendant le traitement des requêtes ; il modifie plutôt les points auxquels le filtre de plage découpe la plage `[0, INT_MAX]` pour le traitement parallèle

<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": "Nouveau paramètre"}]}]} />

Permet le pushdown des filtres sur la partie de la requête que les répliques parallèles choisissent d'exécuter

<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": "Nouveau paramètre."}]}]} />

Remplacer les moteurs de fonction de table par leurs équivalents -Cluster

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

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

Si la valeur est true, ClickHouse utilisera également l’algorithme des répliques parallèles pour les tables MergeTree non répliquées

<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": "L’analyse d’index n’est effectuée que sur la réplique coordinatrice et est ignorée sur les autres répliques. Prend effet uniquement lorsque parallel_replicas_local_plan est activé"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "L’analyse d’index n’est effectuée que sur la réplique coordinatrice et est ignorée sur les autres répliques. Prend effet uniquement lorsque parallel_replicas_local_plan est activé"}]}]} />

L’analyse d’index n’est effectuée que sur la réplique coordinatrice et est ignorée sur les autres répliques. Prend effet uniquement lorsque 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": "Utiliser le pipeline local lors d'un INSERT SELECT distribué avec des répliques parallèles. Actuellement désactivé en raison de problèmes de performances"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "Utiliser le pipeline local lors d'un INSERT SELECT distribué avec des répliques parallèles. Actuellement désactivé en raison de problèmes de performances"}]}]} />

Utiliser le pipeline local lors d'un INSERT SELECT distribué avec des répliques parallèles

<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": "Utiliser un plan local pour la réplique locale dans une requête avec des répliques parallèles"}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "1"},{"label": "Utiliser un plan local pour la réplique locale dans une requête avec des répliques parallèles"}]}, {"id": "row-3","items": [{"label": "24.10"},{"label": "1"},{"label": "Utiliser un plan local pour la réplique locale dans une requête avec des répliques parallèles"}]}]} />

Construire un plan local pour la réplique locale

<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": "La valeur de ce paramètre est désormais déterminée automatiquement"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "128"},{"label": "Ajout d'un nouveau paramètre pour contrôler la taille des segments dans la nouvelle implémentation du coordinateur de répliques parallèles"}]}]} />

Les parts de données sont divisées virtuellement en segments, qui sont répartis entre les répliques pour la lecture parallèle. Ce paramètre contrôle la taille de ces segments. Il est déconseillé de le modifier à moins d'être absolument sûr de ce que vous faites. La valeur doit être comprise dans la plage \[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" />

Limite le nombre de répliques utilisées dans une requête à (nombre estimé de lignes à lire / min\_number\_of\_rows\_per\_replica). Le maximum reste toutefois limité par '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": "Ce paramètre a été introduit dans le cadre du passage en Beta de la fonctionnalité des répliques parallèles"}]}]} />

Type de filtre à utiliser avec la clé personnalisée pour les répliques parallèles. default - utilise l'opération modulo sur la clé personnalisée, range - utilise un filtre de plage sur la clé personnalisée en utilisant toutes les valeurs possibles du type de valeur de la clé personnalisée.

<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": "Les répliques parallèles ne sont prises en charge que lorsque l’analyseur est activé"}]}]} />

L’analyseur doit être activé pour utiliser les répliques parallèles. Lorsque l’analyseur est désactivé, l’exécution de la requête retombe sur une exécution locale, même si la lecture parallèle depuis les répliques est activée. L’utilisation des répliques parallèles sans l’analyseur activé n’est pas prise en charge

<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": "Nouveau paramètre"}]}]} />

Exprime la frontière locale/distante des répliques parallèles sous forme de transformation du plan. Le planificateur construit un plan local simple ; une étape de séparation est ensuite insérée au-dessus de l’étape de lecture, puis remplacée par une `UNION` combinant une lecture locale et une lecture distante de la partie du plan située sous cette étape, de sorte que ce fragment s’exécute sur les répliques tandis que le reste s’exécute sur le coordinateur. Expérimental, prend le pas sur `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": "Si cette option est true, que JOIN peut être exécuté avec l’algorithme des répliques parallèles et que toutes les tables de la partie droite du JOIN sont de type *MergeTree, un JOIN local est utilisé à la place de GLOBAL JOIN."}]}]} />

Si cette option est true, que JOIN peut être exécuté avec l’algorithme des répliques parallèles et que toutes les tables de la partie droite du JOIN sont de type \*MergeTree, un JOIN local est utilisé à la place de GLOBAL 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": "Nouveau paramètre. Lorsqu’il est désactivé, les répliques pour la lecture parallèle sont sélectionnées uniquement par l’algorithme de répartition de charge, sans imposer l’inclusion de la réplique locale dans l’ensemble."}]}]} />

Lorsqu’il est activé (par défaut), la réplique locale est toujours incluse dans l’ensemble des répliques utilisées pour la lecture parallèle.
Lorsqu’il est désactivé, la réplique locale ne bénéficie d’aucune préférence et les répliques sont sélectionnées uniquement par l’algorithme de répartition de charge.
Cela permet d’acheminer les requêtes avec `max_parallel_replicas = 1` vers un autre hôte, ce qui peut améliorer la localité du cache lorsque de nombreuses requêtes courtes sont réparties sur un cluster.

<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": "Nouveau paramètre. L’optimisation des projections peut être appliquée aux répliques parallèles. S’applique uniquement lorsque parallel_replicas_local_plan est activé et que aggregation_in_order est inactif."}]}]} />

L’optimisation des projections peut être appliquée aux répliques parallèles. S’applique uniquement lorsque parallel\_replicas\_local\_plan est activé et que aggregation\_in\_order est inactif.
