Saltar al contenido principal
El análisis de series temporales en ClickHouse puede realizarse mediante funciones estándar de agregación de SQL y funciones de ventana. Al trabajar con datos de series temporales, normalmente te encontrarás con tres tipos principales de métricas:
  • Métricas de tipo Counter que aumentan de forma monotónica con el tiempo (como las vistas de página o el total de eventos)
  • Métricas de tipo Gauge que representan mediciones en un momento concreto y que pueden subir y bajar (como el uso de CPU o la temperatura)
  • Histogramas que toman muestras de observaciones y las cuentan en intervalos (como la duración de las solicitudes o el tamaño de las respuestas)
Entre los patrones de análisis más comunes para estas métricas se incluyen la comparación de valores entre períodos, el cálculo de totales acumulados, la determinación de tasas de cambio y el análisis de distribuciones. Todo esto puede lograrse mediante combinaciones de agregaciones, funciones de ventana como sum() OVER y funciones especializadas como histogram().

Cambios entre períodos

Al analizar series temporales, a menudo necesitamos entender cómo cambian los valores entre distintos períodos de tiempo. Esto es esencial tanto para las métricas gauge como para las counter. La función de ventana lagInFrame nos permite acceder al valor del período anterior para calcular estos cambios. La siguiente consulta lo ilustra al calcular las variaciones diarias en las visitas a la página de Wikipedia de “Weird Al” Yankovic. La columna de tendencia muestra si el tráfico aumentó (valores positivos) o disminuyó (valores negativos) con respecto al día anterior, lo que ayuda a identificar picos o caídas inusuales en la actividad.

Valores acumulados

Las métricas de tipo Counter se acumulan de forma natural con el tiempo. Para analizar este crecimiento acumulado, podemos calcular totales acumulados mediante funciones de ventana. La siguiente consulta lo demuestra mediante la cláusula sum() OVER, que crea un total acumulado. La función bar() proporciona una representación visual de este crecimiento.

Cálculos de tasas

Al analizar datos de series temporales, suele ser útil comprender la tasa de eventos por unidad de tiempo. Esta consulta calcula la tasa de vistas de página por segundo dividiendo los totales por hora entre el número de segundos que tiene una hora (3600). El gráfico de barras ayuda a identificar las horas de mayor actividad.

Histogramas

Un caso de uso habitual de las series temporales es crear histogramas a partir de eventos registrados. Supongamos que queremos entender cómo se distribuye un conjunto de páginas en función de su número total de hits, incluyendo solo las páginas que tienen más de 10.000 hits. Podemos usar la función histogram() para generar automáticamente un histograma adaptativo en función del número de intervalos:
Luego, podemos usar arrayJoin() para preparar los datos y bar() para visualizarlos:
Última modificación el 29 de junio de 2026