adaptive_write_buffer_initial_size
add_implicit_sign_column_constraint_for_collapsing_engine
true, ajoute une contrainte implicite à la colonne sign d’une table CollapsingMergeTree
ou VersionedCollapsingMergeTree afin de n’autoriser que des valeurs valides (1 et -1).
alter_column_secondary_index_mode
ALTER qui modifient des colonnes couvertes par des indices secondaires, ainsi que l’action à entreprendre si elles sont autorisées. Par défaut, ces commandes ALTER sont autorisées et les indices sont reconstruits.
Valeurs possibles :
rebuild(par défaut) : Reconstruit tous les indices secondaires affectés par la colonne dans la commandeALTER.throw: Empêche toutALTERde colonnes couvertes par des indices secondaires explicites en levant une exception. Les indices implicites ne sont pas soumis à cette restriction et seront reconstruits.drop: Supprime les indices secondaires dépendants. Les nouvelles parts n’auront pas ces indices, et il faudra exécuterMATERIALIZE INDEXpour les recréer.compatibility: Reproduit le comportement d’origine :throwsurALTER ... MODIFY COLUMNetrebuildsurALTER ... UPDATE/DELETE.ignore: Destiné à un usage expert. Laisse les indices dans un état incohérent, ce qui peut entraîner des résultats de la requête incorrects.
apply_patches_on_merge
assign_part_uuids
auto_statistics_types
minmax est obsolète : il s’agit d’un sous-ensemble de basic, qu’il convient d’utiliser à la place.
background_task_preferred_step_execution_time_ms
clean_deleted_rows
clone_replica_zookeeper_create_get_part_batch_size
compatibility_allow_sampling_expression_not_in_primary_key
compute_exact_num_defaults_for_sparse_columns
optimize_trivial_count_with_sparsity_filter,
qui utilise le compteur num_defaults persisté (les colonnes Nullable
nécessitent également nullable_serialization_version = 'allow_sparse').
Le laisser désactivé permet de conserver des insertions/fusions aussi rapides qu’auparavant ; l’activer
ajoute un parcours en O(rows) pour chaque colonne éligible à la sparsité.
deduplicate_merge_projection_mode
ignore est uniquement prévue pour des raisons de
compatibilité et peut entraîner des résultats incorrects. Sinon, si cela est
autorisé, ce paramètre définit l’action à effectuer lors de la fusion des
projections : les supprimer ou les reconstruire. Le MergeTree classique ignore
donc ce paramètre. Ce paramètre contrôle également OPTIMIZE DEDUPLICATE, mais
il s’applique à tous les membres de la famille MergeTree. Comme l’option
lightweight_mutation_projection_mode, il s’agit également d’un paramètre au
niveau des parts.
Valeurs possibles :
ignorethrowdroprebuild
deduplication_hashes_cache_update_wait_ms
deduplication_hashes soit actualisé vers une
version plus récente avant de vérifier à nouveau s’il contient des blocs déjà insérés. Le cache reflète le
répertoire deduplication_hashes dans ClickHouse Keeper afin que les insertions puissent détecter les doublons sans
aller-retour vers Keeper.
default_compression_codec
- Codec de compression défini pour la colonne dans la définition de la table
- Codec de compression défini dans
default_compression_codec(ce paramètre) - Codec de compression par défaut défini dans les paramètres
compressionValeur par défaut : une chaîne vide (non définie).
disk
dynamic_serialization_version
v1v2v3
enforce_index_structure_match_on_partition_manipulation
ATTACH/MOVE/REPLACE PARTITION), les index et les projections doivent être
identiques entre la table source et la table de destination. Sinon, la table de destination
peut contenir un surensemble des index et projections de la table source.
execute_merges_on_single_replica_time_threshold
- Tout entier positif.
finished_mutations_to_keep
force_read_through_cache_for_merges
initialization_retry_period
kill_threads
lightweight_mutation_projection_mode
DELETE lightweight ne fonctionne pas pour les tables avec
des projections. Cela s’explique par le fait que des lignes d’une projection peuvent être affectées par une
opération DELETE. La valeur par défaut est donc throw. Cependant, cette
option peut modifier ce comportement. Avec la valeur drop ou rebuild,
les deletes fonctionneront avec les projections. drop supprimera la projection, ce qui
peut être rapide pour la requête en cours puisque la projection est supprimée, mais plus lent pour les
requêtes futures puisqu’aucune projection n’est attachée. rebuild reconstruira la
projection, ce qui peut affecter les performances de la requête en cours, mais
peut accélérer les requêtes futures. L’avantage est que ces options ne
fonctionnent qu’au niveau des parts, ce qui signifie que les projections dans la part qui ne sont
pas touchées resteront intactes au lieu de déclencher une action comme
drop ou rebuild.
Valeurs possibles :
throwdroprebuild
load_existing_rows_count_for_old_parts
truefalse
lock_acquire_timeout_for_background_operations
mutation_workload
workload pour les
mutations d’arrière-plan de cette table. Si elle n’est pas spécifiée (chaîne vide), le
paramètre du serveur mutation_workload est utilisé à la place.
Voir aussi
non_replicated_deduplication_window
- Tout entier positif.
0(désactive la déduplication).
notify_newest_block_number
nullable_serialization_version
Nullable(T).
Valeurs possibles :
-
basic — Utilise la sérialisation standard pour
Nullable(T). -
allow_sparse — Autorise
Nullable(T)à utiliser un encodage clairsemé.
object_serialization_version
v1v2v3
v3 permet de modifier la version de sérialisation des données partagées.
old_parts_lifetime
- Tout entier positif.
old_parts_lifetime secondes.
Les parts inactives sont supprimées si elles ne sont pas utilisées par les requêtes en cours, c’est-à-dire si
le refcount de la part est égal à 1.
fsync n’est pas appelé pour les nouvelles parts. Pendant un certain temps, celles-ci n’existent donc que
dans la RAM du serveur (cache de l’OS). Si le serveur redémarre inopinément, les nouvelles
parts peuvent être perdues ou endommagées. Pour protéger les données, les parts inactives ne sont pas supprimées
immédiatement.
Au démarrage, ClickHouse vérifie l’intégrité des parts. Si la part fusionnée
est endommagée, ClickHouse rétablit les parts inactives dans la liste des parts actives,
puis les fusionne de nouveau plus tard. La part endommagée est alors renommée (le préfixe broken_
est ajouté) et déplacée vers le dossier detached. Si la part fusionnée n’est
pas endommagée, les parts inactives d’origine sont alors renommées (le préfixe ignored_
est ajouté) et déplacées vers le dossier detached.
La valeur par défaut de dirty_expire_centisecs (un paramètre du noyau Linux) est de 30
secondes (durée maximale pendant laquelle les données écrites sont conservées uniquement en RAM), mais sous
forte charge du système de disque, les données peuvent être écrites bien plus tard. D’après les tests,
une valeur de 480 secondes a été retenue pour old_parts_lifetime, durée pendant laquelle il est
garanti qu’une nouvelle part sera écrite sur disque.
optimize_row_order
DateTime64, ne devraient pas tirer parti de ce paramètre.
packed_skip_index_max_bytes
skp_idx.packed par part au lieu d’être écrit dans un fichier
skp_idx_<name>.idx2 / .mrk2 distinct. Les sous-flux plus volumineux conservent le
schéma legacy, avec un fichier par sous-flux. La décision est prise indépendamment pour chaque
sous-flux au moment de l’écriture, de sorte qu’une même part peut contenir de petits indices
(par ex. minmax) empaquetés et de plus gros (par ex. un bloom_filter volumineux) stockés
dans des fichiers distincts. Définissez cette valeur sur 0 pour désactiver entièrement l’empaquetage
(valeur par défaut).
Chaque sous-flux d’index de saut se compose en réalité d’un fichier de données et d’un
fichier de marks ; les deux sont mis en mémoire tampon jusqu’au seuil avant qu’il soit
décidé ou non de les déverser sur disque. Ainsi, le pic de mémoire pendant l’écriture évolue selon
2 * packed_skip_index_max_bytes * (nombre de sous-flux qui restent en dessous du seuil).
Les indices full-text ne sont pas pris en charge par ce paramètre et ne sont jamais empaquetés.
L’empaquetage réduit la pression sur les inodes lorsque de nombreux indices de saut sont
définis sur une table (par exemple avec add_minmax_index_for_numeric_columns).
Le format sur disque est auto-descriptif : les lecteurs détectent skp_idx.packed et
servent de manière transparente les sous-flux empaquetés qu’il contient. La modification
de ce paramètre n’affecte que les parts nouvellement écrites ; les parts existantes
conservent le schéma qu’elles avaient au moment de l’écriture.
part_minmax_index_columns
partition_key_only— seules les colonnes de la clé de partition sont suivies.with_block_number_offset— les colonnes de la clé de partition, ainsi que les colonnes virtuelles persistées_block_numberet_block_offset. Permet un élagage au niveau des parts à l’aide de ces colonnes.
propagate_types_serialization_versions_to_nested_types
ratio_of_defaults_for_sparse_serialization
ratio_of_defaults_for_sparse_serialization
sur une valeur inférieure à 1.0. Si la valeur est supérieure ou égale à 1.0,
les colonnes seront toujours écrites en utilisant la sérialisation complète ordinaire.
Valeurs possibles :
- Float entre
0et1pour activer la sérialisation creuse 1.0(ou plus) si vous ne souhaitez pas utiliser la sérialisation creuse
s de la table suivante contient une chaîne vide dans 95 % des
lignes. Dans my_regular_table, nous n’utilisons pas de sérialisation creuse, et dans
my_sparse_table, nous définissons ratio_of_defaults_for_sparse_serialization sur
0.95 :
s de my_sparse_table occupe moins d’espace disque :
serialization_kind de la table system.parts_columns :
s ont été stockées avec la sérialisation creuse :
reduce_blocking_parts_sleep_ms
replace_long_file_name_to_hash
replicated_can_become_leader
true, les répliques des tables répliquées sur ce nœud tenteront de devenir leader.
Valeurs possibles :
truefalse
search_orphaned_parts_disks
- any - le périmètre n’est pas limité.
- local - le périmètre est limité aux disques locaux.
- none - périmètre vide, ne pas rechercher
serialization_info_version
serialization.json.
Ce paramètre est nécessaire pour assurer la compatibilité lors des mises à niveau du cluster.
Valeurs possibles :
basic- Format de base.with_types- Format avec le champ supplémentairetypes_serialization_versions, permettant des versions de sérialisation par type. Cela permet à des paramètres commestring_serialization_versionde prendre effet.
basic afin que les nouveaux serveurs produisent des
data parts compatibles avec les anciens serveurs. Une fois la mise à niveau terminée,
basculez vers WITH_TYPES pour activer les versions de sérialisation par type.
Lorsqu’il est activé (par défaut), les colonnes Array dont les noms comportent des points et partagent un préfixe commun (par ex. n.a et n.b)
sont traitées comme faisant partie d’une structure Nested : elles partagent un unique fichier d’offsets sur le disque (par ex. n.size0),
et la taille de leurs tableaux est vérifiée pour s’assurer qu’elle est identique lors de l’INSERT.
Lorsqu’il est désactivé, chaque colonne Array dispose de son propre fichier d’offsets, les noms comportant des points n’ont pas de
sémantique particulière, et une colonne scalaire peut coexister avec des colonnes Array dont les noms comportent des points et partagent le même préfixe
(par ex. n UInt32 aux côtés de n.a Array(String)). Ce paramètre est immuable après la création de la table.
simultaneous_parts_removal_limit
simultaneous_parts_removal_limit au cours d’une itération.
simultaneous_parts_removal_limit défini sur 0 signifie qu’il n’y a pas de limite.
storage_policy
string_serialization_version
String de premier niveau.
Ce paramètre ne prend effet que lorsque serialization_info_version est défini sur “with_types”.
Lorsqu’il est défini sur with_size_stream, les colonnes String de premier niveau sont sérialisées avec une
sous-colonne .size distincte qui stocke les longueurs des chaînes, au lieu de les inclure inline. Cela permet d’avoir de véritables
sous-colonnes .size et peut améliorer l’efficacité de la compression.
Les types String imbriqués (par exemple, dans Nullable, LowCardinality, Array ou Map)
ne sont pas affectés, sauf lorsqu’ils apparaissent dans un Tuple.
Valeurs possibles :
single_stream— Format de sérialisation standard avec tailles inline.with_size_stream— Flux de tailles distinct pour les colonnesStringde premier niveau.
temporary_directories_lifetime
try_fetch_recompressed_part_timeout
- Tout entier positif.
ttl_only_drop_parts
TTL.
Lorsque ttl_only_drop_parts est désactivé (par défaut), seules les lignes ayant
expiré selon leurs paramètres TTL sont supprimées.
Lorsque ttl_only_drop_parts est activé, la part entière est supprimée si toutes
les lignes de cette part ont expiré conformément à leurs paramètres TTL.
wait_for_unique_parts_send_before_shutdown_ms
zookeeper_session_expiration_check_period
- Tout entier positif.