adaptive_aggregator_freeze_threshold
enable_adaptive_aggregator). Des valeurs plus faibles maintiennent les tables figées dans le cache, tandis que des valeurs plus élevées leur permettent d’absorber davantage de clés fréquentes. La valeur 0 fige les tables dès que possible, ce qui fait que l’algorithme se comporte de manière similaire à l’agrégateur partitionné (enable_sharding_aggregator) : chaque clé est routée selon son hash et agrégée par un seul propriétaire, mais l’opération est reportée à la phase de fusion au lieu d’être échangée entre les threads pendant le parcours.
add_http_cors_header
analyze_index_with_space_filling_curves
ORDER BY mortonEncode(x, y) ou ORDER BY hilbertEncode(x, y), et que la requête comporte des conditions sur ses arguments, par exemple x >= 10 AND x <= 20 AND y >= 20 AND y <= 30, utilisez la courbe de remplissage de l’espace pour l’analyse de l’index.
analyzer_inline_views
any_join_distinct_right_table_keys
ANY INNER|LEFT JOIN.
Utilisez ce paramètre uniquement pour assurer la rétrocompatibilité si vos cas d’usage dépendent du comportement legacy de
JOIN.- Les résultats des opérations
t1 ANY LEFT JOIN t2ett2 ANY RIGHT JOIN t1ne sont pas identiques, car ClickHouse utilise une logique de correspondance des clés entre les tables, de gauche à droite, de plusieurs à un. - Les résultats des opérations
ANY INNER JOINcontiennent toutes les lignes de la table de gauche, comme c’est le cas pour les opérationsSEMI LEFT JOIN.
- Les résultats des opérations
t1 ANY LEFT JOIN t2ett2 ANY RIGHT JOIN t1sont identiques, car ClickHouse utilise une logique qui permet une correspondance des clés de un à plusieurs dans les opérationsANY RIGHT JOIN. - Les résultats des opérations
ANY INNER JOINcontiennent une ligne par clé provenant des tables de gauche et de droite.
- 0 — Le comportement legacy est désactivé.
- 1 — Le comportement legacy est activé.
archive_adaptive_buffer_max_size_bytes
arrow_flight_request_descriptor_type
- ‘path’ — Utilise FlightDescriptor::Path (par défaut, fonctionne avec la plupart des serveurs Arrow Flight)
- ‘command’ — Utilise FlightDescriptor::Command avec une requête SELECT (requis pour Dremio)
backup_slow_all_threads_after_retryable_s3_error
true, tous les threads exécutant des requêtes S3 vers le même endpoint de sauvegarde sont ralentis
dès qu’une requête S3 rencontre une erreur S3 pouvant donner lieu à un réessai, telle que ‘Slow Down’.
Lorsqu’il est défini sur false, chaque thread gère le backoff des requêtes S3 indépendamment des autres.
cache_warmer_threads
calculate_text_stack_trace
cancel_http_readonly_queries_on_client_close
SELECT) lorsqu’un client ferme la connexion sans attendre de réponse.
Valeur par défaut dans Cloud : 1.
checksum_on_read
compression
compression=gz. Notez que ce paramètre est indépendant de Content-Encoding (compression HTTP) et de l’ancien paramètre compress (compression native de ClickHouse). Indiquer une extension de fichier compressé dans le chemin d’URL produit le même effet.
Il s’agit d’un paramètre de l’interface HTTP qui définit la forme de la réponse : il est pris en compte avant l’exécution de la requête (les tampons de réponse sont configurés à l’avance). Il doit donc être fourni via le paramètre d’URL HTTP, l’extension de fichier du chemin d’URL ou un profil utilisateur, et non via une clause SETTINGS dans la requête (où il n’a aucun effet et est rejeté).
connection_pool_max_wait_ms
- Entier positif.
- 0 — Délai d’attente infini.
connections_with_failover_max_tries
convert_query_to_cnf
true, une requête SELECT est convertie en forme normale conjonctive (CNF). Dans certains cas, réécrire une requête en CNF peut accélérer son exécution (voir cette issue GitHub pour plus d’explications).
Par exemple, notez que la requête SELECT suivante n’est pas modifiée (comportement par défaut) :
convert_query_to_cnf à true et voyons ce qui change :
WHERE est réécrite en CNF, mais le jeu de résultats reste identique : la logique booléenne est inchangée.
count_matches_stop_at_empty_match
countMatches.
cross_to_inner_join_rewrite
data_type_default_nullable
- 1 — Les types de données dans les définitions de colonnes sont
Nullablepar défaut. - 0 — Les types de données dans les définitions de colonnes ne sont pas
Nullablepar défaut.
decimal_check_overflow
deduplicate_blocks_in_dependent_materialized_views
- 0 — Désactivé.
- 1 — Activé.
defer_partition_pruning_after_final
FINAL sur les tables dont les
colonnes de clé de partition ne font pas partie de la clé de tri. Il s’agit du comportement sûr du point de vue de la validité des résultats,
introduit en 26.3 : FINAL peut devoir dédupliquer des lignes qui partagent une clé primaire mais se trouvent
dans des partitions différentes, et l’élagage des partitions exclurait silencieusement ces lignes de
l’ensemble d’entrée de la déduplication.
Lorsqu’il est désactivé, l’élagage des partitions s’applique même avec FINAL, ce qui rétablit le comportement
antérieur à 26.3. Cela peut être nettement plus rapide pour les requêtes avec des prédicats WHERE sur la
colonne de partition, mais n’est correct que lorsque des lignes ayant la même clé primaire ne peuvent pas exister
dans des partitions différentes — par exemple, des tables de journaux d’événements dont la colonne de partition est définie au moment de l’insert
et ne change jamais.
Ce paramètre n’affecte que les tables partitionnées dont les colonnes de clé de partition ne sont pas incluses
dans la clé de tri ; pour les autres tables, l’élagage des partitions est toujours appliqué.
Valeurs possibles :
- 0 — Appliquer l’élagage des partitions avant
FINAL(comportement antérieur à 26.3, plus rapide mais non sûr dans le cas général). - 1 — Différer l’élagage des partitions après
FINAL(par défaut, sûr du point de vue de la validité des résultats).
describe_compact_output
dialecte
clickhouse(par défaut) — ClickHouse SQL standard.kusto— Kusto Query Language. Nécessite le paramètre expérimentalallow_experimental_kusto_dialect.prql— PRQL. Nécessite le paramètre expérimentalallow_experimental_prql_dialect.polyglot— convertit le SQL provenant d’autres dialectes (MySQL, PostgreSQL, etc.) en ClickHouse SQL. Nécessite le paramètre expérimentalallow_experimental_polyglot_dialect.promql— PromQL (langage de requêtes Prometheus) évalué sur une table TimeSeries, configurée à l’aide des paramètrespromql_database,promql_tableetpromql_evaluation_time.clickhouse_json— au lieu d’un texte SQL, la requête est interprétée comme un AST JSON (la sortie deparseQueryToJSON). La requêteSETreste reconnue sous sa forme habituelle afin de pouvoir rétablir le dialecte. Nécessite le paramètre expérimentalenable_json_ast_dialect.
discard_query_data
distinct_overflow_mode
throw: lever une exception (par défaut).break: arrêter l’exécution de la requête et renvoyer le résultat partiel, comme si les données source étaient épuisées.
do_not_merge_across_partitions_select_final
dynamic_throw_on_type_mismatch
true(par défaut) — lever une exception.false— renvoyerNULLpour ces lignes à la place.
enforce_strict_identifier_format
engine_url_skip_empty_files
- 0 —
SELECTlève une exception si le fichier vide n’est pas compatible avec le format demandé. - 1 —
SELECTrenvoie un résultat vide pour un fichier vide.
exact_rows_before_limit
except_default_mode
exclude_materialize_skip_indexes_on_insert
execute_exists_as_scalar_subquery
0.
explain_query_plan_default
EXPLAIN PLAN.
Valeurs possibles :
pretty(par défaut depuis la version 26.7) —actions,compactetprettyvalent par défauttrue, ce qui produit un plan compact, pretty et annoté avec les actions.legacy— sortie antérieure à la version 26.7.
actions, compact ou pretty dans l’instruction EXPLAIN (par exemple, EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...), cela prévaut toujours sur ce paramètre.
EXPLAIN PLAN avec json = 1 ou distributed = 1 conserve les valeurs par défaut legacy (antérieures à la version 26.7), indépendamment de ce paramètre, sauf si actions, compact ou pretty sont définis explicitement. La sortie pretty ne peut pas représenter des résultats JSON ni des plans distribués par shard ; ces modes ne sont donc correctement rendus qu’au format legacy.
extract_key_value_pairs_max_pairs_per_row
extract_kvp_max_pairs_per_row
Nombre maximal de paires que la fonction extractKeyValuePairs peut produire. Sert de garde-fou pour éviter une consommation excessive de mémoire.
extremes
fallback_to_stale_replicas_for_distributed_queries
SELECT depuis une table distribuée pointant vers des tables répliquées.
Par défaut, 1 (activé).
file_like_engine_default_partition_strategy
{_partition_id} : un tel chemin n’est compatible qu’avec la stratégie wildcard et implique donc toujours wildcard.
filesystem_prefetches_limit
filesystem_prefetches_max_memory_usage si vous souhaitez limiter le nombre de prefetches.
filter
WHERE à la requête en l’enveloppant dans une sous-requête. Plusieurs filtres sont combinés avec AND. L’interface HTTP autorise plusieurs paramètres d’URL filter, combinés avec AND dans l’ordre, ainsi qu’avec la valeur de ce paramètre.
Il s’agit d’un paramètre de construction de requête appliqué par le moteur à la requête analysée (en l’enveloppant dans une table dérivée). Il se combine donc avec la requête existante et fonctionne avec tous les protocoles : il peut être fourni via le paramètre d’URL HTTP, une clause SETTINGS dans la requête ou un profil utilisateur.
Il s’applique aux requêtes SELECT / UNION qui produisent des résultats. Pour une requête d’écriture (INSERT … SELECT, CREATE … AS SELECT), il ne prend effet que si le SELECT source l’inclut dans sa propre clause SETTINGS ; une valeur héritée d’un profil ou d’une session, ou définie sur l’instruction INSERT / CREATE elle-même, ne se propage pas au SELECT source — comme pour tout autre paramètre.
filter n’est pas un mécanisme de contrôle d’accès et ne doit pas être utilisé à la place des politiques de sécurité au niveau des lignes ou du paramètre additional_table_filters. Il ajoute uniquement une clause WHERE à la sous-requête enveloppante ; les données sous-jacentes sont donc toujours lues et traitées avant l’application du filtre — une requête peut observer les lignes exclues par le filtre pendant leur traitement (par exemple, avec throwIf afin de divulguer des informations par le biais du chemin d’erreur). Utilisez la sécurité au niveau des lignes ou additional_table_filters pour restreindre les lignes auxquelles un utilisateur peut accéder.final
- 0 - désactivé
- 1 - activé
finalize_projection_parts_synchronously
flatten_nested
- 1 — La colonne Nested est aplatie en tableaux distincts.
- 0 — La colonne Nested reste un tableau unique de tuples.
0, il est possible d’utiliser un niveau d’imbrication quelconque.
Exemples
Requête :
format
FORMAT de la requête, tant en entrée qu’en sortie. Prévaut sur le format spécifié dans la requête et dans l’extension du fichier. Les paramètres plus spécifiques input_format et output_format prévalent sur ce paramètre générique format dans leur sens respectif.
framing_output_format
data, totals et extremes correspond exactement à ce que le format de sortie aurait produit sans tramage. Les paquets auxiliaires (progression, journaux, événements de profilage, exceptions) sont représentés en JSON.
Une exception délibérée : un format de sortie qui omet les totaux et les extrêmes de sa sortie brute parce qu’il ne peut pas les représenter (la famille JSONCompactEachRow) les émet malgré tout avec le tramage, dans les paquets totals et extremes. Pour ces formats, la concaténation des seuls paquets data correspond exactement à la sortie sans tramage, tandis que les paquets totals et extremes contiennent des lignes supplémentaires absentes de cette sortie.
Les journaux du serveur sont inclus si le paramètre send_logs_level est défini, et les événements de profilage si le paramètre send_profile_events est activé (ils sont envoyés au plus une fois toutes les interactive_delay microsecondes, et les paquets de progression sont également limités par interactive_delay).
Un flux réussi se termine par un paquet progress final contenant les compteurs finaux (result_rows, result_bytes, memory_usage), écrit après les paquets log et profile_events de fin émis par la journalisation de fin de requête, à l’instar du paquet de progression final du protocole natif. En cas d’échec, le paquet exception est le dernier paquet — à une exception près : lorsque l’échec survient après qu’une partie du flux de paquets a déjà été produite dans la réponse et ne peut plus être supprimée (l’écriture d’un paquet échoue en cours de route, la transmission du paquet exception lui-même échoue, ou le flux de réponse échoue lors de son vidage ou de sa fermeture), le tramage échoue de manière sécurisée : le flux est interrompu sans paquet exception terminal, et le client observe une réponse tronquée ainsi qu’une connexion HTTP interrompue au lieu d’un paquet terminal analysable. Rien n’est jamais ajouté après un flux de paquets partiel ; un corps d’erreur HTTP brut n’y est donc jamais mélangé.
Tout ce qu’une requête active uniquement via sa propre clause SETTINGS — un format de tramage, send_logs_level ou send_profile_events — n’est connu qu’après l’analyse de la requête ; les journaux et événements de profilage correspondants ne sont donc capturés qu’à partir de l’exécution de la requête. Les journaux et événements de profilage des phases d’analyse syntaxique, de planification et d’analyse sont capturés uniquement lorsque le paramètre provient de la session ou de l’URL. Par exemple, une requête qui échoue pendant l’analyse (par exemple, en raison d’une référence à une table inconnue) et n’active send_logs_level que dans sa clause SETTINGS ne transmet que le paquet exception, et non les journaux de la phase d’analyse ; définissez send_logs_level dans la session ou l’URL pour les capturer.
La même réserve liée à la découverte tardive s’applique à send_logs_source_regexp : la file de journaux filtre les entrées par source au moment où chacune est capturée, de sorte qu’une expression régulière définie uniquement dans la clause SETTINGS de la requête ne prend effet qu’à partir de l’exécution de la requête. Les paquets log des phases d’analyse syntaxique, de planification et d’analyse sont filtrés selon la valeur du paramètre définie dans la session ou l’URL (ils ne sont pas filtrés si elle n’y est pas définie) ; ils peuvent donc inclure des sources qui ne correspondent pas à l’expression régulière définie au niveau de la requête. Inversement, les entrées ignorées par une expression régulière plus restrictive définie dans la session ou l’URL ne sont pas récupérées par une expression régulière plus large définie au niveau de la requête. Définissez send_logs_source_regexp dans la session ou l’URL pour filtrer l’ensemble du cycle de vie de la requête.
Le paramètre s’applique actuellement au protocole HTTP et est ignoré par les autres interfaces.
Valeurs possibles :
None- achemine de manière transparente tous les éléments applicables (données, totaux, extrêmes, progression) vers le format de sortie et ignore ceux qui ne le sont pas (métriques, journaux), de sorte que tout fonctionne comme par défaut.EventStream- encapsule les paquets sous forme d’événements HTTP envoyés par le serveur (text/event-stream). Chaque paquet est envoyé comme un événement portant le nom correspondant :data,totals,extremes,progress,log,profile_events,exception. La progression et les autres paquets auxiliaires sont envoyés au format JSON. Comme les événements envoyés par le serveur constituent un protocole texte qui traite les sauts de ligne (y compris les retours chariot,\r) comme des délimiteurs, un bloc de données formatées est encodé en base64 dans un unique champdatade l’événement. Ce champ se décode en payload entièrement formaté, avec tous ses sauts de ligne ; leContent-Typecontient un paramètrepayload=base64pour l’indiquer. Tout format de sortie peut ainsi être transporté exactement octet pour octet, qu’il soit textuel ou binaire.JSONEachPacketBase64- chaque paquet est un objet JSON sur une ligne distincte et les données formatées sont encodées en base64, par exemple{"packet":"data","data":"eyJ4IjoxfQo="}. Convient aux formats de sortie binaires.JSONEachPacketString- chaque paquet est un objet JSON sur une ligne distincte et les données formatées sont placées dans une chaîne, par exemple{"packet":"data","data":"{\"x\":1}\n"}.
JSONEachPacketString place les octets du payload dans une chaîne JSON sans les valider ni les réencoder. Les colonnes String et FixedString peuvent contenir des octets arbitraires ; les formats de sortie textuels (tels que JSONEachRow, TSV ou CSV) peuvent donc émettre des valeurs UTF-8 non valides, tout comme le JSONEachRow natif de ClickHouse avec la valeur par défaut output_format_json_validate_utf8 = 0. Le flux NDJSON résultant n’est alors pas garanti comme étant en UTF-8 valide. Utilisez JSONEachPacketBase64 pour transporter des octets arbitraires exactement octet pour octet.
Exemple :
fsync_metadata
.sql. Activé par défaut.
Il peut être judicieux de le désactiver si le serveur possède des millions de petites tables constamment créées et supprimées.
functions_h3_default_if_invalid
geo_distance_returns_float64_on_float64_arguments
geoDistance, greatCircleDistance et greatCircleAngle sont de type Float64, celles-ci renvoient un Float64 et utilisent la double précision pour les calculs internes. Dans les versions précédentes de ClickHouse, ces fonctions renvoyaient toujours un Float32.
geotoh3_argument_order
geoToH3 accepte (lon, lat) si le paramètre est réglé sur lon_lat, et (lat, lon) s’il est réglé sur lat_lon.
glob_expansion_max_elements
h3togeo_lon_lat_result_order
handshake_timeout_ms
hedged_connection_timeout_ms
highlight_max_matches_per_row
- Entier positif.
hnsw_candidate_list_size_for_search
hsts_max_age
idle_connection_timeout
- Entier positif (0 : fermeture immédiate, après 0 seconde).
inject_random_order_for_select_without_order_by
input_format
interactive_delay
intersect_default_mode
least_greatest_legacy_null_behavior
legacy_column_name_of_tuple_literal
limit
LIMIT et accepte tout ce que LIMIT accepte, y compris les valeurs négatives (comptées à partir de la fin du résultat) et les fractions dans (0, 1) (interprétées comme une proportion du résultat).
Valeurs possibles :
- 0 — Le nombre de lignes n’est pas limité.
- Entier positif — nombre exact de lignes.
- Entier négatif — renvoie les N dernières lignes.
- Nombre réel dans l’intervalle ouvert
(0, 1)— renvoie cette fraction du résultat.
SELECT / UNION produisant un résultat. Pour une requête d’écriture (INSERT … SELECT, CREATE … AS SELECT), il ne prend effet que si le SELECT source l’inclut dans sa propre clause SETTINGS ; une valeur héritée d’un profil ou d’une session, ou définie sur l’instruction INSERT / CREATE elle-même, ne se propage pas au SELECT source — comme pour tout autre paramètre.
load_marks_asynchronously
1.
lock_acquire_timeout
DEADLOCK_AVOIDED.
Valeurs possibles :
- Entier positif (en secondes).
- 0 — Aucun délai d’expiration du verrouillage.
low_priority_query_wait_time_ms
priority), les requêtes à faible priorité attendent la fin des requêtes de priorité plus élevée. Ce paramètre définit cette durée d’attente.
make_distributed_plan
enable_parallel_replicas = 0etautomatic_parallel_replicas_mode = 0— le plan distribué assure sa propre répartition du travail ;correlated_subqueries_use_in_memory_buffer = 0;use_skip_indexes_on_data_read = 0;compile_expressions = 0;query_plan_direct_read_from_text_index = 0.
merge_table_max_tables_to_look_for_schema_inference
Merge sans schéma explicite ou lors de l’utilisation de la fonction de table merge, le schéma est inféré comme l’union d’au plus le nombre spécifié de tables correspondantes.
S’il y a davantage de tables, le schéma sera inféré à partir des premières tables, jusqu’au nombre spécifié.
mongodb_throw_on_unsupported_query
multiple_joins_try_to_keep_original_names
normalize_function_names
offset
OFFSET et accepte tout ce que OFFSET accepte, y compris les valeurs négatives et les fractions dans (0, 1).
Valeurs possibles :
- 0 — Aucune ligne n’est ignorée.
- Entier positif.
- Entier négatif.
- Nombre réel dans la plage ouverte
(0, 1)— ignore cette fraction du résultat.
SELECT / UNION qui produisent des résultats. Pour une requête d’écriture (INSERT … SELECT, CREATE … AS SELECT), il ne prend effet que si le SELECT source l’inclut dans sa propre clause SETTINGS ; une valeur héritée d’un profil ou d’une session, ou définie sur l’instruction INSERT / CREATE elle-même, ne se propage pas au SELECT source — comme pour tout autre paramètre.
order
ORDER BY à la requête en l’enveloppant dans une sous-requête. Accepte une liste arbitraire d’expressions.
Il s’agit d’un paramètre de construction de requête appliqué par le moteur à la requête analysée (en l’enveloppant dans une table dérivée). Il se combine donc avec la requête existante et fonctionne avec tous les protocoles : il peut être fourni via le paramètre d’URL HTTP, une clause SETTINGS dans la requête ou un profil utilisateur.
Il s’applique aux requêtes SELECT / UNION produisant des résultats. Pour une requête d’écriture (INSERT … SELECT, CREATE … AS SELECT), il ne prend effet que lorsque le SELECT source l’inclut dans sa propre clause SETTINGS ; une valeur héritée d’un profil ou d’une session, ou définie sur l’instruction INSERT / CREATE elle-même, ne se propage pas au SELECT source — conformément à la règle de non-propagation qui s’applique à tout autre paramètre.
output_format
default_format.
page
offset = limit * (page - 1). Ne peut être spécifié que si limit est défini et que offset ne l’est pas. Les pages sont indexées à partir de 1. Prend en charge les mêmes valeurs négatives et fractionnaires que limit et offset.
Il s’agit d’un paramètre de construction de requête appliqué par le moteur à la requête analysée (en l’enveloppant dans une table dérivée). Il se combine donc avec la requête existante et fonctionne avec tous les protocoles : il peut être fourni via le paramètre d’URL HTTP, une clause SETTINGS dans la requête ou un profil utilisateur.
Il s’applique aux requêtes SELECT / UNION qui produisent des résultats. Pour une requête d’écriture (INSERT … SELECT, CREATE … AS SELECT), il ne prend effet que lorsque le SELECT source l’inclut dans sa propre clause SETTINGS ; une valeur héritée d’un profil ou d’une session, ou définie dans l’instruction INSERT / CREATE elle-même, ne se propage pas au SELECT source — conformément à la règle de non-propagation applicable à tout autre paramètre.
paimon_target_snapshot_id
snapshot_id spécifié sans faire progresser le watermark validé.
Par défaut : -1 (désactivé)
parallelize_output_from_storages
partial_result_on_first_cancel
per_part_index_stats
poll_interval
polyglot_dialect
postgresql_fault_injection_probability
predicate_statistics_sample_rate
system.predicate_statistics_log. Lorsqu’il est défini sur N > 0, environ 1/N des requêtes sont échantillonnées (en fonction de l’identifiant de requête). 0 signifie désactivé.
prefetch_buffer_size
print_pretty_type_names
DESCRIBE et la fonction toTypeName().
Exemple :
priority
push_external_roles_in_interserver_queries
query_metric_log_interval
collect_interval_milliseconds du paramètre query_metric_log ou utilisera 1000 par défaut si ce paramètre n’est pas présent.
Pour désactiver la collecte pour une requête donnée, définissez query_metric_log_interval sur 0.
Valeur par défaut : -1
queue_max_wait_ms
rabbitmq_max_wait_ms
readonly
recursive_cte_max_steps_in_type_inference
getLeastSupertype aux parties non récursive et récursive de l’UNION ALL jusqu’à convergence. Définissez cette valeur sur 0 pour désactiver l’élargissement des types et utiliser uniquement les types de la partie non récursive.
regexp_max_matches_per_row
- Entier positif.
reject_expensive_hyperscan_regexps
remerge_sort_lowered_memory_bytes_ratio
remote_read_min_bytes_for_seek
rename_files_after_processing
- Type: String
- Valeur par défaut : Chaîne vide
file. Lorsque cette option est définie, tous les fichiers lus par la fonction de table file sont renommés selon le modèle spécifié et ses espaces réservés, uniquement si leur traitement a réussi.
Marqueurs de substitution
%a— Nom de fichier d’origine complet (p. ex., “sample.csv”).%f— Nom de fichier d’origine sans extension (p. ex., “sample”).%e— Extension du fichier d’origine avec le point (p. ex., “.csv”).%t— Horodatage (en microsecondes).%%— Signe de pourcentage (”%”).
Exemple
-
Option :
--rename_files_after_processing="processed_%f_%t%e" -
Requête :
SELECT * FROM file('sample.csv')
sample.csv est lu avec succès, le fichier sera renommé en processed_sample_1683473210851438.csv
replication_wait_for_inactive_replica_timeout
ALTER, OPTIMIZE ou TRUNCATE.
Valeurs possibles :
0— Ne pas attendre.- Entier négatif — Attendre indéfiniment.
- Entier positif — Nombre de secondes à attendre.
reserve_memory
workload.
Si la charge de travail ne dispose pas de suffisamment de mémoire, une requête ne peut pas démarrer et reste en attente jusqu’à ce que la réservation puisse être honorée.
Une valeur de 0 signifie qu’il n’y a pas de réservation.
Ce paramètre ne prend effet que si la ressource MEMORY RESERVATION est créée.
Remplace le moteur de table ReplicatedMergeTree par SharedMergeTree lors de RESTORE.
Valeur par défaut Cloud : 1.
result_overflow_mode
throw: lever une exception (par défaut).break: arrêter l’exécution de la requête et renvoyer un résultat partiel, comme si les données source étaient épuisées.
Break interrompt l’exécution uniquement au
niveau du block. Cela signifie que le nombre de lignes renvoyées est supérieur à
max_result_rows, est un multiple de max_block_size
et dépend de max_threads.
Exemple
Query
Result
rows_before_aggregation
secondary_indices_enable_bulk_filtering
select
SELECT explicite. Lorsqu’elle n’est pas vide, la requête qui produit des résultats est encapsulée dans SELECT <expr_list> FROM (<query>).
Il s’agit d’un paramètre de construction de requête appliqué par le moteur à la requête analysée (en l’encapsulant dans une table dérivée). Il se combine avec la requête existante et fonctionne avec tous les protocoles : il peut être fourni via un paramètre d’URL HTTP, une clause SETTINGS dans la requête ou un profil utilisateur.
Il détermine la forme des requêtes SELECT / UNION produisant des résultats. Pour une requête d’écriture (INSERT … SELECT, CREATE … AS SELECT), il ne prend effet que lorsque le SELECT source l’inclut dans sa propre clause SETTINGS ; une valeur héritée d’un profil ou d’une session, ou définie dans l’instruction INSERT / CREATE elle-même, ne se propage pas au SELECT source — conformément à la règle de non-propagation applicable à tout autre paramètre.
select_sequential_consistency
Le comportement de ce paramètre diffère entre SharedMergeTree et ReplicatedMergeTree. Voir la cohérence de SharedMergeTree pour plus d’informations sur le comportement de
select_sequential_consistency dans SharedMergeTree.SELECT. Nécessite que insert_quorum_parallel soit désactivé (activé par défaut).
Valeurs possibles :
- 0 — Désactivé.
- 1 — Activé.
SELECT par le client que sur les répliques qui contiennent les données de toutes les requêtes INSERT précédentes exécutées avec insert_quorum. Si le client pointe vers une réplique incomplète, ClickHouse génère une exception. La requête SELECT n’inclura pas les données qui n’ont pas encore été écrites sur le quorum de répliques.
Lorsque insert_quorum_parallel est activé (par défaut), select_sequential_consistency ne fonctionne pas. En effet, les requêtes INSERT parallèles peuvent être écrites sur différents ensembles de répliques de quorum, sans garantie qu’une seule réplique ait reçu toutes les écritures.
Voir aussi :
session_timezone
timeZone() et serverTimeZone() pour obtenir le fuseau horaire de la session et celui du serveur.
Valeurs possibles :
- N’importe quel nom de fuseau horaire de
system.time_zones, par exempleEurope/Berlin,UTCouZulu
toDateTime()sans fuseau horaire explicitement indiqué, utilisé dans la première requêteSELECT, respecte le paramètresession_timezoneet le fuseau horaire global.- Dans la deuxième requête, une valeur DateTime est analysée à partir d’une String et hérite du type et du fuseau horaire de la colonne existante
d. Ainsi, le paramètresession_timezoneet le fuseau horaire global ne sont pas pris en compte.
set_overflow_mode
throw: lever une exception (par défaut).break: arrêter l’exécution de la requête et renvoyer le résultat partiel, comme si les données source étaient épuisées.
single_join_prefer_left_table
skip_redundant_aliases_in_udf
- 1 — Les alias sont ignorés (substitués) dans les UDFs.
- 0 — Les alias ne sont pas ignorés (substitués) dans les UDFs.
sleep_after_receiving_query_ms
snappy_mode
file et url. HTTP Content-Encoding: snappy utilise toujours le format de tramage et ignore ce paramètre.
Notez que le format brut de bloc snappy produit par un seul appel à snappy::Compress (par exemple, les charges utiles du protocole distant Prometheus gérées par SnappyBasicReadBuffer) est un format binaire de transmission distinct, propre au protocole, et n’est pas contrôlé par ce paramètre.
Valeurs possibles :
basic— format de bloc Hadoop snappy. Compatible avec les fichiers lus et écrits par Hadoop. Prend en charge la lecture et l’écriture.framed— format de tramage Snappy, le format de streaming standard défini par Google. Prend en charge la lecture et l’écriture.
sort
ORDER BY simple à la requête en l’enveloppant dans une sous-requête. Accepte une liste d’identifiants ou de références positionnelles à des colonnes (entiers positifs), séparées par des virgules, avec un préfixe facultatif + (ASC) ou - (DESC). Exemple : sort=a,-b trie selon a par ordre croissant et b par ordre décroissant ; sort=1,-2 trie selon la première colonne par ordre croissant et la deuxième par ordre décroissant. Ne peut pas être combiné avec order.
Il s’agit d’un paramètre de construction de requête appliqué par le moteur à la requête analysée (en l’encapsulant dans une table dérivée). Il se combine donc avec la requête existante et fonctionne avec tous les protocoles : il peut être fourni via le paramètre d’URL HTTP, une clause SETTINGS dans la requête ou un profil utilisateur.
Il s’applique aux requêtes SELECT / UNION produisant des résultats. Pour une requête d’écriture (INSERT … SELECT, CREATE … AS SELECT), il ne prend effet que si le SELECT source l’inclut dans sa propre clause SETTINGS ; une valeur héritée d’un profil ou d’une session, ou définie sur l’instruction INSERT / CREATE elle-même, ne se propage pas au SELECT source — conformément à la règle de non-propagation qui s’applique à tout autre paramètre.
sort_overflow_mode
throw: lever une exception.break: arrêter l’exécution de la requête et renvoyer un résultat partiel.
splitby_max_substrings_includes_remaining_string
max_substrings > 0, inclut la chaîne restante dans le dernier élément du tableau résultant.
Valeurs possibles :
0- La chaîne restante ne sera pas incluse dans le dernier élément du tableau résultant.1- La chaîne restante sera incluse dans le dernier élément du tableau résultant. Il s’agit du comportement de la fonctionsplit()de Spark et de la méthode ‘string.split()’ de Python.
stop_refreshable_materialized_views_on_startup
SYSTEM START VIEWS ou SYSTEM START VIEW <name>. S’applique également aux vues nouvellement créées. N’a aucun effet sur les vues matérialisées non actualisables.
tcp_keep_alive_timeout
temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds
throw_if_no_data_to_insert
INSERT vides. Ce paramètre est activé par défaut (et déclenche une erreur en cas d’insert vide). S’applique uniquement aux INSERT effectués avec clickhouse-client ou via l’interface gRPC.
timeout_before_checking_execution_speed
min_execution_speed),
une fois le délai spécifié en secondes écoulé.
transfer_overflow_mode
throw: lever une exception (par défaut).break: arrêter l’exécution de la requête et renvoyer un résultat partiel, comme si les données source étaient épuisées.
transform_null_in
NULL ne peuvent pas être comparées, car NULL désigne une valeur indéfinie. Ainsi, la comparaison expr = NULL doit toujours renvoyer false. Avec ce paramètre, NULL = NULL renvoie true pour l’opérateur IN.
Valeurs possibles :
- 0 — La comparaison des valeurs
NULLavec l’opérateurINrenvoiefalse. - 1 — La comparaison des valeurs
NULLavec l’opérateurINrenvoietrue.
null_in :
traverse_shadow_remote_data_paths
union_default_mode
SELECT. Ce paramètre n’est utilisé que lorsqu’il est employé avec UNION sans préciser explicitement UNION ALL ou UNION DISTINCT.
Valeurs possibles :
'DISTINCT'— ClickHouse renvoie les lignes issues de la combinaison de requêtes en supprimant les lignes dupliquées.'ALL'— ClickHouse renvoie toutes les lignes issues de la combinaison de requêtes, y compris les lignes dupliquées.''— ClickHouse génère une exception lorsqu’il est utilisé avecUNION.
unknown_packet_in_send_data
variant_throw_on_type_mismatch
true(par défaut) — lever une exception.false— renvoyerNULLpour ces lignes à la place.