Pular para o conteúdo principal
A análise de séries temporais no ClickHouse pode ser feita com funções SQL padrão de agregação e funções de janela. Ao trabalhar com dados de séries temporais, você normalmente encontrará três tipos principais de métricas:
  • Métricas do tipo Counter, que aumentam monotonicamente ao longo do tempo (como visualizações de página ou total de eventos)
  • Métricas do tipo Gauge, que representam medições em um determinado momento e podem aumentar ou diminuir (como uso de CPU ou temperatura)
  • Histogramas, que amostram observações e as contabilizam em buckets (como durações de requisição ou tamanhos de resposta)
Padrões comuns de análise dessas métricas incluem comparar valores entre períodos, calcular totais acumulados, determinar taxas de variação e analisar distribuições. Tudo isso pode ser feito por meio de combinações de agregações, funções de janela como sum() OVER e funções especializadas como histogram().

Mudanças de um período para outro

Ao analisar dados de séries temporais, muitas vezes precisamos entender como os valores mudam entre diferentes períodos. Isso é essencial tanto para métricas do tipo gauge quanto para métricas do tipo counter. A função de janela lagInFrame nos permite acessar o valor do período anterior para calcular essas mudanças. A consulta a seguir demonstra isso ao calcular as variações diárias nas visualizações da página de Wikipedia de “Weird Al” Yankovic. A coluna trend mostra se o tráfego aumentou (valores positivos) ou diminuiu (valores negativos) em relação ao dia anterior, ajudando a identificar picos ou quedas incomuns na atividade.

Valores cumulativos

As métricas do tipo Counter se acumulam naturalmente ao longo do tempo. Para analisar esse crescimento cumulativo, podemos calcular totais acumulados usando funções de janela. A consulta a seguir demonstra isso usando a cláusula sum() OVER, que cria um total acumulado. A função bar() fornece uma representação visual desse crescimento.

Cálculos de taxa

Ao analisar séries temporais, muitas vezes é útil entender a taxa de eventos por unidade de tempo. Esta consulta calcula a taxa de visualizações de página por segundo dividindo os totais por hora pelo número de segundos em uma hora (3.600). O gráfico de barras ajuda a identificar os horários de pico de atividade.

Histogramas

Um caso de uso comum de dados de séries temporais é criar histogramas com base em eventos rastreados. Suponha que quiséssemos entender a distribuição das páginas com base no total de hits, incluindo apenas as páginas com mais de 10.000 hits. Podemos usar a função histogram() para gerar automaticamente um histograma adaptativo com base no número de intervalos:
Podemos então usar arrayJoin() para ajustar os dados e bar() para visualizá-los:
Última modificação em 10 de junho de 2026