max_insert_block_size
max_insert_block_size_rows
Taille maximale des blocs (en nombre de lignes) à former pour l’insertion dans une table.
Ce paramètre contrôle la formation des blocs dans deux contextes :
-
Analyse des formats : lorsque le serveur analyse des formats d’entrée orientés lignes (CSV, TSV, JSONEachRow, etc.) depuis n’importe quelle interface (HTTP, clickhouse-client avec des données intégrées, gRPC, protocole wire de PostgreSQL), les blocs sont émis lorsque :
- Les deux seuils min_insert_block_size_rows AND min_insert_block_size_bytes sont atteints, OR
- L’un des deux seuils max_insert_block_size_rows OR max_insert_block_size_bytes est atteint
-
Opérations INSERT : pendant les requêtes INSERT et lorsque les données transitent par des vues matérialisées, le comportement de ce paramètre dépend de
use_strict_insert_block_limits:-
Lorsqu’il est activé : les blocs sont émis lorsque :
- Seuils minimums (AND) : les deux seuils min_insert_block_size_rows AND min_insert_block_size_bytes sont atteints
- Seuils maximums (OR) : l’un des deux seuils max_insert_block_size_rows OR max_insert_block_size_bytes est atteint
- Lorsqu’il est désactivé : les blocs sont émis lorsque min_insert_block_size_rows OR min_insert_block_size_bytes est atteint. Les paramètres max_insert_block_size ne sont pas appliqués.
-
Lorsqu’il est activé : les blocs sont émis lorsque :
- Entier positif.
max_insert_block_size_bytes
- Entier positif.
- 0 — le paramètre n’entre pas en compte dans la formation des blocs.
max_insert_delayed_streams_for_parallel_write
50.
max_insert_threads
INSERT SELECT.
Valeurs possibles :
- 0 (ou 1) — aucune exécution en parallèle de
INSERT SELECT. - Entier positif, supérieur à 1.
1pour les nœuds avec 8 Gio de mémoire2pour les nœuds avec 16 Gio de mémoire4pour les nœuds plus grands
INSERT SELECT n’a d’effet que si la partie SELECT est elle aussi exécutée en parallèle ; voir le paramètre max_threads.
Des valeurs plus élevées entraîneront une utilisation de la mémoire plus importante.
max_insert_threads_min_free_memory_per_thread
max_threads_min_free_memory_per_thread, mais appliqué à max_insert_threads plutôt qu’à max_threads. La valeur par défaut est plus élevée, car les pipelines d’insertion utilisent généralement des buffers par thread plus volumineux (parts MergeTree, blocs de compression) que les pipelines de lecture.
Si la quantité de mémoire libre est inférieure à max_insert_threads multiplié par cette valeur, max_insert_threads est réduit en conséquence, avec un minimum de 1.
Définissez cette valeur sur 0 pour désactiver cette limite.