Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

configurações de sessão merge_tree_*

Estas configurações estão disponíveis em system.settings e são geradas automaticamente a partir do código-fonte.

merge_tree_coarse_index_granularity

Tipo
UInt64
Padrão
8

Ao procurar dados, o ClickHouse verifica as marcas dos dados no arquivo de índice. Se o ClickHouse identificar que as chaves necessárias estão em determinado intervalo, ele divide esse intervalo em merge_tree_coarse_index_granularity subintervalos e busca essas chaves neles, recursivamente.

Valores possíveis:

  • Qualquer número inteiro par positivo.

merge_tree_compact_parts_min_granules_to_multibuffer_read

Somente no ClickHouse Cloud
Tipo
UInt64
Padrão
16

Só tem efeito no ClickHouse Cloud. Número de grânulos em uma stripe de uma parte compacta de tabelas MergeTree para usar o leitor multibuffer, que oferece suporte a leitura paralela e prefetch. No caso de leitura a partir de um sistema de arquivos remoto, o uso do leitor multibuffer aumenta o número de requisições de leitura. Uma parte é lida com um único buffer quando contém menos grânulos do que esse limite e também menos grânulos do que o número de colunas que estão sendo lidas, porque, nesse caso, o leitor de buffer único emite menos requisições de leitura do que o leitor multibuffer.

merge_tree_determine_task_size_by_prewhere_columns

Tipo
Bool
Padrão
1

Define se deve usar apenas o tamanho das colunas de prewhere para determinar o tamanho da tarefa de leitura.

merge_tree_generic_exclusion_search_max_steps

Tipo
UInt64
Padrão
0
Histórico de versões
VersãoValor padrãoComentário
26.70Nova configuração para limitar o número de passos da busca genérica por exclusão no índice da chave primária.

Quando um filter não pode ser avaliado como um único intervalo contínuo da chave primária, por exemplo, quando usa colunas-chave diferentes da primeira, o ClickHouse executa um algoritmo iterativo de busca genérica por exclusão sobre as marcas do índice. O mesmo algoritmo é usado na análise do índice de texto. Esta configuração limita o número de passos (verificações do índice) que o algoritmo realiza em cada parte de dados.

O orçamento é consumido primeiro nos maiores intervalos de marcas restantes. Quando ele se esgota, os intervalos que não foram totalmente analisados são aceitos como um todo, de modo que a consulta continua correta, mas pode ler mais grânulos do que uma busca sem limite selecionaria. Um orçamento menor acelera a análise do índice, ao custo de ler mais dados. O limite é aproximado, e não um teto estrito para o custo da análise: a busca pode ultrapassá-lo em aproximadamente uma rodada de divisão e, quando a parte já está dividida em muitos intervalos (por exemplo, pelo cache de condições da consulta), cada um deles é verificado pelo menos uma vez, independentemente do limite.

O número de passos executados pela busca em cada parte de dados é informado nas mensagens de log da consulta no nível trace, e os profile events IndexGenericExclusionSearchStepLimitReached e TextIndexGenericExclusionSearchStepLimitReached contam quantas vezes o orçamento foi esgotado.

O valor padrão 0 significa passos ilimitados.

Possible values:

  • 0 para passos ilimitados ou qualquer número inteiro positivo.

merge_tree_max_bytes_to_use_cache

Tipo
UInt64
Padrão
2013265920

Se o ClickHouse precisar ler mais de merge_tree_max_bytes_to_use_cache bytes em uma consulta, ele não usará o cache de blocos não comprimidos.

O cache de blocos não comprimidos armazena dados extraídos para consultas. O ClickHouse usa esse cache para acelerar as respostas a consultas pequenas repetidas. Essa configuração evita que o cache seja prejudicado por consultas que leem uma grande quantidade de dados. A configuração do servidor uncompressed_cache_size define o tamanho do cache de blocos não comprimidos.

Valores possíveis:

  • Qualquer inteiro positivo.

merge_tree_max_rows_to_use_cache

Tipo
UInt64
Padrão
1048576

Se o ClickHouse precisar ler mais de merge_tree_max_rows_to_use_cache linhas em uma consulta, ele não usará o cache de blocos não comprimidos.

O cache de blocos não comprimidos armazena dados extraídos durante a execução de consultas. O ClickHouse usa esse cache para acelerar a resposta a consultas pequenas executadas repetidamente. Essa configuração protege o cache contra a degradação causada por consultas que leem uma grande quantidade de dados. A configuração de servidor uncompressed_cache_size define o tamanho do cache de blocos não comprimidos.

Valores possíveis:

  • Qualquer número inteiro positivo.

merge_tree_min_bytes_for_concurrent_read

Tipo
UInt64
Padrão
251658240

Se o número de bytes a serem lidos de um arquivo de uma tabela do motor MergeTree exceder merge_tree_min_bytes_for_concurrent_read, o ClickHouse tentará ler esse arquivo de forma concorrente usando várias threads.

Valor possível:

  • Inteiro positivo.

merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem

Tipo
UInt64
Padrão
0
Histórico de versões
VersãoValor padrãoComentário
24.100A configuração está obsoleta

O número mínimo de bytes que devem ser lidos de um arquivo para que o motor MergeTree possa paralelizar a leitura ao fazer leitura a partir do sistema de arquivos remoto. Não recomendamos o uso desta configuração.

Valores possíveis:

  • Inteiro positivo.

merge_tree_min_bytes_for_seek

Tipo
UInt64
Padrão
0

Se a distância entre dois blocos de dados a serem lidos em um arquivo for menor que merge_tree_min_bytes_for_seek bytes, o ClickHouse lerá sequencialmente um intervalo do arquivo que contenha ambos os blocos, evitando assim uma operação adicional de seek.

Valores possíveis:

  • Qualquer inteiro positivo.

merge_tree_min_bytes_per_read_stream

Tipo
UInt64
Padrão
65536
Histórico de versões
VersãoValor padrãoComentário
26.865536Nova configuração para limitar o número de streams em varreduras não ordenadas de colunas estreitas do `MergeTree` local comum, usando um modelo de custo de raiz quadrada e reduzindo a sobrecarga por stream em máquinas com muitos núcleos. previous_value=0 (desabilitado), portanto, a `compatibility` com versões anteriores à 26.8 restaura a contagem de streams anterior.

Custo de sobrecarga por stream expresso em equivalente de bytes. Controla o número máximo de streams de leitura criados para varreduras não ordenadas do MergeTree local comum. Leituras ordenadas, FINAL, em camadas e de réplicas paralelas não são alteradas. O limite baseado no volume é ceil(sqrt(estimated_read_bytes / this_setting)). O ClickHouse também mantém pelo menos 16 streams e pelo menos um quarto dos streams solicitados antes da aplicação desse limite. Portanto, a contagem efetiva de streams é min(requested_streams, max(volume_based_cap, 16, floor(requested_streams / 4))). Esses limites mínimos preservam o paralelismo nas etapas subsequentes para expressões e agregações que exigem muito da CPU, cujo custo não é representado por estimated_read_bytes.

estimated_read_bytes é o tamanho não comprimido das colunas lidas nos intervalos de marcas restantes após a eliminação por índice e partição. O tamanho não comprimido é usado porque a sobrecarga por stream é ponderada em relação ao trabalho realizado por stream, que aumenta conforme o número de valores processados, e não conforme o grau de compressão.

O limite não é aplicado quando o volume de leitura não pode ser estimado de forma conservadora, por exemplo, quando uma parte antiga requer outras colunas físicas para avaliar uma coluna DEFAULT recém-adicionada ou quando um intervalo selecionado lê apenas parte de uma coluna de largura variável.

O valor padrão de 64 KB é derivado do modelo de custo T(N) = W/N + F + V·N, em que W é o trabalho útil, F é a sobrecarga fixa do pipeline e V é o custo variável por stream. A contagem ideal de streams é sqrt(W/V). Ao expressar W em bytes por meio da vazão, obtém-se C = throughput · V ≈ 400 MB/s · 0.17 ms ≈ 64 KB. Aumentar esse valor reduz o número de streams (mais conservador); diminuí-lo permite mais streams. Defina como 0 para desabilitar essa otimização.

Valores possíveis:

  • Inteiro não negativo.

merge_tree_min_bytes_per_task_for_remote_reading

Aliases: filesystem_prefetch_min_bytes_for_single_read_task

Tipo
UInt64
Padrão
2097152
Histórico de versões
VersãoValor padrãoComentário
24.82097152O valor foi unificado com `filesystem_prefetch_min_bytes_for_single_read_task`

Número mínimo de bytes lidos por tarefa.

merge_tree_min_read_task_size

Tipo
NonZeroUInt64
Padrão
8
Histórico de versões
VersãoValor padrãoComentário
24.108Nova configuração

Limite mínimo rígido para o tamanho da tarefa (mesmo quando o número de grânulos é baixo e o número de threads disponíveis é alto, não alocaremos tarefas menores

merge_tree_min_rows_for_concurrent_read

Tipo
UInt64
Padrão
163840

Se o número de linhas a serem lidas de um arquivo de uma tabela MergeTree exceder merge_tree_min_rows_for_concurrent_read, o ClickHouse tentará realizar a leitura concorrente desse arquivo em várias threads.

Valores possíveis:

  • Inteiro positivo.

merge_tree_min_rows_for_concurrent_read_for_remote_filesystem

Tipo
UInt64
Padrão
0
Histórico de versões
VersãoValor padrãoComentário
24.100A configuração está obsoleta

O número mínimo de linhas que devem ser lidas de um arquivo antes que o motor MergeTree possa paralelizar a leitura durante a leitura a partir do sistema de arquivos remoto. Não recomendamos o uso dessa configuração.

Valores possíveis:

  • Inteiro positivo.

merge_tree_min_rows_for_seek

Tipo
UInt64
Padrão
0

Se a distância entre dois blocos de dados a serem lidos em um arquivo for menor que merge_tree_min_rows_for_seek linhas, o ClickHouse não faz seek no arquivo, mas lê os dados sequencialmente.

Valores possíveis:

  • Qualquer número inteiro positivo.

merge_tree_prefetch_json_shared_data_substreams

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
26.81Nova configuração para controlar o prefetch de subfluxos de dados compartilhados JSON lidos por meio de uma busca até uma marca em partes Wide.

Habilita o prefetch de subfluxos de dados compartilhados JSON em partes Wide lidos por meio de uma busca até uma marca. Esse prefetch lê desde o início do grânulo, que geralmente não é a posição a partir da qual o subfluxo é lido, podendo ser desnecessário. Desabilite-o para ignorar esses prefetches.

merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability

Tipo
Float
Padrão
0
Histórico de versões
VersãoValor padrãoComentário
24.30Para testar o `PartsSplitter` - divide os intervalos de leitura em sobrepostos e não sobrepostos sempre que houver leitura do MergeTree, com a probabilidade especificada.

Para testar o PartsSplitter - divide os intervalos de leitura em sobrepostos e não sobrepostos sempre que houver leitura do MergeTree, com a probabilidade especificada.

merge_tree_storage_snapshot_sleep_ms

Tipo
UInt64
Padrão
0
Histórico de versões
VersãoValor padrãoComentário
25.60Uma nova configuração para depurar a consistência do snapshot de armazenamento em consultas

Injeta um atraso artificial (em milissegundos) ao criar um snapshot de armazenamento para tabelas MergeTree. Usado apenas para testes e depuração.

Valores possíveis:

  • 0 - Sem atraso (padrão)
  • N - Atraso em milissegundos

merge_tree_use_const_size_tasks_for_remote_reading

Tipo
Bool
Padrão
1

Define se devem ser usadas tarefas de tamanho constante para leitura de uma tabela remota.

merge_tree_use_deserialization_prefixes_cache

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
25.21Uma nova configuração para controlar o uso do cache dos prefixos de desserialização no MergeTree

Habilita o cache dos metadados das colunas a partir dos prefixos dos arquivos durante a leitura em discos remotos no MergeTree.

merge_tree_use_prefixes_deserialization_thread_pool

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
25.21Uma nova configuração que controla o uso do pool de threads para a desserialização paralela de prefixos no MergeTree

Habilita o uso do pool de threads para a leitura paralela de prefixos em partes Wide do MergeTree. O tamanho desse pool de threads é controlado pela configuração do servidor max_prefixes_deserialization_thread_pool_size.

merge_tree_use_v1_object_and_dynamic_serialization

Tipo
Bool
Padrão
0
Histórico de versões
VersãoValor padrãoComentário
24.110Adicionada a nova versão de serialização V2 para os tipos JSON e Dynamic

Quando ativada, a versão de serialização V1 dos tipos JSON e Dynamic será usada no MergeTree em vez da V2. Alterar essa configuração só passa a ter efeito após a reinicialização do servidor.

Navigation