max_insert_block_size
max_insert_block_size_rows
Максимальный размер блоков (по числу строк), формируемых для вставки в таблицу.
Этот параметр управляет формированием блоков в двух контекстах:
-
Разбор форматов: когда сервер разбирает входные построчные форматы (CSV, TSV, JSONEachRow и т. д.) через любой интерфейс (HTTP, clickhouse-client со встроенными данными, gRPC, PostgreSQL wire protocol), блоки формируются, когда:
- Достигнуты оба порога: min_insert_block_size_rows И min_insert_block_size_bytes, ИЛИ
- Достигнут любой из порогов: max_insert_block_size_rows ИЛИ max_insert_block_size_bytes
-
Операции INSERT: во время запросов INSERT и при прохождении данных через materialized views поведение этого параметра зависит от
use_strict_insert_block_limits:-
Когда включено: блоки формируются, когда:
- Минимальные пороги (И): достигнуты оба значения min_insert_block_size_rows И min_insert_block_size_bytes
- Максимальные пороги (ИЛИ): достигнуто либо значение max_insert_block_size_rows, либо max_insert_block_size_bytes
- Когда отключено: блоки формируются, когда достигнуто значение min_insert_block_size_rows ИЛИ min_insert_block_size_bytes. Параметры max_insert_block_size не применяются.
-
Когда включено: блоки формируются, когда:
- Положительное целое число.
max_insert_block_size_bytes
- Положительное целое число.
- 0 — настройка не участвует в формировании блоков.
max_insert_delayed_streams_for_parallel_write
50.
max_insert_threads
INSERT SELECT.
Возможные значения:
- 0 (или 1) — для
INSERT SELECTпараллельное выполнение не используется. - Положительное целое число, больше 1.
1для узлов с 8 GiB памяти2для узлов с 16 GiB памяти4для более крупных узлов
INSERT SELECT работает только в том случае, если часть SELECT также выполняется параллельно, см. настройку max_threads.
Более высокие значения приводят к большему использованию памяти.
max_insert_threads_min_free_memory_per_thread
max_threads_min_free_memory_per_thread, но применяется к max_insert_threads, а не к max_threads. Значение по умолчанию выше, поскольку конвейеры вставки обычно используют более крупные буферы на поток (части MergeTree, блоки сжатия), чем конвейеры чтения.
Если объём свободной памяти меньше, чем max_insert_threads, умноженное на это значение, max_insert_threads уменьшается до допустимого значения, но не ниже 1.
Установите 0, чтобы отключить это ограничение.