Essas configurações estão disponíveis em system.settings e são geradas automaticamente a partir do código-fonte.
prefer_column_name_to_alias
Habilita ou desabilita o uso dos nomes originais das colunas em vez de aliases em expressões e cláusulas de consulta. Isso é especialmente relevante quando o alias é igual ao nome da coluna; veja Expression Aliases. Habilite essa configuração para tornar as regras de sintaxe de aliases no ClickHouse mais compatíveis com a maioria dos outros motores de banco de dados.
Possíveis valores:
- 0 — O nome da coluna é substituído pelo alias.
- 1 — O nome da coluna não é substituído pelo alias.
Exemplo
A diferença entre habilitado e desabilitado:
Consulta:
SET prefer_column_name_to_alias = 0;
SELECT avg(number) AS number, max(number) FROM numbers(10);Resultado:
Received exception from server (version 21.5.1):
Code: 184. DB::Exception: Received from localhost:9000. DB::Exception: Aggregate function avg(number) is found inside another aggregate function in query: While processing avg(number) AS number.Consulta:
SET prefer_column_name_to_alias = 1;
SELECT avg(number) AS number, max(number) FROM numbers(10);Resultado:
┌─number─┬─max(number)─┐
│ 4.5 │ 9 │
└────────┴─────────────┘prefer_external_sort_block_bytes
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 24.5 | 16744704 | Prioriza o número máximo de bytes por bloco na ordenação externa, reduzindo o uso de memória durante a mesclagem. |
Prioriza o número máximo de bytes por bloco na ordenação externa, reduzindo o uso de memória durante a mesclagem.
prefer_global_in_and_join
Habilita a substituição dos operadores IN/JOIN por GLOBAL IN/GLOBAL JOIN.
Valores possíveis:
- 0 — Desabilitado. Os operadores
IN/JOINnão são substituídos porGLOBAL IN/GLOBAL JOIN. - 1 — Habilitado. Os operadores
IN/JOINsão substituídos porGLOBAL IN/GLOBAL JOIN.
Uso
Embora SET distributed_product_mode=global possa alterar o comportamento das consultas para as tabelas distribuídas, ele não é adequado para tabelas locais nem para tabelas de fontes externas. É nesse ponto que a configuração prefer_global_in_and_join entra em ação.
Por exemplo, temos nós que processam consultas e contêm tabelas locais, que não são adequadas para distribuição. Precisamos distribuir seus dados dinamicamente durante o processamento distribuído com a palavra-chave GLOBAL — GLOBAL IN/GLOBAL JOIN.
Outro caso de uso de prefer_global_in_and_join é acessar tabelas criadas por motores externos. Essa configuração ajuda a reduzir o número de chamadas a fontes externas ao fazer JOIN dessas tabelas: apenas uma chamada por consulta.
Veja também:
- Subconsultas distribuídas para mais informações sobre como usar
GLOBAL IN/GLOBAL JOIN
prefer_localhost_replica
Ativa/desativa o uso preferencial da réplica localhost ao processar consultas distribuídas.
Valores possíveis:
- 1 — o ClickHouse sempre envia uma consulta para a réplica localhost, se ela existir.
- 0 — o ClickHouse usa a estratégia de balanceamento especificada na configuração load_balancing.
prefer_warmed_unmerged_parts_seconds
Só tem efeito no ClickHouse Cloud. Se uma parte mesclada tiver menos do que essa quantidade de segundos e não estiver pré-aquecida (consulte cache_populated_by_fetch), mas todas as suas partes de origem estiverem disponíveis e pré-aquecidas, as consultas SELECT serão lidas dessas partes. Apenas para Replicated-/SharedMergeTree. Observe que isso verifica apenas se o CacheWarmer processou a parte; se a parte tiver sido carregada no cache por outro mecanismo, ela ainda será considerada fria até que o CacheWarmer a processe; se tiver sido aquecida e depois removida do cache, ainda será considerada aquecida.