> ## 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 distributed_*

> Les paramètres de session ClickHouse du groupe généré distributed_*.

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>;
};

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="distributed_aggregation_memory_efficient">
  ## distributed\_aggregation\_memory\_efficient
</div>

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

Indique si le mode d'économie de mémoire de l'agrégation distribuée est activé.

<div id="distributed_connections_pool_size">
  ## distributed\_connections\_pool\_size
</div>

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

Nombre maximal de connexions simultanées aux serveurs distants pour le traitement distribué de toutes les requêtes vers une même table Distributed. Nous recommandons de définir une valeur au moins égale au nombre de serveurs du cluster.

<div id="distributed_foreground_insert">
  ## distributed\_foreground\_insert
</div>

**Alias** : `insert_distributed_sync`

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

Active ou désactive l’insertion synchrone de données dans une table [Distributed](/docs/fr/reference/engines/table-engines/special/distributed).

Par défaut, lors de l’insertion de données dans une table `Distributed`, le serveur ClickHouse envoie les données aux nœuds du cluster en arrière-plan. Lorsque `distributed_foreground_insert=1`, les données sont traitées de manière synchrone, et l’opération `INSERT` n’est considérée comme réussie qu’une fois toutes les données enregistrées sur tous les shards (au moins une réplique pour chaque shard si `internal_replication` vaut true).

Valeurs possibles :

* `0` — Les données sont insérées en arrière-plan.
* `1` — Les données sont insérées en mode synchrone.

Valeur par défaut dans Cloud : `1`.

**Voir aussi**

* [Moteur de table Distributed](/docs/fr/reference/engines/table-engines/special/distributed)
* [Gestion des tables distribuées](/docs/fr/reference/statements/system#managing-distributed-tables)

<div id="distributed_group_by_no_merge">
  ## distributed\_group\_by\_no\_merge
</div>

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

Ne fusionne pas les états d’agrégation provenant de différents serveurs lors du traitement distribué des requêtes. Vous pouvez utiliser ce paramètre lorsqu’il est certain que les clés diffèrent d’un shard à l’autre.

Valeurs possibles :

* `0` — Désactivé (le traitement final de la requête est effectué sur le nœud initiateur).
* `1` - Ne fusionne pas les états d’agrégation provenant de différents serveurs lors du traitement distribué des requêtes (la requête est entièrement traitée sur le shard, l’initiateur ne fait que relayer les données) ; peut être utilisé lorsqu’il est certain que les clés diffèrent d’un shard à l’autre.
* `2` - Identique à `1`, mais applique `ORDER BY` et `LIMIT` sur l’initiateur (ce qui n’est pas possible lorsque la requête est entièrement traitée sur le nœud distant, comme avec `distributed_group_by_no_merge=1`) ; peut être utilisé pour les requêtes avec `ORDER BY` et/ou `LIMIT`.

**Exemple**

```sql theme={null}
SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 1
FORMAT PrettyCompactMonoBlock

┌─dummy─┐
│     0 │
│     0 │
└───────┘
```

```sql theme={null}
SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 2
FORMAT PrettyCompactMonoBlock

┌─dummy─┐
│     0 │
└───────┘
```

<div id="distributed_insert_skip_read_only_replicas">
  ## distributed\_insert\_skip\_read\_only\_replicas
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Si true, INSERT dans Distributed ignorera les répliques en lecture seule"}]}]} />

Permet d'ignorer les répliques en lecture seule pour les requêtes INSERT dans Distributed.

Valeurs possibles :

* 0 — INSERT se comporte comme d'habitude ; s'il est envoyé à une réplique en lecture seule, il échouera
* 1 — L'initiateur ignorera les répliques en lecture seule avant d'envoyer les données aux shards.

<div id="distributed_product_mode">
  ## distributed\_product\_mode
</div>

<SettingsInfoBlock type="DistributedProductMode" default_value="deny" />

Modifie le comportement des [sous-requêtes distribuées](/docs/fr/reference/statements/in).

ClickHouse applique ce paramètre lorsque la requête contient le produit de tables distribuées, c’est-à-dire lorsqu’une requête sur une table distribuée contient une sous-requête non-GLOBAL sur une table distribuée.

Restrictions :

* S’applique uniquement aux sous-requêtes IN et JOIN.
* Uniquement si la section FROM utilise une table distribuée contenant plus d’un shard.
* Uniquement si la sous-requête porte sur une table distribuée contenant plus d’un shard.
* N’est pas utilisé pour la fonction de table [remote](/docs/fr/reference/functions/table-functions/remote).

Valeurs possibles :

* `deny` — Valeur par défaut. Interdit l’utilisation de ces types de sous-requêtes (renvoie l’exception "Double-distributed in/JOIN subqueries is denied").
* `local` — Remplace la base de données et la table dans la sous-requête par leurs équivalents locaux pour le serveur de destination (shard), en conservant l’opérateur `IN`/`JOIN` ordinaire.
* `global` — Remplace la requête `IN`/`JOIN` par `GLOBAL IN`/`GLOBAL JOIN`.
* `allow` — Autorise l’utilisation de ces types de sous-requêtes.

<div id="distributed_push_down_limit">
  ## distributed\_push\_down\_limit
</div>

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

Active ou désactive l'application de [LIMIT](/docs/fr/reference/settings/session-settings/other#limit) séparément sur chaque shard.

Cela permet d'éviter :

* l'envoi de lignes superflues sur le réseau ;
* le traitement, sur l'initiateur, de lignes au-delà de la limite.

À partir de la version 21.9, il n'est plus possible d'obtenir de résultats inexacts, car `distributed_push_down_limit` ne modifie l'exécution de la requête que si au moins l'une des conditions suivantes est remplie :

* [distributed\_group\_by\_no\_merge](/docs/fr/reference/settings/session-settings/distributed#distributed_group_by_no_merge) > 0.
* La requête **ne contient pas** `GROUP BY`/`DISTINCT`/`LIMIT BY`, mais contient `ORDER BY`/`LIMIT`.
* La requête **contient** `GROUP BY`/`DISTINCT`/`LIMIT BY` avec `ORDER BY`/`LIMIT` et :
  * [optimize\_skip\_unused\_shards](/docs/fr/reference/settings/session-settings/optimize-skip#optimize_skip_unused_shards) est activé.
  * [optimize\_distributed\_group\_by\_sharding\_key](/docs/fr/reference/settings/session-settings/optimize#optimize_distributed_group_by_sharding_key) est activé.

Valeurs possibles :

* 0 — Désactivé.
* 1 — Activé.

Voir aussi :

* [distributed\_group\_by\_no\_merge](/docs/fr/reference/settings/session-settings/distributed#distributed_group_by_no_merge)
* [optimize\_skip\_unused\_shards](/docs/fr/reference/settings/session-settings/optimize-skip#optimize_skip_unused_shards)
* [optimize\_distributed\_group\_by\_sharding\_key](/docs/fr/reference/settings/session-settings/optimize#optimize_distributed_group_by_sharding_key)
