Filtrado y agregación: manipulación de series temporales

En esta página, se describen las técnicas que se usan para manipular los datos de series temporales. Este contenido se basa en los conceptos y se debate en Métricas, series temporales y recursos.

Los datos de series temporales sin procesar deben manipularse antes de que se puedan analizar y el análisis a menudo implica filtrar algunos datos y agruparlos. En esta página, se describen dos técnicas principales para definir mejor los datos sin procesar:

  • Filtros, que quitan algunos datos
  • Agregación, que combina múltiples fragmentos de datos en un conjunto más pequeño junto con las dimensiones que especifiques

El filtrado y la agregación son herramientas potentes para identificar patrones interesantes y destacar tendencias o valores atípicos en los datos, entre otras cosas.

En esta página, se describen los conceptos detrás del filtrado y la agregación. No se explica cómo aplicarlas directamente. Para aplicar el filtrado o la agregación a tus datos de series temporales, usa la API de Cloud Monitoring o las herramientas de gráficos y alertas en Google Cloud Console.

Datos de series temporales sin procesar

La cantidad de datos sin procesar de una métrica temporal puede ser enorme y, por lo general, hay muchas series temporales asociadas con un tipo de métrica. Para analizar todo el conjunto de datos en busca de comunes, tendencias o valores atípicos, debes realizar un procesamiento sobre las series temporales del conjunto. De lo contrario, hay demasiados datos para considerar.

Para ingresar el filtrado y la exageración, en los ejemplos de esta página se usa una pequeña cantidad de series temporales hipotéticas. Por ejemplo, en la siguiente ilustración se muestran algunas horas de datos sin procesar de tres series temporales:

Gráfico que muestra tres series temporales sin procesar: rojo, azul y verde.
Figura 1: Tres series temporales sin procesar

Cada serie temporal es de color, rojo, azul o verde, para reflejar el valor de una etiqueta color hipotética. Hay una serie temporal para cada valor de la etiqueta. Observa que los valores no se alinean bien, ya que se registraron en diferentes momentos.

Filtros

Una de las herramientas más potentes para el análisis es el filtrado, que te permite ocultar los datos que no te interesen.

Puedes filtrar los datos de series temporales según las siguientes opciones:

  • Tiempo.
  • Valor de una o más etiquetas

En la siguiente ilustración, se muestra el resultado del filtrado para mostrar solo las series temporales rojas del conjunto original de series temporales sin procesar (que se ilustra en la Figura 1):

Gráfico que muestra una de las series temporales sin procesar: rojo.
Figura 2: Después del filtrado, una serie temporal sin procesar

Esta serie temporal, seleccionada mediante el filtrado, se usa en la siguiente sección para demostrar la alineación.

Agregación

Otra forma de reducir la cantidad de datos que tienes es resumirlos o agregarlos. Hay dos aspectos de la agregación:

  • Alineación o regularización los datos dentro de una sola serie temporal
  • Reducción, o combinación de varias series temporales.

Debe alinear las series temporales antes de poder reducirlas.

Alineación: regularización dentro de la serie

El primer paso para agregar datos de series temporales es el alineamiento. La alineación crea una nueva serie temporal en la que se normalizan los datos sin procesar a fin de que se puedan combinar con otras series temporales alineadas. La alineación produce series temporales con datos espaciados con regularidad.

La alineación implica dos pasos:

  1. Dividir las series temporales en intervalos de tiempo regulares, también llamado agrupamiento de datos. El intervalo se denomina período, período de alineación o ventana de alineación.

  2. Calcular un solo valor para los puntos en el período de alineación. Tú eliges cómo se calcula ese punto único, puedes sumar todos los valores, calcular su promedio, o usar la máxima.

Debido a que la nueva serie temporal creada por la alineación representa todos los valores de la serie temporal sin procesar dentro de un período de alineación, también se denomina reducción dentro de la serie o agregación dentro de la serie.

Regulariza intervalos de tiempo

El análisis de los datos de series temporales requiere que los datos estén disponibles en límites de tiempo dispersos de manera uniforme. La alineación es el proceso para hacer esto.

La alineación crea una nueva serie temporal con un intervalo constante, el período de alineación, entre puntos de datos. Por lo general, la alineación se aplica a varias series temporales a fin de prepararte para una mayor manipulación.

En esta sección, se ilustran los pasos de alineación y se aplican a una sola serie temporal. En este ejemplo, se aplica un período de alineación de una hora a la serie temporal de ejemplo que se ilustra en la Figura 2. Las series temporales muestran datos capturados durante tres horas. Dividir los datos en períodos de una hora da como resultado los siguientes puntos en cada período:

Period Values
1:01–2:00 400, 350, 300, 200
2:01–3:00 200, 100
3:01–4:00 300, 250, 200

Elige períodos de alineación

La duración del período de alineación depende de dos factores:

  • El nivel de detalle de lo que intentas encontrar en los datos
  • El período de muestreo de los datos, es decir, con qué frecuencia se informa

Estos factores se analizan en más detalle en las siguientes secciones.

Además, Cloud Monitoring conserva los datos de métricas durante un período limitado. El período varía con el tipo de métrica. Consulta Retención de datos para obtener más información. El período de retención es el período de alineación significativo más largo.

Nivel de detalle

Si sabes que algo sucedió en un lapso de un par de horas y deseas obtener más información, probablemente quieras usar un período de una hora o una cantidad de minutos para la alineación.

Si te interesa explorar las tendencias durante períodos más largos, un período de alineación mayor puede ser más apropiado. Por lo general, los períodos de alineación grandes no son útiles para ver condiciones anómalas a corto plazo. Si usas, por ejemplo, un período de alineación de varias semanas, la existencia de una anomalía en ese período aún puede ser detectable, pero los datos alineados pueden ser demasiado precisos para ser de gran ayuda.

Tasa de muestreo

La frecuencia con la que se escriben los datos, la tasa de muestreo, también puede afectar la elección del período de alineación. Consulta la lista de métricas para ver las tasas de muestreo de las métricas integradas. Considera la siguiente figura, que ilustra una serie temporal con una tasa de muestreo de un punto por minuto:

Grafo de datos sin procesar con un período de muestreo de 1 minuto.

Si el período de alineación es el mismo que el período de muestreo, hay un dato en cada período de alineación. Esto significa que, por ejemplo, aplicar cualquiera de los alineadores max, mean o min da como resultado la misma serie temporal alineada. En la siguiente ilustración, se muestra este resultado, junto con las series temporales originales como una línea atenuada.

Gráfico de una serie temporal alineada con el período que coincide con el período de muestreo.

Para obtener más información sobre cómo funcionan las funciones de alineador, consulta Alineadores.

Si el período de alineación se establece en dos minutos o el doble del período de muestreo, hay dos datos en cada período. Si los alineadores max, mean o min se aplican a los puntos dentro del período de alineación de dos minutos, las series temporales resultantes son diferentes. En la siguiente ilustración, se muestran estos resultados, junto con las series temporales originales como una línea atenuada.

Gráfico de series temporales alineadas con un período del doble del período de muestreo.

Cuando elijas un período de alineación, haz que sea más largo que el período de muestreo, pero lo suficientemente corto para mostrar tendencias relevantes. Es posible que debas experimentar para determinar un período de alineación útil. Por ejemplo, si los datos se recopilan a una velocidad de un punto por día, un período de alineación de una hora es demasiado corto para ser útil: por la mayoría de las horas, no habrá datos.

Alineadores

Después de dividir los datos en períodos de alineación, selecciona una función, el alineador, que se aplicará a los datos de ese período. El alineador produce un solo valor ubicado al final de cada período de alineación.

Las opciones de alineación incluyen la suma de los valores o la búsqueda del valor máximo, mínimo o promedio de los valores, la búsqueda de un valor de percentil de elección, el recuento de valores, etc. La API de Cloud Monitoring es compatible con un gran conjunto de funciones de alineación, mucho más que el simple conjunto ilustrado aquí. Consulta Aligner para ver la lista completa.

Por ejemplo, si tomas los datos agrupados de las series temporales sin procesar (que se ilustran en la Figura 1), elige un alineador y aplícalo a los datos en cada depósito. En la siguiente tabla, se muestran los valores sin procesar y los resultados de tres alineadores diferentes, max, mean y min:

Period Values Alineador: max Alineador: mean Alineador: min
1:01–2:00 400, 350, 300, 200 400 312.5 200
2:01–3:00 200, 100 200 150 100
3:01–4:00 300, 250, 200 300 250 200

En la ilustración siguiente, se muestran los resultados de los alineadores max, mean o min con un período de alineación de 1 hora con las series temporales originales en rojo (representadas por la línea atenuada en la ilustración):

Gráfico que muestra la serie temporal roja después de aplicar uno de los tres alineadores diferentes.
Figura 3: Una serie temporal alineada de tres formas

Otros alineadores

En la siguiente tabla, se muestran los mismos valores sin procesar y los resultados de tres otros alineadores:

  • Recuento cuenta la cantidad de valores en el período de alineación.
  • Sum suma todos los valores del período de alineación.
  • Siguiente más antiguo usa el valor más reciente del período como valor de alineación.
Period Values Alineador: recuento Aligner (Alineador): SUM Alineador: siguiente más antiguo
1:01–2:00 400, 350, 300, 200 4 1250 200
2:01–3:00 200, 100 2 300 100
3:01–4:00 300, 250, 200 3 750 200

Estos resultados no se muestran en un gráfico.

Reducción: combinación de series temporales

El siguiente paso del proceso, reducción, es el proceso de componer varias series temporales alineadas en una nueva serie temporal. En este paso, se reemplazan todos los valores en el límite del período de alineación por un solo valor. Debido a que funciona en series temporales separadas, la reducción también se denomina agregación de series cruzadas.

Reductores

Un reductor es una función que se aplica a los valores de un conjunto de series temporales para producir un valor único.

Las opciones de reducción incluyen la suma de los valores alineados o la búsqueda de los valores máximos, mínimos o medios de los valores. La API de Cloud Monitoring es compatible con un gran conjunto de funciones de reducción Consulta Reducer para ver la lista completa. La lista de reductores paralelo a la lista de alineadores.

Las series temporales deben alinearse antes de que se puedan reducir. En la siguiente ilustración, se muestran los resultados de manera detallada los tres series temporales (de la figura 1) en períodos de 1 hora con la media alineador:

Gráfico que muestra tres series temporales alineadas.
Figura 4: Tres series temporales, promedio alineada

Los valores de las tres series temporales alineadas por promedio (que se ilustran en la figura 4) se muestran en la siguiente tabla:

Límite de alineación Rojo Blue Verde
2:00 312.5 133.3 400
3:00 150 283.3 433.3
4:00 250 300 350

Mediante los datos alineados de la tabla anterior, elige un reductor y aplícalo a los valores. En la siguiente tabla, se muestran los resultados de la aplicación de reductores diferentes a los datos alineados por promedio:

Límite de alineación Reductor: max Reductor: mean (promedio) Reductor: min Reductor: sum
2:00 400 281.9 133.3 845.8
3:00 433.3 288.9 150 866.7
4:00 350 300 250 900

De forma predeterminada, la reducción se aplica a todas tus series temporales, lo que genera una sola serie temporal. En la siguiente ilustración, se muestra el resultado de agregar las tres series temporales alineadas media con el reductor max, que genera los valores más altos de las series temporales:

Gráfico que muestra el resultado de usar el reductor max en las series temporales alineadas por promedio.
Figura 5: Reducción máxima de las tres series temporales alineadas pro promedio

La reducción también se puede combinar con la agrupación, en la que las series temporales se organizan en categorías, y el reductor se aplica en las series temporales de cada grupo.

Agrupación

La agrupación te permite aplicar un reductor en subconjuntos de tus series temporales, en lugar de hacerlo en todo el conjunto de series temporales. Para agrupar series temporales, selecciona una o más etiquetas. Luego, las series temporales se agrupan según sus valores para las etiquetas seleccionadas.

  • Esto da como resultado una serie temporal para cada grupo.
  • Luego, puedes aplicar un reductor diferente en la serie temporal por grupo. Esto se denomina reducción secundaria y reduce todas las series temporales agrupadas en un resultado.

Si un tipo de métrica registra valores para las etiquetas zone y color, puedes agrupar series temporales por una o ambas etiquetas. Cuando aplicas el reductor, cada grupo se reduce a una sola serie temporal. Si agrupas por color, obtendrás una serie temporal para cada color representado en los datos. Si agrupas por zona, obtendrás una serie temporal para cada zona que aparezca en los datos. Si agrupas por ambas, obtendrás una serie temporal para cada combinación de colores y zonas.

Por ejemplo, supón que has capturado varias series temporales con valores “rojo”, “azul” y “verde” para la etiqueta color. Después de alinear todas las series temporales, se pueden agrupar por valor color y, luego, reducirse por grupo. Esto da como resultado tres series temporales para colores específicas:

Gráfico que muestra series temporales agrupadas por color y reducidas.
Figura 6: Series temporales agrupadas por color y reducidas

En el ejemplo no se especifica el alineador ni el reductor que se usaron. El punto aquí es que la agrupación te permite reducir un conjunto grande de series temporales en un conjunto más pequeño, en el que cada serie temporal representa un grupo que comparte un atributo común: en este ejemplo, el valor de la etiqueta color.

Agregación secundaria

Cuando usas la agrupación, más de una serie temporal puede resultar en la reducción. La agregación secundaria te permite elegir un segundo reductor para que se aplique luego de la reducción agrupada.

En la siguiente tabla, se muestran los valores de las series temporales agrupadas (que se ilustran en la Figura 6):

Límite de alineación Grupo rojo Grupo azul Grupo verde
2:00 400 150 450
3:00 200 350 450
4:00 300 300 400

Estas tres series temporales ya se pueden reducir aún más mediante la aplicación de agregación secundaria. En la siguiente tabla, se muestran los resultados de la aplicación de reductores seleccionados:

Límite de alineación Reductor: max Reductor: mean (promedio) Reductor: min Reductor: sum
2:00 450 333.3 150 1000
3:00 450 333.3 200 1000
4:00 400 333.3 300 1000

En la siguiente ilustración, se muestra el resultado de agregar las tres series agrupadas con el reductor media:

Gráfico que muestra el resultado del reductor promedio en series temporales reducidas por grupo.
Figura 7: Series temporales agrupadas, después de agregación secundaria promedio

Similares, tipos y conversiones

Recuerda que los datos de una serie temporal se caracterizan por una categoría de métrica y un tipo de valor. Consulta Tipos de métricas y tipos para una revisión. Los alineadores y los reductores adecuados para un conjunto de datos pueden no ser adecuados para otro. Por ejemplo, un alineador o reductor que cuenta el número de valores falsos es apropiado para datos booleanos, pero no para datos numéricos. Del mismo modo, un alineador o reductor que calcula una media se aplica a los datos numéricos, pero no a los datos booleanos.

Algunos alineadores y reductores también se pueden usar para cambiar de forma explícita el tipo de métrica o el tipo de valor de una serie temporal. Algunos, como AlIGN_COUNT, lo hacen como efecto secundario.

  • Categoría de la métrica: Una métrica acumulativa es aquella en la que cada valor representa el total desde que comenzó la recopilación de valores. No puedes usar métricas acumulativas directamente en los gráficos, pero puedes usar métricas delta, en las que cada valor representa el cambio desde la medición anterior.

    También puedes convertir métricas acumulativas y delta para medir métricas.

    Por ejemplo, puedes usar el alineador ALIGN_DELTA para convertir las medidas acumulativas en medidas delta para la creación de gráficos, o usar el alineador ALIGN_RATE para convertir medidas acumulativas o delta en un indicador.

  • Tipo de valor: algunos alineadores y reductores dejan el tipo de valor de los datos de entrada sin modificar. Por ejemplo, los datos de números enteros aún son datos de números enteros después de la alineación. Otros alineadores y reductores convierten los datos de un tipo a otro, por lo que la información se puede analizar de formas no apropiadas para el tipo de valor original.

    Por ejemplo, el reductor REDUCE_COUNT puede aplicarse a datos numéricos, booleanos, de string y de distribución, pero el resultado que produce es un número entero de 64 bits que cuenta la cantidad de valores en el período. REDUCE_COUNT solo se puede aplicar para medir y medir métricas delta, y deja la clase de métrica sin cambios.

Las tablas de referencia para Aligner y Reducer indican qué tipo de datos es adecuado para todas las conversiones que generan resultados. Por ejemplo, esta es la entrada para ALIGN_DELTA:

Entrada de referencia para el alineador delta