Skip to main content
Essas configurações estão disponíveis em system.merge_tree_settings e são geradas automaticamente a partir do código-fonte do ClickHouse.

min_absolute_delay_to_close

Atraso absoluto mínimo para encerrar, parar de atender requisições e não retornar Ok durante a verificação de status.

min_columns_to_activate_adaptive_write_buffer

Permite reduzir o uso de memória em tabelas com muitas colunas ao usar buffers de gravação adaptativos. O valor é comparado ao número de streams que uma parte wide grava, que pode exceder significativamente o número de colunas: um Map com muitos buckets ou um Array ou Tuple profundamente aninhado grava muitos streams para uma única coluna, e um buffer de gravação é alocado por stream. Valores possíveis:
  • 0 - desabilitado
  • 1 - sempre habilitado

min_compress_block_size

Tamanho mínimo dos blocos de dados não comprimidos necessário para a compressão ao gravar a próxima mark. Você também pode especificar essa configuração nas configurações globais (consulte a configuração min_compress_block_size ). O valor especificado quando a tabela é criada substitui o valor global dessa configuração.

min_index_granularity_bytes

Tamanho mínimo permitido dos grânulos de dados, em bytes. Serve como proteção contra a criação acidental de tabelas com index_granularity_bytes muito baixo.

min_marks_to_honor_max_concurrent_queries

O número mínimo de marcas lidas pela consulta para que a configuração max_concurrent_queries seja aplicada.
As consultas ainda serão limitadas por outras configurações de max_concurrent_queries.
Valores possíveis:
  • Inteiro positivo.
  • 0 — Desabilitado (o limite de max_concurrent_queries não se aplica a nenhuma consulta).
Exemplo

min_merge_bytes_to_use_direct_io

O volume mínimo de dados da operação de mesclagem necessário para usar acesso de E/S direta ao disco de armazenamento. Ao fazer a mesclagem de partes de dados, o ClickHouse calcula o volume total de armazenamento de todos os dados que serão mesclados. Se o volume exceder min_merge_bytes_to_use_direct_io bytes, o ClickHouse lê e grava os dados no disco de armazenamento usando a interface de E/S direta (opção O_DIRECT). Se min_merge_bytes_to_use_direct_io = 0, a E/S direta será desabilitada.

min_partition_age_to_force_merge_seconds

Faz o merge das partes de uma partição quando todas elas forem mais antigas que este valor, ou seja, quando a partição não recebe mais inserts. Diferentemente de min_age_to_force_merge_seconds com min_age_to_force_merge_on_partition_only, a partição não precisa caber em um único merge: cada merge continua respeitando max_bytes_to_merge_at_max_space_in_pool. Funciona com os selectors de mesclagem Simple e StochasticSimple. A idade comparada aqui é a da parte mais nova da partição (now - modification_time, minimizada entre suas partes), de modo que a regra só é armada depois que todas as partes ultrapassam esse valor de idade. Qualquer parte nova a redefine: um insert, uma mutation e também cada merge que a própria configuração atribui, já que a parte resultante do merge é nova. Portanto, o forçamento é desarmado assim que um merge forçado é concluído e só é rearmado depois que esse valor decorre novamente sem novas partes, de modo que uma partição que precisa de vários merges é compactada em rodadas sucessivas espaçadas por esse intervalo, e não em uma única passagem contínua. O forçamento funciona exatamente como min_age_to_force_merge_seconds: ele dispensa a exigência de proporção de tamanho que normalmente impede a atribuição de um merge desbalanceado e também dispensa o piso min_parts_to_merge_at_once, de modo que um merge forçado pode abranger menos partes do que esse piso exige. Nenhuma outra heurística é desativada: merge_selector_window_size continua limitando quais partes são examinadas, e merge_selector_enable_heuristic_to_remove_small_parts_at_right continua removendo uma parte pequena ao final de um intervalo selecionado de três partes ou mais. Qualquer uma delas que precise ser desativada para um determinado workload deve ser desativada explicitamente por meio de sua própria configuração. Com os selectors de mesclagem Simple e StochasticSimple, esta configuração não pode ser combinada com min_age_to_force_merge_seconds em conjunto com min_age_to_force_merge_on_partition_only. Esse par faz o merge de uma partição inteira de uma só vez, e somente um merge desse tipo é marcado como final — é justamente isso que permite a um ReplacingMergeTree executar CLEANUP; forçar merges regulares pela idade da partição o impediria. Use o par para partições que cabem em um único merge e esta configuração para as que não cabem. Os demais selectors ignoram esta configuração, portanto a combinação é aceita com eles. Valores possíveis:
  • Inteiro positivo.

min_parts_to_merge_at_once

Quantidade mínima de partes de dados que o selector de mesclagem pode selecionar para mesclar de uma só vez (configuração de nível avançado; não altere se você não entende o que ela faz). 0 - desabilitado. Funciona para os selectors de mesclagem Simple e StochasticSimple.

min_replicated_logs_to_keep

Mantém aproximadamente esse número dos registros mais recentes no log do ZooKeeper, mesmo que estejam obsoletos. Isso não afeta o funcionamento das tabelas: é usado apenas para diagnosticar o log do ZooKeeper antes da limpeza. Valores possíveis:
  • Qualquer inteiro positivo.

min_unreserved_disk_space_for_merge

Mantém a quantidade especificada de espaço em disco não reservado (em bytes) fora do alcance das mesclagens em segundo plano, para que elas não deixem os inserts sem espaço. Essa quantidade é subtraída do espaço livre, e o limite do tamanho total das partes de origem de uma mesclagem é derivado do restante, com um fator de segurança adicional, de modo que a maior mesclagem permitida fique bem abaixo desse valor. O limite diminui à medida que o disco se enche e chega a zero quando o espaço livre cai para essa quantidade; a partir daí, nenhuma mesclagem em segundo plano é selecionada. (0 significa desabilitado) Ao contrário de keep_free_space_bytes, o espaço protegido continua utilizável pelo próprio ClickHouse — ele apenas fica fora do agendamento de mesclagens. As mutações não são limitadas por ele e ainda podem consumir o espaço protegido, e a configuração não tem efeito em discos com espaço ilimitado (como armazenamento de objetos). Mesclagens iniciadas por OPTIMIZE com FINAL ou com uma PARTITION explícita ignoram esta configuração. Mesclagens que descartam partes totalmente expiradas são selecionadas sempre que o limite está acima de zero, independentemente do tamanho, e nada é selecionado quando ele chega a zero. Toda mesclagem reserva pelo menos 1 MiB; portanto, uma mesclagem iniciada com menos de 1 MiB disponível acima do espaço protegido pode ocupar até 1 MiB dele. Uma réplica ReplicatedMergeTree também executa os DROPs enfileirados quando seu próprio limite é zero, se um TTL de linha sem WHERE for o único TTL da tabela. Com um TTL com GROUP BY, WHERE ou de coluna, esse DROP reescreve as linhas restantes: o ReplicatedMergeTree o adia de acordo com o tamanho de suas partes, mas o MergeTree não faz isso e pode gravá-las no espaço protegido. Quando o limite é zero, um OPTIMIZE simples não atribui nada: ele não tem efeito ou lança CANNOT_ASSIGN_OPTIMIZE com optimize_throw_if_noop = 1. Use FINAL ou uma PARTITION explícita para mesclar no espaço protegido. No ReplicatedMergeTree, essa isenção é registrada na entrada de log de replicação somente quando a configuração é diferente de zero na réplica que a enfileira; portanto, um OPTIMIZE enfileirado enquanto ela era 0 continua sendo executado sob a margem de reserva. ALTER TABLE ... MODIFY SETTING não é replicado; portanto, atribua o mesmo valor a todas as réplicas: uma réplica com uma margem de reserva maior a reaplica às mesclagens atribuídas em outras réplicas e pode adiá-las indefinidamente. Mantenha o valor em 0 até que todas as réplicas executem uma versão que reconheça a configuração — uma réplica mais antiga não consegue interpretar as entradas de log gravadas para as mesclagens isentas e deixa de fazer pull de novas entradas para a tabela, inclusive as de inserts comuns.