Ces paramètres sont disponibles dans system.settings et sont générés automatiquement à partir du code source.
prefer_column_name_to_alias
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
Historique des versions
| Version | Valeur par défaut | Commentaire |
|---|---|---|
| 24.5 | 16744704 | Pré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
Active le remplacement des opérateurs IN/JOIN par GLOBAL IN/GLOBAL JOIN.
Valeurs possibles :
- 0 — Désactivé. Les opérateurs
IN/JOINne sont pas remplacés parGLOBAL IN/GLOBAL JOIN. - 1 — Activé. Les opérateurs
IN/JOINsont remplacés parGLOBAL 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é GLOBAL — GLOBAL 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 :
- Sous-requêtes distribuées pour plus d'informations sur l'utilisation de
GLOBAL IN/GLOBAL JOIN
prefer_localhost_replica
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
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.