max_insert_block_size
max_insert_block_size_rows
O tamanho máximo dos blocos (em número de linhas) a serem formados para inserção em uma tabela.
Essa configuração controla a formação de blocos em dois contextos:
-
Análise de formatos: Quando o servidor analisa formatos de entrada baseados em linhas (CSV, TSV, JSONEachRow etc.) de qualquer interface (HTTP, clickhouse-client com dados inline, gRPC, PostgreSQL wire protocol), os blocos são emitidos quando:
- Ambos min_insert_block_size_rows AND min_insert_block_size_bytes são atingidos, OR
- max_insert_block_size_rows OR max_insert_block_size_bytes é atingido
-
Operações de INSERT: Durante consultas INSERT e quando os dados fluem por visões materializadas, o comportamento dessa configuração depende de
use_strict_insert_block_limits:-
Quando ativado: Os blocos são emitidos quando:
- Limiares mínimos (AND): Ambos min_insert_block_size_rows AND min_insert_block_size_bytes são atingidos
- Limiares máximos (OR): max_insert_block_size_rows OR max_insert_block_size_bytes é atingido
- Quando desativado: Os blocos são emitidos quando min_insert_block_size_rows OR min_insert_block_size_bytes é atingido. As configurações max_insert_block_size não são aplicadas.
-
Quando ativado: Os blocos são emitidos quando:
- Inteiro positivo.
max_insert_block_size_bytes
- Inteiro positivo.
- 0 — a configuração não participa da formação de blocos.
max_insert_delayed_streams_for_parallel_write
50.
max_insert_threads
INSERT SELECT.
Valores possíveis:
- 0 (ou 1) —
INSERT SELECTsem execução em paralelo. - Inteiro positivo, maior que 1.
1para nós com 8 GiB de memória2para nós com 16 GiB de memória4para nós maiores
INSERT SELECT em paralelo só tem efeito se a parte SELECT for executada em paralelo; consulte a configuração max_threads.
Valores mais altos levam a maior uso de memória.
max_insert_threads_min_free_memory_per_thread
max_threads_min_free_memory_per_thread, mas aplicado a max_insert_threads em vez de max_threads. O valor padrão é mais alto porque pipelines de inserção normalmente mantêm buffers maiores por thread (partes da MergeTree, blocos de compressão) do que pipelines de leitura.
Se a quantidade de memória livre for menor que max_insert_threads multiplicado por esse valor, max_insert_threads será reduzido para se ajustar, até o mínimo de 1.
Defina como 0 para desabilitar esse limite.