allow_aggregate_partitions_independently
Active l’agrégation indépendante des partitions sur des threads séparés lorsque la clé de partitionnement est adaptée à la clé GROUP BY. Cela est utile lorsque le nombre de partitions est proche du nombre de cœurs et que les partitions ont à peu près la même taille. Les heuristiques deReadFromMergeTree désactivent automatiquement l’optimisation pour les organisations défavorables (trop peu de partitions, trop de partitions ou des tailles de partition fortement déséquilibrées) ; consultez force_aggregate_partitions_independently pour contourner ces vérifications.
allow_archive_path_syntax
Les moteurs File/S3 et la fonction de table analyseront les chemins contenant ’::’ comme<archive> :: <file> si l’archive a l’extension appropriée.
allow_asynchronous_read_from_io_pool_for_merge_tree
Utilise le pool d’E/S d’arrière-plan pour lire les tables MergeTree. Ce paramètre peut améliorer les performances des requêtes limitées par les E/S.allow_calculating_subcolumns_sizes_for_merge_tree_reading
Lorsqu’il est activé, ClickHouse calcule la taille des fichiers nécessaires à la lecture de chaque sous-colonne afin de mieux dimensionner les tâches et les blocs.allow_changing_replica_until_first_data_packet
Si ce paramètre est activé, dans les requêtes hedged, nous pouvons établir une nouvelle connexion jusqu’à la réception du premier paquet de données, même si un certain progrès a déjà été réalisé (mais que la progression n’a pas été mise à jour pendant le délai d’expirationreceive_data_timeout) ; sinon, nous désactivons le changement de réplique dès qu’un premier progrès a été réalisé.
allow_correlated_subqueries
Alias :allow_experimental_correlated_subqueries
Autorise l’exécution de sous-requêtes corrélées.
allow_create_index_without_type
Autorise les requêtes CREATE INDEX sans TYPE. La requête est alors ignorée. Prévu pour les tests de compatibilité SQL.allow_creating_set_partitions_independently
Active le prédédoublonnage parallèle, partition par partition, du résultat de la sous-requête lors de la création de l’ensemble pourIN (subquery), lorsque l’expression de partition de la table MergeTree de la sous-requête est une fonction déterministe des colonnes de sortie de la sous-requête. Chaque partition est lue dans un flux distinct et dédoublonnée indépendamment, de sorte que l’unique transformation de remplissage de l’ensemble ne calcule le hachage que des lignes uniques. Ne s’applique pas avec FINAL, les répliques parallèles ou GLOBAL IN. L’optimisation ne demande elle-même une lecture par partition que lorsque les données comportent plus d’une partition et que la plus grande partition contient au plus deux fois plus de lignes que la partition moyenne (voir force_creating_set_partitions_independently pour contourner la vérification du déséquilibre) ; lorsque les flux sont déjà disjoints par partition parce qu’une autre fonctionnalité par partition les a divisés (par exemple, LIMIT BY par partition), le prédédoublonnage est appliqué dans tous les cas, car l’organisation de la lecture est déjà définie. Pendant la création de l’ensemble, les tables de dédoublonnage de tous les flux contiennent ensemble environ une copie supplémentaire des clés uniques.
allow_custom_error_code_in_throwif
Active l’utilisation d’un code d’erreur personnalisé dans la fonction throwIf(). Si true, les exceptions levées peuvent avoir des codes d’erreur inattendus.allow_database_glue_catalog
Aliases :allow_experimental_database_glue_catalog
Autorise le database engine DataLakeCatalog avec catalog_type = 'glue'
Cloud default value : 1.
allow_database_iceberg
Aliases :allow_experimental_database_iceberg
Autorise le database engine DataLakeCatalog avec catalog_type = 'iceberg'
Cloud default value : 1.
allow_database_unity_catalog
Aliases :allow_experimental_database_unity_catalog
Autorise le database engine DataLakeCatalog avec catalog_type = 'unity'
Cloud default value : 1.
allow_ddl
S’il est défini sur true, l’utilisateur est autorisé à exécuter des requêtes DDL.allow_delta_kernel_rs
Alias:allow_experimental_delta_kernel_rs
Autorise l’utilisation de l’implémentation delta-kernel-rs pour lire les tables Delta Lake.
allow_delta_lake_create_table
Permet de créer une nouvelle table DeltaLake à l’aide de delta-kernel-rs ou d’en enregistrer une existante dans un catalog. La création d’une table partitionnée (PARTITION BY) n’est pas encore prise en charge. Dans une base de données DataLakeCatalog, la table est enregistrée avec son schéma Delta ; par conséquent, les types ClickHouse déclarés qui correspondent à un type Delta plus large (par exemple UInt8 -> short, FixedString(N) -> string) sont relus sous la forme du type Delta associé et non du type déclaré.
allow_delta_lake_writes
Aliases :allow_experimental_delta_lake_writes
Active la fonctionnalité d’écriture via delta-kernel.
allow_distinct_partitions_independently
Active l’évaluation indépendante deDISTINCT pour chaque partition dans des threads séparés lorsque l’expression de partition est une fonction déterministe des colonnes DISTINCT, en évitant la fusion inter-flux. Utile lorsque le nombre de partitions est proche du nombre de cœurs et que les partitions sont de taille approximativement égale ; dans le cas contraire, une heuristique de coût l’évite. Consultez max_number_of_partitions_for_independent_distinct et force_distinct_partitions_independently. Ne s’applique pas avec FINAL ni avec les répliques parallèles.
Ne s’applique pas lorsque max_rows_in_distinct ou max_bytes_in_distinct est défini : ces limites sont appliquées par l’unique transformation DISTINCT, qui traite l’ensemble du résultat fusionné. La fusion inter-flux est donc conservée afin de préserver leur portée globale.
allow_distributed_ddl
Si ce paramètre est défini sur true, l’utilisateur est autorisé à exécuter des requêtes DDL distribuées.allow_drop_detached
Autorise les requêtes ALTER TABLE … DROP DETACHED PART[ITION] …allow_dynamic_type_in_join_keys
Autorise l’utilisation du type Dynamic dans les clés de JOIN. Ajouté pour des raisons de compatibilité. Il n’est pas recommandé d’utiliser le type Dynamic dans les clés de JOIN, car les comparaisons avec d’autres types peuvent produire des résultats inattendus.allow_executable_tables
Autorise la lecture via la fonction de tableexecutable et depuis les tables Executable et ExecutablePool.
Désactiver ce paramètre refuse uniquement les lectures : la création, l’attachement, la suppression et la description de ces tables restent possibles. Les processus ExecutablePool déjà démarrés continuent de s’exécuter au lieu d’être arrêtés, mais chaque lecture est refusée tant que le paramètre n’est pas réactivé.
allow_execute_multiif_columnar
Autorise l’exécution de la fonction multiIf en mode colonnaireallow_fuzz_query_functions
Active la fonctionfuzzQuery, qui applique des mutations aléatoires de l’AST à une chaîne de requête.
allow_general_join_planning
Autorise un algorithme de planification des jointures plus générique, capable de gérer des conditions plus complexes, mais qui fonctionne uniquement avec le hash join. Si le hash join n’est pas activé, l’algorithme habituel de planification des jointures est utilisé, quelle que soit la valeur de ce paramètre.allow_geo_types_in_iceberg
Aliases :allow_experimental_geo_types_in_iceberg
Autorise l’analyse des types de champs Iceberg geometry et geography en tant que type ClickHouse Geometry (Variant).
allow_get_client_http_header
Permet d’utiliser la fonctiongetClientHTTPHeader, qui permet d’obtenir la valeur d’un en-tête de la requête HTTP en cours. Elle n’est pas activée par défaut pour des raisons de sécurité, car certains en-têtes, comme Cookie, peuvent contenir des informations sensibles. Notez que les en-têtes X-ClickHouse-*, Authentication et Authorization sont toujours restreints et ne peuvent pas être obtenus avec cette fonction.
allow_hyperscan
Autorise les fonctions qui utilisent la bibliothèque Hyperscan. Désactivez-la pour éviter des temps de compilation potentiellement longs et une consommation excessive de ressources.allow_iceberg_remove_orphan_files
Permet d’utiliserALTER TABLE ... EXECUTE remove_orphan_files() pour les tables Iceberg.
allow_insert_into_iceberg
Alias :allow_experimental_insert_into_iceberg
Permet d’exécuter des requêtes insert dans Iceberg.
allow_introspection_functions
Active ou désactive les fonctions d’introspection pour le profilage des requêtes. Valeurs possibles :- 1 — Fonctions d’introspection activées.
- 0 — Fonctions d’introspection désactivées.
- Profileur de requêtes par échantillonnage
- Table système trace_log
allow_join_right_table_sorting
Aliases :allow_experimental_join_right_table_sorting
Si ce paramètre est défini à true et que les conditions de join_to_sort_minimum_perkey_rows et join_to_sort_maximum_table_rows sont réunies, la table de droite est réordonnée par clé afin d’améliorer les performances des hash joins left ou inner.
allow_kafka_offsets_storage_in_keeper
Aliases :allow_experimental_kafka_offsets_storage_in_keeper
Permet de stocker les offsets liés à Kafka dans ClickHouse Keeper. Lorsque ce paramètre est activé, il est possible de spécifier un Keeper path ClickHouse et un nom de réplique au Kafka table engine. Ainsi, au lieu du Kafka engine habituel, un nouveau type de storage engine est utilisé, lequel stocke les offsets validés principalement dans ClickHouse Keeper
allow_key_condition_coalesce_rewrite
Réécrit les prédicats de la formecoalesce(a_1, ..., a_N) <op> const (ou, de manière équivalente, ifNull, ou avec la constante à gauche) en une disjonction (a_1 <op> const) OR (a_1 IS NULL AND a_2 <op> const) OR ... OR (a_1 IS NULL AND ... AND a_{N-1} IS NULL AND a_N <op> const) avant l’analyse des index, afin de pouvoir utiliser la clé primaire et les index de saut sur chaque a_i. Les formes partiellement constantes telles que coalesce(a, 42, b) et coalesce(a, b, 42) sont prises en charge : la liste d’arguments est normalisée comme le fait coalesce lui-même (les littéraux NULL sont supprimés, de même que les arguments suivant le premier argument non-Nullable), et une constante non-NULL finale, le cas échéant, est ajoutée comme branche finale. La réécriture est strictement additive pour l’élagage par index ; le filtrage à l’exécution utilise toujours le prédicat d’origine.
De plus, les prédicats d’égalité exacte de la forme nullIf(key, sentinel) = const (où sentinel != const et les types correspondent exactement) sont réécrits en key = const afin que la clé primaire, la partition et les index de saut sur key puissent élaguer directement des granules. L’élagage par nullIf pour les plages et les disjonctions n’est pas pris en charge.
allow_limit_by_partitions_independently
Active l’évaluation indépendante deLIMIT BY pour chaque partition sur des threads séparés lorsque l’expression de partition est une fonction déterministe des colonnes de LIMIT BY.
allow_lossy_numeric_supertype
Lorsqu’il est activé,if/multiIf/coalesce/ifNull/array/map appliqués à un ensemble d’arguments numériques ne disposant pas d’un type commun sans perte (par exemple un Decimal et un Float64, ou un Int64 et un Float64) produisent un supertype numérique (Float64) au lieu d’échouer, avec une perte de précision possible. Cela permet d’utiliser directement le résultat avec des fonctions d’agrégation combinant des valeurs, telles que sum, avg, min et max. Ce paramètre est indépendant de use_variant_as_common_type : le supertype numérique est produit, que use_variant_as_common_type soit activé ou non. Lorsqu’il est désactivé (par défaut), de tels ensembles d’arguments n’ont pas de type commun : ils deviennent alors soit un Variant (si use_variant_as_common_type est activé), soit déclenchent NO_COMMON_TYPE.
allow_materialized_view_with_bad_select
Autorise CREATE MATERIALIZED VIEW avec une requête SELECT faisant référence à des tables ou colonnes inexistantes. Elle doit toutefois rester syntaxiquement valide. Ne s’applique pas aux MV actualisables. Ne s’applique pas non plus si le schéma de la MV doit être inféré à partir de la requête SELECT (c.-à-d. si le CREATE ne comporte ni liste de colonnes ni table TO). Peut être utilisé pour créer une MV avant sa table source.allow_metadata_only_named_tuple_alter
Si cette option est définie sur true, ALTER MODIFY COLUMN sur un Tuple nommé qui ajoute uniquement de nouveaux sous-champs est limité aux métadonnées (sans mutation des données). Définissez-la sur false pour forcer l’ancien comportement de mutation complète.allow_minmax_index_for_json
Autorise la création d’index de saut minmax sur les colonnes JSON (Object). Désactivé par défaut, car le mécanisme de sérialisation de l’index minmax ne peut pas prendre en charge les valeurs de Field hétérogènes que peuvent contenir les colonnes JSON.allow_named_collection_override_by_default
Autorise par défaut la surcharge des champs des collections nommées.allow_non_metadata_alters
Permet d’exécuter des opérations ALTER qui affectent non seulement les métadonnées des tables, mais aussi les données sur le disqueallow_nonconst_timezone_arguments
Autorise des arguments de fuseau horaire non constants dans certaines fonctions liées au temps, comme toTimeZone(), fromUnixTimestamp*() et snowflakeIDToDateTime*(). Ce paramètre existe uniquement pour des raisons de compatibilité. Dans ClickHouse, le fuseau horaire est une propriété du type de données, ou plus précisément de la colonne. L’activation de ce paramètre donne à tort l’impression que différentes valeurs d’une même colonne peuvent avoir des fuseaux horaires différents. Par conséquent, veuillez ne pas activer ce paramètre.allow_nullable_tuple_in_extracted_subcolumns
Détermine si les sous-colonnes extraites de typeTuple(...) peuvent être typées comme Nullable(Tuple(...)).
false: renvoieTuple(...)et utilise les valeurs de tuple par défaut pour les lignes où la sous-colonne est absente.true: renvoieNullable(Tuple(...))et utiliseNULLpour les lignes où la sous-colonne est absente.
Nullable(Tuple(...)) peuvent être créées dans des tables ; cela est contrôlé par enable_nullable_tuple_type.
ClickHouse utilise la valeur de ce paramètre chargée au démarrage du serveur.
Les modifications effectuées avec SET ou la clause SETTINGS au niveau de la requête ne changent pas le comportement des sous-colonnes extraites.
Pour modifier le comportement des sous-colonnes extraites, mettez à jour allow_nullable_tuple_in_extracted_subcolumns dans la configuration du profil de démarrage (par exemple, users.xml) et redémarrez le serveur.
allow_preliminary_distinct_abandoning
Permet auDISTINCT préliminaire (par flux) de renoncer à dédupliquer une entrée majoritairement unique, libérant ainsi sa hash table et laissant passer les lignes restantes. Le DISTINCT préliminaire fonctionne, par conception, en « meilleur effort » — les doublons provenant de flux différents le traversent même lorsqu’il déduplique — et le DISTINCT final déduplique à nouveau sa sortie : y renoncer ne sacrifie donc quasiment aucune suppression et évite la mémoire et le hachage d’une seconde copie des clés uniques. Non appliqué lorsque le DISTINCT préliminaire porte un hint de limite (un simple LIMIT sans tri ultérieur).
allow_rank_dense_rank_arguments
Autorise le passage d’arguments aux fonctions de fenêtreRANK et DENSE_RANK pour assurer la rétrocompatibilité.
Selon la norme SQL, RANK et DENSE_RANK ne prennent aucun argument — elles classent les lignes uniquement en fonction de la fenêtre
OVER (ORDER BY ...). Dans les versions de ClickHouse antérieures à la 26.5, des requêtes telles que
RANK(x) OVER (...) acceptaient et ignoraient silencieusement l’argument, ce qui prêtait à confusion
(l’argument visible laissait penser qu’il influençait le classement, mais ce n’était pas le cas).
Lorsque ce paramètre est false (valeur par défaut), RANK et DENSE_RANK rejettent tout argument et
renvoient NUMBER_OF_ARGUMENTS_DOESNT_MATCH. Lorsqu’il est défini sur true, le comportement permissif legacy est
rétabli — les arguments sont silencieusement ignorés, comme avant la version 26.5.
allow_reorder_prewhere_conditions
Lors du déplacement des conditions de WHERE vers PREWHERE, autoriser leur réordonnancement afin d’optimiser le filtrageallow_replace_partition_from_empty_source
AutoriseALTER TABLE ... REPLACE PARTITION ... FROM ... à supprimer silencieusement la partition de destination lorsque la source n’a aucune part dans cette partition.
Par défaut, ce n’est pas autorisé : un REPLACE PARTITION à partir d’une source qui ne contient aucune donnée dans la partition demandée lève une exception, car dans ce cas l’opération revient en pratique à un DROP PARTITION silencieux sur la destination (les données de destination sont supprimées et rien ne les remplace), ce qui est une cause fréquente de perte accidentelle de données (voir #23727).
Activez ce paramètre pour rétablir le comportement précédent, par exemple si vous utilisez volontairement une partition source vide pour effacer les données de destination. Pour une suppression inconditionnelle, préférez ALTER TABLE ... DROP PARTITION ....
allow_settings_after_format_in_insert
Détermine siSETTINGS après FORMAT dans les requêtes INSERT est autorisé ou non. Il n’est pas recommandé d’utiliser ce paramètre, car une partie de SETTINGS peut être interprétée comme des valeurs.
Exemple :
allow_settings_after_format_in_insert :
- 0 — Interdire.
- 1 — Autoriser.
Utilisez ce paramètre uniquement à des fins de rétrocompatibilité si vos cas d’usage dépendent de l’ancienne syntaxe.
allow_simdjson
Permet d’utiliser la bibliothèque simdjson dans les fonctions ‘JSON*’ si les instructions AVX2 sont disponibles. Si cette option est désactivée, rapidjson sera utilisé.allow_special_serialization_kinds_in_output_formats
Permet de produire des colonnes avec des types de sérialisation spéciaux comme Sparse et Replicated sans les convertir en représentation complète de colonne. Cela permet d’éviter des copies de données inutiles lors de la mise en forme.allow_unrestricted_reads_from_keeper
Autorise les lectures sans restriction (sans condition sur le chemin) depuis la table system.zookeeper ; cela peut être pratique, mais n’est pas sans risque pour ZooKeeperallow_url_wildcard_from_index_pages
Aliases :allow_experimental_url_wildcard_from_index_pages
Autorise l’expansion des wildcards pour url() et ENGINE = URL à partir des pages d’index HTTP.
allow_window_partitions_independently
Active l’évaluation indépendante des fonctions de fenêtre pour chaque partition sur des threads séparés lorsque l’expression de partition de la tableMergeTree est une fonction déterministe des colonnes PARTITION BY de la fenêtre. Chaque partition est lue via un flux distinct, triée indépendamment selon la description de tri de la fenêtre et traitée par sa propre transformation de fenêtre, évitant ainsi la dispersion par hachage qui redistribue habituellement chaque ligne entre les threads. Cette option est avantageuse lorsque le nombre de partitions est proche du nombre de cœurs et que les partitions sont approximativement de même taille ; dans le cas contraire, une heuristique de coût l’ignore. Consultez max_number_of_partitions_for_independent_window et force_window_partitions_independently. Ne s’applique pas avec FINAL ni avec des répliques parallèles.