Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

paramètres de session prefer_*

Ces paramètres sont disponibles dans system.settings et sont générés automatiquement à partir du code source.

prefer_column_name_to_alias

Type
Bool
Par défaut
0

Active ou désactive l’utilisation des noms de colonnes d’origine à la place des alias dans les expressions et clauses de requête. Ce paramètre est particulièrement important lorsque l’alias est identique au nom de la colonne ; voir Alias d’expression. Activez ce paramètre pour rendre les règles de syntaxe des alias dans ClickHouse plus compatibles avec celles de la plupart des autres moteurs de base de données.

Valeurs possibles :

  • 0 — Le nom de la colonne est remplacé par l’alias.
  • 1 — Le nom de la colonne n’est pas remplacé par l’alias.

Exemple

Différence entre l’état activé et désactivé :

Requête :

SET prefer_column_name_to_alias = 0;
SELECT avg(number) AS number, max(number) FROM numbers(10);

Résultat :

Received exception from server (version 21.5.1):
Code: 184. DB::Exception: Received from localhost:9000. DB::Exception: Aggregate function avg(number) is found inside another aggregate function in query: While processing avg(number) AS number.

Requête :

SET prefer_column_name_to_alias = 1;
SELECT avg(number) AS number, max(number) FROM numbers(10);

Résultat :

┌─number─┬─max(number)─┐
│    4.5 │           9 │
└────────┴─────────────┘

prefer_external_sort_block_bytes

Type
UInt64
Par défaut
16744704
Historique des versions
VersionValeur par défautCommentaire
24.516744704Préférer des blocs de taille maximale pour le tri externe afin de réduire l’utilisation mémoire lors de la fusion.

Préférer des blocs de taille maximale pour le tri externe afin de réduire l’utilisation mémoire lors de la fusion.

prefer_global_in_and_join

Type
Bool
Par défaut
0

Active le remplacement des opérateurs IN/JOIN par GLOBAL IN/GLOBAL JOIN.

Valeurs possibles :

  • 0 — Désactivé. Les opérateurs IN/JOIN ne sont pas remplacés par GLOBAL IN/GLOBAL JOIN.
  • 1 — Activé. Les opérateurs IN/JOIN sont remplacés par GLOBAL IN/GLOBAL JOIN.

Utilisation

Bien que SET distributed_product_mode=global puisse modifier le comportement des requêtes pour les tables distribuées, il ne convient pas aux tables locales ni aux tables provenant de ressources externes. C'est là que le paramètre prefer_global_in_and_join entre en jeu.

Par exemple, nous avons des nœuds de service de requêtes qui contiennent des tables locales, lesquelles ne se prêtent pas à la distribution. Nous devons répartir leurs données à la volée lors du traitement distribué avec le mot-clé GLOBALGLOBAL IN/GLOBAL JOIN.

Un autre cas d'usage de prefer_global_in_and_join est l'accès à des tables créées par des moteurs externes. Ce paramètre permet de réduire le nombre d'appels aux sources externes lors de la jointure de telles tables : un seul appel par requête.

Voir aussi :

prefer_localhost_replica

Type
Bool
Par défaut
1

Active ou désactive l’utilisation préférentielle de la réplique localhost lors du traitement des requêtes distribuées.

Valeurs possibles :

  • 1 — ClickHouse envoie toujours une requête à la réplique localhost si elle existe.
  • 0 — ClickHouse utilise la stratégie d’équilibrage spécifiée par le paramètre load_balancing.

prefer_warmed_unmerged_parts_seconds

Uniquement sur ClickHouse Cloud
Type
Int64
Par défaut
0

N’a d’effet que dans ClickHouse Cloud. Si une part fusionnée date de moins de ce nombre de secondes et n’est pas préchauffée (voir cache_populated_by_fetch), mais que toutes ses parts sources sont disponibles et préchauffées, les requêtes SELECT liront ces parts à la place. Uniquement pour Replicated-/SharedMergeTree. Notez que cela vérifie uniquement si CacheWarmer a traité la part ; si la part a été mise en cache par un autre mécanisme, elle sera quand même considérée comme froide jusqu’à ce que CacheWarmer la traite ; si elle a été préchauffée puis évincée du cache, elle sera quand même considérée comme chaude.

Navigation