Descripción general

Introducción

La previsión y la detección de anomalías en miles de millones de series temporales en términos de procesamiento. La mayoría de los sistemas existentes ejecutan previsiones y anomalías de detección como trabajos por lotes (por ejemplo, canalizaciones de riesgo, previsión del tráfico, la planificación de la demanda, etcétera). Esto limita en gran medida el tipo de análisis que pueden realizar en línea, como decidir si se debe generar una alerta en función de un aumento repentino o en función de un conjunto de dimensiones de evento.

Los objetivos principales de la API de Timeseries Insights son los siguientes:

  • Escalan a miles de millones de series temporales que se construyen dinámicamente a partir de sin procesar los eventos y sus propiedades, según los parámetros de consulta.
  • Proporciona resultados de previsión y detección de anomalías en tiempo real Es decir, en pocos segundos, detectar tendencias y estacionalidad en todas las series temporales y decidir si las porciones tienen un aumento repentino o una disminución inesperada.

Funcionalidad de la API

  • Administrar conjuntos de datos
    • Indexar y cargar un conjunto de datos que conste de varias fuentes de datos almacenadas en en Google Cloud Storage. Permitir agregar eventos nuevos en forma de transmisión
    • Descarga un conjunto de datos que ya no sea necesario.
    • Solicitar el estado de procesamiento de un conjunto de datos.
  • Consulta conjuntos de datos
    • Recupera las series temporales que coinciden con los valores de propiedad especificados. Las series temporales se prevé hasta un horizonte de tiempo especificado. La hora serie también se evalúa para detectar anomalías.
    • Detecta automáticamente combinaciones de valores de propiedades para detectar anomalías.
  • Actualizar conjuntos de datos
    • Transfiere eventos nuevos que ocurrieron recientemente y, luego, incorpóralos al índice casi en tiempo real (retraso de segundos a minutos).

Recuperación ante desastres

La API de Timeseries Insights no sirve como copia de seguridad Cloud Storage o mostrar actualizaciones de transmisión sin procesar. Los clientes son de almacenar y crear copias de seguridad de los datos por separado.

Después de una interrupción regional, el servicio realiza la recuperación del mejor esfuerzo. Metadatos (información sobre el conjunto de datos y el estado operativo) y datos de transmisión de datos actualizados en un plazo de 24 horas después del inicio de la interrupción recuperarse.

Durante la recuperación, es posible que las consultas y las actualizaciones de transmisión a los conjuntos de datos no estar disponible.

Datos de entrada

Es común que los datos numéricos y categóricos se recopilen a lo largo del tiempo. Para ejemplo, la siguiente imagen muestra el uso de CPU, el uso de memoria y el estado de un único trabajo en ejecución en un centro de datos por cada minuto durante un período. El uso de CPU y de memoria son valores numéricos, y el estado es un categórico.

Timeseries

Evento

La API de Timeseries Insights usa eventos como la entrada de datos básica. Cada evento tiene un una marca de tiempo y una colección de dimensiones, es decir, pares clave-valor en los que la clave es el nombre de la dimensión. Esta simple representación nos permite manejar datos en la escala de billones. Por ejemplo, el centro de datos, el usuario, los nombres de los trabajos y las tareas se incluyen números para representar completamente un solo evento. En la figura anterior, se muestra Una serie de eventos registrados para un solo trabajo que ilustra un subconjunto de dimensiones.

{"name":"user","stringVal":"user_64194"},
{"name":"job","stringVal":"job_45835"},
{"name":"data_center","stringVal":"data_center_30389"},
{"name":"task_num","longVal":19},
{"name":"cpu","doubleVal":3840787.5207877564},
{"name":"ram","doubleVal":1067.01},
{"name":"state","stringVal":"idle"}

DataSet

Un DataSet es una colección de eventos. Las consultas se realizan dentro del mismo conjunto de datos. Cada puede tener varios conjuntos de datos.

Los conjuntos de datos se crean a partir de datos por lotes y de transmisión. Lecturas de compilación de datos por lotes desde varios URI de Cloud Storage como fuentes de datos. Cuando se complete la compilación por lotes, el conjunto de datos puede actualizarse con datos de transmisión. Cómo usar la compilación por lotes para datos históricos de datos, el sistema puede evitar problemas de inicio en frío.

Se debe crear o indexar un conjunto de datos antes de que se pueda consultar o actualizar. La indexación comienza cuando se crea el conjunto de datos y suele tardar minutos en horas para completarse, según la cantidad de datos. Más concretamente, el las fuentes de datos se analizan una vez durante la indexación inicial. Si el contenido de los URI de Cloud Storage cambian después de que se completa la indexación inicial, no se vuelve a analizarlo. Usa las actualizaciones de transmisión para obtener datos adicionales. Actualizaciones de transmisiones se indexen de forma continua casi en tiempo real.

Detección de series temporales y anomalías

Porciones

Para la API de Timeseries Insights, una porción es una colección de eventos con una combinación determinada de valores de dimensiones. Mié están interesadas en una medición de los eventos que entran en estas porciones con el tiempo.

Para una porción determinada, los eventos se agregan en valores numéricos por resolución de intervalos de tiempo especificada por el usuario, que son las series temporales que anomalías. En la figura anterior, se ilustran diferentes opciones de porciones que se obtuvieron de diferentes combinaciones de “user”, “job” y “data_center” dimensiones.

Series temporales y anomalía

Ocurre una anomalía para una porción determinada si el valor numérico del momento de interés es significativamente diferente de los valores del pasado. El de arriba ilustra una serie temporal basada en las temperaturas medidas en los en el mundo durante 10 años. Supongamos que nos interesa saber si el último mes del 2015 es una anomalía. Una consulta al sistema especifica el tiempo de interés, detectionTime, que será "2015/12/01" y granularity sea "1 mes". El series temporales recuperadas antes de que el detectionTime se divida en uno anterior período de entrenamiento seguido de un período de retención. El sistema usa datos de el período de entrenamiento para entrenar un modelo y usa el período de exclusión para verificar que para que el modelo prediga los valores siguientes de forma confiable. En este ejemplo, los datos de exclusión es de 1 año. La imagen muestra los datos reales y los valores predichos de el modelo con límites inferiores y superiores. La temperatura para 2015/12 está marcada anomalía porque el valor real está fuera de los límites previstos.

¿Qué sigue?