Skip to main content
L’analyse des séries temporelles dans ClickHouse peut être effectuée à l’aide de fonctions SQL standard d’agrégation et de fenêtre. Lorsque vous travaillez avec des données de séries temporelles, vous rencontrez généralement trois grands types de métriques :
  • Des métriques de type Counter qui augmentent de manière monotone au fil du temps (comme les vues de page ou le nombre total d’événements)
  • Des métriques de type Gauge qui représentent des mesures à un instant donné et peuvent augmenter ou diminuer (comme l’utilisation du CPU ou la température)
  • Des histogrammes qui échantillonnent les observations et les répartissent dans des buckets (comme les durées de requête ou les tailles de réponse)
Les schémas d’analyse courants pour ces métriques incluent la comparaison des valeurs entre différentes périodes, le calcul des totaux cumulés, la détermination des taux de variation et l’analyse des distributions. Tout cela peut être réalisé grâce à des combinaisons d’agrégations, de fonctions de fenêtre comme sum() OVER et de fonctions spécialisées comme histogram().

Variations d’une période à l’autre

Lors de l’analyse de données de séries temporelles, il est souvent nécessaire de comprendre comment les valeurs évoluent d’une période à l’autre. C’est essentiel aussi bien pour les métriques de type Gauge que Counter. La fonction de fenêtre lagInFrame permet d’accéder à la valeur de la période précédente afin de calculer ces variations. La requête suivante l’illustre en calculant les variations d’un jour sur l’autre du nombre de vues de la page Wikipedia de “Weird Al” Yankovic. La colonne de tendance indique si le trafic a augmenté (valeurs positives) ou diminué (valeurs négatives) par rapport au jour précédent, ce qui aide à repérer des pics ou des baisses d’activité inhabituels.

Valeurs cumulées

Les métriques de type Counter s’accumulent naturellement au fil du temps. Pour analyser cette croissance cumulée, nous pouvons calculer des totaux cumulés à l’aide de fonctions de fenêtre. La requête suivante l’illustre en utilisant la clause sum() OVER, qui crée un total cumulé. La fonction bar() fournit une représentation visuelle de cette croissance.

Calculs de taux

Lors de l’analyse de séries temporelles, il est souvent utile d’évaluer le taux d’événements par unité de temps. Cette requête calcule le taux de consultations de pages par seconde en divisant les totaux horaires par le nombre de secondes que compte une heure (3600). Le graphique en barres permet d’identifier les heures de plus forte activité.

Histogrammes

Un cas d’utilisation courant des séries temporelles consiste à créer des histogrammes à partir d’événements observés. Supposons que nous voulions comprendre la répartition des pages selon leur nombre total de consultations, en ne prenant en compte que les pages comptant plus de 10 000 consultations. Nous pouvons utiliser la fonction histogram() pour générer automatiquement un histogramme adaptatif en fonction du nombre de classes :
Nous pouvons ensuite utiliser arrayJoin() pour préparer les données et bar() pour les visualiser :
Dernière modification le 3 juillet 2026