enable_adaptive_aggregator
Ativa o algoritmo adaptativo deGROUP BY: cada thread agrega em sua tabela hash local até atingir adaptive_aggregator_freeze_threshold chaves (ou adaptive_aggregator_freeze_threshold_bytes de memória); então, a tabela é congelada, de modo que as linhas de chaves já vistas (frequentes) continuam sendo atualizadas nela, enquanto chaves novas (raras) são direcionadas pelo hash para filas por bucket e agregadas exatamente uma vez durante a mesclagem paralela por bucket. As chaves frequentes permanecem em pequenas tabelas residentes em cache, e as chaves raras são armazenadas e processadas uma vez, em vez de uma vez por thread.
As configurações de agregação externa (max_bytes_before_external_group_by, max_bytes_ratio_before_external_group_by) são respeitadas: depois de ultrapassar o limite, as filas são descarregadas antecipadamente na tabela compartilhada e, se isso não for suficiente para voltar a ficar abaixo do limite, a tabela compartilhada é gravada em disco por meio da agregação externa comum.
enable_adaptive_memory_spill_scheduler
Faz o processador realizar spill de dados para o armazenamento externo de forma adaptativa. Atualmente, há suporte para hash joins que podem fazer spill de dados, tantograce_hash quanto o caminho adaptativo hash / parallel_hash.
enable_add_distinct_to_in_subqueries
HabilitaDISTINCT em subconsultas IN. Esta configuração envolve um trade-off: ao habilitá-la, é possível reduzir bastante o tamanho das tabelas temporárias transferidas em subconsultas distribuídas com IN e acelerar significativamente a transferência de dados entre shards, garantindo que apenas valores únicos sejam enviados.
No entanto, habilitar essa configuração acrescenta esforço extra de mesclagem em cada nó, já que a desduplicação (DISTINCT) precisa ser executada. Use esta configuração quando a transferência pela rede for um gargalo e o custo adicional de mesclagem for aceitável.
enable_alp_codec
Habilita o codec de compressãoALP.
enable_automatic_decision_for_merging_across_partitions_for_final
Se definido, o ClickHouse habilitará automaticamente essa otimização quando a expressão da chave de partição for determinística e todas as colunas usadas nela estiverem incluídas na chave primária. Essa derivação automática garante que linhas com os mesmos valores de chave primária sempre pertençam à mesma partição, tornando seguro evitar mesclagens entre partições. Colunas-chave de ponto flutuante são excluídas dessa derivação. O comparadorFINAL é menos preciso do que a
identidade de valor para Float32, Float64 e BFloat16: -0.0 é comparado como igual a 0.0, e cada padrão de bits NaN
é comparado como igual a todos os outros. Uma expressão de partição consegue distinguir exatamente esses valores, portanto linhas que o comparador trata como
uma chave podem ficar em partições diferentes, e ignorar a mesclagem entre partições retornaria todas elas.
A exclusão também se aplica quando um float está aninhado em uma coluna-chave, por exemplo, Tuple(Float64, UInt8)
ou Array(Float64).
enable_cascades_optimizer
Habilita o otimizador de custo Cascades para planos de consultas distribuídas. Só tem efeito junto commake_distributed_plan = 1: isoladamente, a configuração não altera o planejamento de consultas em um único nó.
enable_early_constant_folding
Habilita a otimização de consultas em que analisamos os resultados de funções e subconsultas e reescrevemos a consulta se houver constantes nelas.enable_extended_results_for_datetime_functions
Habilita ou desabilita o retorno de resultados do tipoDate32 com faixa estendida (em comparação com o tipo Date)
ou DateTime64 com faixa estendida (em comparação com o tipo DateTime).
Valores possíveis:
0— As funções retornamDateouDateTimepara todos os tipos de argumentos.1— As funções retornamDate32ouDateTime64para argumentosDate32ouDateTime64, eDateouDateTimenos demais casos.
enable_full_text_index
Aliases:allow_experimental_full_text_index
Se definido como true, permite o uso do índice de texto.
enable_function_early_short_circuit
Ativa a simplificação antecipada de constantes por curto-circuito paraand e or durante a análise de consultas.
Quando ativados, os ramos inativos qualificados de subconsultas escalares são analisados para preservar seus tipos e validar a semântica da consulta, mas não são executados. A otimização recorre à análise normal quando são necessários a cardinalidade escalar ou valores de tempo de execução.
enable_funnel_functions
Aliases:allow_experimental_funnel_functions
Habilita funções para análise de funil.
enable_global_with_statement
Propagar instruções WITH para consultas UNION e todas as subconsultasenable_group_by_top_k_optimization
Habilita a otimização de filtragem TopK durante a agregação em consultasGROUP BY keys ORDER BY <prefix of keys> LIMIT K e em consultas GROUP BY keys LIMIT K sem ORDER BY (nesse caso, quaisquer K grupos constituem um resultado válido; portanto, é sintetizada uma ordenação de todas as chaves).
Quando habilitada, o agregador mantém um heap limitado com as K principais chaves encontradas até o momento e deixa de inserir novas linhas na tabela hash quando a chave de agrupamento delas não pode fazer parte do resultado final. Isso evita agregar linhas que seriam descartadas pelo ORDER BY ... LIMIT subsequente e, quando o heap classifica a chave completa do GROUP BY, também remove os grupos expulsos da tabela hash intermediária, limitando seu tamanho ao LIMIT, em vez de ao número de chaves distintas. Quando o ORDER BY abrange apenas um prefixo próprio das chaves do GROUP BY, a classificação não consegue identificar um grupo completo; portanto, aplica-se apenas a omissão de linhas: a tabela hash mantém todos os grupos aceitos e ainda pode crescer conforme a cardinalidade das colunas de chave restantes.
A otimização é desabilitada quando o LIMIT solicitado é maior que query_plan_max_limit_for_top_k_optimization ou que o limite máximo de 100000, pois o custo de memória e CPU do heap cresce com o LIMIT solicitado.
A otimização é ignorada para estruturas de consulta em que remover grupos poderia alterar o resultado, incluindo WITH TOTALS, HAVING, QUALIFY, funções de janela, ROLLUP/CUBE/GROUPING SETS, LIMIT WITH TIES, um COLLATE em qualquer uma das chaves de GROUP BY correspondentes (um COLLATE em uma coluna posterior do ORDER BY, após o prefixo completo da chave, não pode afetar quais grupos se qualificam e, portanto, não desabilita a otimização), ORDER BY em um agregado ou em qualquer elemento que não seja um prefixo inicial das chaves de GROUP BY, e quando max_rows_to_group_by ou exact_rows_before_limit está definido.
Valores possíveis:
- 0 — Desabilitado.
- 1 — Habilitado.
enable_hash_join_row_store
Habilita a transformação do payload de um hash join em um layout orientado a linhas.enable_hdfs_pread
Ativa ou desativapread para arquivos HDFS. Por padrão, hdfsPread é usado. Se estiver desativado, hdfsRead e hdfsSeek serão usados para ler arquivos HDFS.
enable_http_compression
Ativa ou desativa a compressão de dados na resposta a uma requisição HTTP. Para mais informações, leia a descrição da interface HTTP. Valores possíveis:- 0 — Desativado.
- 1 — Ativado.
enable_identifier_resolve_cache
Ativa o cache de resolução de identificadores no analisador de consultas. O cache compartilha nós de alias já resolvidos para evitar a explosão da AST quando o mesmo alias é referenciado várias vezes. Defina como false para desativar o cache se houver suspeita de resultados incorretos.enable_job_stack_trace
Exibe o stack trace do criador de um job quando o job resulta em uma exceção. Desativado por padrão para evitar sobrecarga de desempenho.enable_json_ast_dialect
Habilite o valorclickhouse_json da configuração dialect.
Quando dialect é definido como clickhouse_json, as consultas são interpretadas como ASTs JSON
(a saída de parseQueryToJSON) em vez de texto SQL. A consulta SET ainda é
analisada como SQL puro, para que seja possível alternar o dialeto de volta.
Exemplo:
enable_json_lazy_type_hints
Aliases:allow_experimental_json_lazy_type_hints
Habilita os Lazy Type Hints para o tipo JSON.
Com essa configuração habilitada, ALTER TABLE ... MODIFY COLUMN json JSON(path TypeName), que apenas adiciona ou altera
type hints, é uma operação somente de metadados: os type hints são aplicados no momento da consulta às partes existentes e
materializados durante inserções e mesclagens em segundo plano, em vez de regravar os dados históricos.
enable_lazy_columns_replication
Habilita a replicação lazy de colunas emJOIN, ARRAY JOIN e capturas lambda de funções de ordem superior (por exemplo, arrayMap), evitando cópias desnecessárias das mesmas linhas várias vezes na memória.
enable_materialized_cte
Ativa expressões de tabela comuns materializadas (WITH <name> AS MATERIALIZED (<subquery>)).
Quando ativada, uma CTE declarada como MATERIALIZED e referenciada mais de uma vez é executada uma única vez, armazenada em uma tabela temporária, e todas as referências leem dessa tabela. Uma CTE referenciada apenas uma vez é incorporada como uma CTE comum para evitar a sobrecarga.
Quando desabilitada, a palavra-chave MATERIALIZED é ignorada: a CTE é incorporada em cada referência como uma CTE comum, e um aviso é registrado.
enable_materialized_postgresql_table
Aliases:allow_experimental_materialized_postgresql_table
Permite o uso do motor de tabela MaterializedPostgreSQL.
enable_memory_bound_merging_of_aggregation_results
Habilita a estratégia de mesclagem com limite de memória para agregação.enable_multiple_prewhere_read_steps
Move mais condições de WHERE para PREWHERE e execute leituras em disco e a filtragem em várias etapas se houver várias condições combinadas com ANDenable_named_columns_in_function_tuple
Gerar tuplas nomeadas na função tuple() quando todos os nomes forem únicos e puderem ser tratados como identificadores sem aspas.enable_nullable_tuple_type
Aliases:allow_experimental_nullable_tuple_type
Permite criar colunas Nullable Tuple em tabelas.
Esta configuração não controla se subcolunas de tupla extraídas podem ser Nullable (por exemplo, de colunas Dynamic, Variant, JSON ou Tuple).
Use allow_nullable_tuple_in_extracted_subcolumns para controlar se subcolunas de tupla extraídas podem ser Nullable.
enable_order_by_all
Ativa ou desativa a ordenação com a sintaxeORDER BY ALL; consulte ORDER BY.
Valores possíveis:
- 0 — Desativa ORDER BY ALL.
- 1 — Ativa ORDER BY ALL.
enable_packed_string_keys_in_aggregation
Use uma tabela hash com referências compactadas a strings de 16 bytes (PackedStringRef) como chave em GROUP BY com uma única chave String não anulável. Chaves de até 11 bytes são armazenadas diretamente na referência compactada; chaves mais longas são referenciadas em uma arena.
Esse método é mais rápido para a maioria das cargas de trabalho, mas pode ser mais lento que o método legado em GROUP BY com pouquíssimas chaves distintas com mais de 11 bytes (especialmente entre 12 e 24 bytes), pois a tabela hash legada mantém as chaves diretamente na célula, enquanto a compactada desreferencia o ponteiro da arena a cada sondagem.
Quando desativado, é usado o método legado baseado em StringHashTable (o padrão antes da versão 26.8).
Todos os servidores que participam de uma consulta distribuída devem usar o mesmo valor: com distributed_aggregation_memory_efficient, os números dos buckets de dois níveis dependem do hash da chave, que difere entre os dois métodos. Portanto, servidores com configurações divergentes podem dividir a mesma chave em buckets diferentes e produzir um resultado mesclado incorretamente. Para garantir essa consistência, o iniciador sempre envia seu valor efetivo com as consultas secundárias (mesmo quando ele é proveniente apenas dos valores padrão do servidor/perfil), substituindo os próprios valores padrão dos servidores remotos.
enable_parsing_to_custom_serialization
Se true, os dados podem ser convertidos diretamente para colunas com serialização personalizada (por exemplo, Sparse), de acordo com as indicações de serialização obtidas da tabela.enable_producing_buckets_out_of_order_in_aggregation
Permite que a agregação com uso eficiente de memória (consultedistributed_aggregation_memory_efficient) produza buckets fora de ordem.
Isso pode melhorar o desempenho quando os tamanhos dos buckets de agregação são desiguais, permitindo que uma réplica envie buckets com IDs mais altos ao nó iniciador enquanto ainda processa alguns buckets pesados com IDs mais baixos.
A desvantagem é um uso de memória potencialmente maior.
enable_quantized_codec
Habilita o codec de compressãoQuantized.
enable_reads_from_query_cache
Se ativado, os resultados de consultasSELECT são obtidos do cache de consultas.
Valores possíveis:
- 0 - Desabilitado
- 1 - Habilitado
enable_s3_requests_logging
Ativa um logging bem detalhado das requisições ao S3. Recomendado apenas para depuração.enable_scalar_subquery_optimization
Se definido como true, evita que subconsultas escalares (de)serializem valores escalares grandes e pode evitar executar a mesma subconsulta mais de uma vez.enable_scopes_for_with_statement
Se desabilitada, as declarações em cláusulas WITH pai terão o mesmo escopo de quando são declaradas no escopo atual. Observe que esta é uma configuração de compatibilidade para o analyzer, para permitir a execução de algumas consultas inválidas que o analyzer antigo conseguia executar.enable_shared_storage_snapshot_in_query
Se estiver habilitada, todas as subconsultas dentro de uma única consulta compartilharão o mesmo StorageSnapshot para cada tabela. Isso garante uma visão consistente dos dados em toda a consulta, mesmo se a mesma tabela for acessada várias vezes. Isso é necessário para consultas em que a consistência interna das partes de dados é importante. Exemplo:- 0 - Desativado
- 1 - Ativado
enable_sharing_sets_for_mutations
Permite o compartilhamento de objetos Set criados para subconsultasIN entre diferentes tarefas da mesma mutação. Isso reduz o uso de memória e o consumo de CPU
enable_streaming_queries
Permite consultas contínuasSELECT ... FROM t STREAM [CURSOR '{...}'].
Quando desativado, qualquer expressão de tabela que use o modificador STREAM é rejeitada
na compilação do plano. Esta é a configuração principal para o recurso de
consultas de streaming; capacidades adicionais podem ser controladas por suas próprias configurações.
enable_sz3_codec
Habilita o codec de compressãoSZ3.
enable_time_series_aggregate_functions
Aliases:allow_experimental_ts_to_grid_aggregate_function, allow_experimental_time_series_aggregate_functions
Habilita as funções agregadas timeSeries* para reamostragem de séries temporais no estilo Prometheus, cálculo de taxa e delta.
enable_time_series_table
Aliases:allow_experimental_time_series_table
Permite criar tabelas com o mecanismo de tabela TimeSeries. Valores possíveis:
- 0 — o mecanismo de tabela TimeSeries está desabilitado.
- 1 — o mecanismo de tabela TimeSeries está habilitado.
enable_time_time64_type
Aliases:allow_experimental_time_time64_type
Permite a criação dos tipos de dados Time e Time64.
enable_trino_dialect
Habilita o valortrino da configuração dialect.
Quando dialect é definido como trino, as consultas são escritas em SQL do Trino: a sintaxe
específica do Trino (literais ARRAY[...], TRY_CAST, UNNEST, tipos ROW, OFFSET antes de LIMIT)
é traduzida para ClickHouse SQL, e os nomes das funções do Trino são mapeados para seus
equivalentes no ClickHouse. A consulta SET ainda é interpretada como SQL comum para que o
dialeto possa ser alterado novamente.
O dialeto também alinha a semântica das consultas à do Trino: join_use_nulls é ativado,
use_variant_as_common_type é desativado, e o analisador de consultas é ativado.
Uma cláusula SETTINGS explícita na consulta ainda tem precedência.
enable_unaligned_array_join
Permite ARRAY JOIN com vários arrays de tamanhos diferentes. Quando essa configuração está habilitada, os arrays serão redimensionados para o mais longo.enable_unique_key
Aliases:allow_experimental_unique_key
Permite a criação de tabelas com a cláusula UNIQUE KEY em motores da família MergeTree.
enable_url_encoding
Permite ativar/desativar a decodificação/codificação do caminho no URI em tabelas com o motor URL. Desativado por padrão.enable_vertical_final
Se ativado, remove linhas duplicadas durante o FINAL marcando as linhas como excluídas e filtrando-as posteriormente, em vez de mesclar as linhasenable_writes_to_query_cache
Se estiver ativado, os resultados das consultasSELECT serão armazenados no cache de consultas.
Valores possíveis:
- 0 - Desabilitado
- 1 - Ativado
enable_zxc_codec
Habilita o codec de compressãoZXC.