Ces paramètres sont disponibles dans system.settings et sont générés automatiquement à partir du source.
insert_allow_materialized_columns
Si ce paramètre est activé, les colonnes matérialisées sont autorisées dans INSERT.
Active ou désactive la déduplication des blocs pour INSERT (pour les tables Replicated*).
Valeurs possibles :
- 0 — Désactivé.
- 1 — Activé.
Par défaut, les blocs insérés dans les tables répliquées par l’instruction INSERT sont dédupliqués (voir Réplication des données).
Pour les tables répliquées, seuls les 100 blocs les plus récents de chaque partition sont dédupliqués par défaut (voir replicated_deduplication_window, replicated_deduplication_window_seconds).
Pour les tables non répliquées, voir non_replicated_deduplication_window.
insert_deduplication_token
Ce paramètre permet à l’utilisateur de définir sa propre logique de déduplication dans MergeTree/ReplicatedMergeTree.
Par exemple, en fournissant une valeur unique pour ce paramètre dans chaque instruction INSERT,
l’utilisateur peut éviter que les mêmes données insérées soient dédupliquées.
Valeurs possibles :
insert_deduplication_token est utilisé pour la déduplication uniquement lorsqu’il n’est pas vide.
Pour les tables répliquées, par défaut, seules les 100 insertions les plus récentes de chaque partition sont dédupliquées (voir replicated_deduplication_window, replicated_deduplication_window_seconds).
Pour les tables non répliquées, voir non_replicated_deduplication_window.
insert_deduplication_token est géré par partition. Ainsi, plusieurs partitions écrites par une même insertion peuvent porter le même jeton. Sans jeton, la somme de contrôle du contenu par défaut est calculée sur l’ensemble du bloc inséré ; une insertion n’est donc dédupliquée que si l’intégralité de ses données correspond à une insertion précédente (une nouvelle tentative), et non si seules les lignes d’une partition donnée coïncident avec celles d’une autre insertion.
Exemple :
Active ou désactive l’insertion de valeurs par défaut à la place de NULL dans les colonnes de type non Nullable.
Si le type de la colonne n’est pas Nullable et que ce paramètre est désactivé, l’insertion de NULL provoque une exception. Si le type de la colonne est Nullable, les valeurs NULL sont insérées telles quelles, indépendamment de ce paramètre.
Ce paramètre s’applique aux requêtes INSERT … SELECT. Notez que les sous-requêtes SELECT peuvent être concaténées avec la clause UNION ALL.
Valeurs possibles :
- 0 — L’insertion de
NULL dans une colonne non Nullable provoque une exception.
- 1 — La valeur par défaut de la colonne est insérée à la place de
NULL.
S’il est différent de 0, indique le shard de la table Distributed dans lequel les données seront insérées de manière synchrone.
Si la valeur de insert_shard_id est incorrecte, le serveur lèvera une exception.
Pour obtenir le nombre de shards dans requested_cluster, vous pouvez vérifier la config du serveur ou utiliser cette requête :
Valeurs possibles :
- 0 — Désactivé.
- N’importe quel nombre de
1 à shards_num de la table Distributed correspondante.
Exemple
Requête :
Résultat :