Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

configurações de sessão de group_by_*

Essas configurações estão disponíveis em system.settings e são geradas automaticamente a partir da fonte.

group_by_overflow_mode

Tipo
OverflowModeGroupBy
Padrão
throw

Define o que acontece quando o número de chaves únicas para agregação excede o limite:

  • throw: gera uma exceção
  • break: interrompe a execução da consulta e retorna o resultado parcial
  • any: continua a agregação para as chaves que entraram no conjunto, mas não adiciona novas chaves ao conjunto.

Usar o valor any permite executar uma aproximação de GROUP BY. A qualidade dessa aproximação depende da natureza estatística dos dados.

group_by_top_k_optimization_observation_rows

Recurso experimental
Tipo
UInt64
Padrão
65536
Histórico de versões
VersãoValor padrãoComentário
26.865536Nova configuração experimental: número de linhas que cada fluxo de agregação observa antes de considerar um heap top-K cheio, que nunca rejeitou nada, pura sobrecarga e congelá-lo.

Para enable_group_by_top_k_optimization: o número de linhas que cada fluxo de agregação observa antes de congelar um heap top-K cheio que ignorou menos de 10% das linhas de entrada e removeu menos chaves do que sua capacidade. Um heap congelado significa que a agregação continua como se a otimização estivesse desabilitada.

A janela efetiva é de pelo menos o dobro do tamanho reservado do heap, para que ele sempre tenha a chance de ser preenchido antes de ser avaliado. 0 desabilita esse congelamento (o heap ainda é congelado quando um conjunto de empates na fronteira cresce além da sua capacidade).

Isso não tem efeito em consultas GROUP BY keys LIMIT K sem ORDER BY, nas quais o congelamento está sempre desabilitado: o plano desse formato contém uma ordenação gerada automaticamente que só compensa enquanto o heap limita a tabela hash; portanto, congelar o heap deixaria o plano mais lento do que o plano sem otimização.

group_by_two_level_threshold

Tipo
UInt64
Padrão
100000

Número de chaves a partir do qual uma agregação em dois níveis é iniciada. 0 - o limiar não está definido.

group_by_two_level_threshold_bytes

Tipo
UInt64
Padrão
50000000

A partir de qual tamanho, em bytes, do estado de agregação, passa-se a usar a agregação em dois níveis. 0 - o limiar não está definido. A agregação em dois níveis é usada quando pelo menos um dos limiares é atingido.

group_by_use_nulls

Tipo
Bool
Padrão
0

Altera a forma como a cláusula GROUP BY trata os tipos das chaves de agregação. Quando os especificadores ROLLUP, CUBE ou GROUPING SETS são usados, algumas chaves de agregação podem não ser usadas na produção de determinadas linhas de resultado. As colunas dessas chaves são preenchidas com o valor padrão ou com NULL nas linhas correspondentes, dependendo dessa configuração.

Valores possíveis:

  • 0 — O valor padrão do tipo da chave de agregação é usado para preencher valores ausentes.
  • 1 — O ClickHouse executa GROUP BY da mesma forma que o padrão SQL define. Os tipos das chaves de agregação são convertidos para Nullable. As colunas das chaves de agregação correspondentes são preenchidas com NULL nas linhas em que elas não foram usadas.

Veja também:

Navigation