Pular para o conteúdo principal

Descrição

O combinador State pode ser aplicado à função avg para gerar um estado intermediário do tipo AggregateFunction(avg, T), em que T é o tipo especificado para a média.

Exemplo de uso

Neste exemplo, veremos como usar o tipo AggregateFunction, junto com a função avgState, para agregar dados de tráfego de um site. Primeiro, crie a tabela de origem para os dados de tráfego do site:
Crie a tabela agregada que armazenará os tempos médios de resposta. Observe que avg não pode usar o tipo SimpleAggregateFunction, pois requer um estado complexo (uma soma e uma contagem). Por isso, usamos o tipo AggregateFunction:
Crie uma view materializada incremental que atuará como um insert trigger para novos dados e armazenará os dados de estado intermediário na tabela de destino definida acima:
Insira alguns dados iniciais na tabela de origem, criando uma part no disco:
Insira mais dados para criar uma segunda parte no disco:
Examine a tabela de destino page_performance:
Observe que a coluna avg_response_time é do tipo AggregateFunction(avg, UInt32) e armazena informações de estado intermediário. Note também que os dados da linha referentes a avg_response_time não são úteis e que aparecem caracteres estranhos como �, n, F, }. Isso é uma tentativa do terminal de exibir dados binários como texto. O motivo é que os tipos AggregateFunction armazenam seu estado em um formato binário otimizado para armazenamento e processamento eficientes, e não para legibilidade humana. Esse estado binário contém todas as informações necessárias para calcular a média. Para utilizá-lo, use o combinador Merge:
Agora vemos as médias corretas:

Veja também

Última modificação em 1 de julho de 2026