Descripción general

Introducción

Regístrate para obtener una vista previa.

Si no recibe noticias nuestras en un plazo de un día hábil, intente volver a registrarse.

La detección de anomalías y anomalías en más de miles de millones de series temporales es intensamente computacional. La mayoría de los sistemas existentes ejecutan la previsión y la detección de anomalías como trabajos por lotes (p.ej., canalizaciones de riesgos, previsión del tráfico, planificación de la demanda, ...). Esto limita de manera grave el tipo de análisis que se puede realizar en línea (p.ej., debemos alertar sobre la base de un aumento repentino o una disminución en un conjunto de dimensiones de eventos).

A continuación, se indican los objetivos principales de la previsión de series temporales y su uso para la detección de anomalías con la API de Timeseries Insights:

  • escalar a miles de millones de series temporales (donde una serie temporal se define como una serie de recuentos de horas en el tiempo de una propiedad de evento, p.ej., la cantidad de transacciones realizadas en un proveedor).
  • Proporcionar latencia en tiempo real para la previsión y la detección de anomalías (p. ej., en pocos segundos, las tendencias y la estacionalidad de todas las series temporales que se muestran, y decidir si las secciones están espiando o disminuyen de forma inesperada)

Funciones de API

  • Indexa y carga un conjunto de datos que consta de varias fuentes de datos almacenadas en Google Cloud Storage. Permite agregar eventos adicionales de forma transmitido.
  • Ejecutar consultas de series temporales en un conjunto de datos cargado para prever la tendencia y detectar anomalías
  • Descarga los conjuntos de datos ya no necesarios.
  • Solicitar el estado de procesamiento de un conjunto de datos

Datos de entrada

Los datos de series temporales son una colección de observaciones que se miden de forma repetida con el tiempo. Por ejemplo, el uso promedio de cpu del trabajo específico de cada minuto son los datos de series temporales simples. La unidad más pequeña de los datos de entrada es un dato como un par de clave-valor en un momento específico. Aquí, la clave es el nombre de la dimensión. Las dimensiones de nuestro ejemplo pueden ser cpu, ram y state, etcétera.

Timeseries

Evento

La Timeseries Insights usa Event como la entrada de datos básica. A fin de manejar datos en la escala de billones, se pueden usar varias dimensiones para diferentes agregaciones. Por ejemplo, el centro de datos, el nombre de usuario, los nombres de trabajo y los números de tarea se agregan para representar un solo evento.

{"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"}

Cada Evento tiene lo siguiente:

  • una marca de tiempo
  • una o más dimensiones, cada dimensión con:
    • un nombre (único en todo el conjunto de datos)
    • un valor (string, booleano, int/long o double) Las dimensiones de un evento son propiedades relacionadas con el evento. En términos generales, un conjunto de nombres de dimensión corresponde a un tipo de eventos. Por ejemplo, ["user", "job", "data_center", "task_num", "gcu"] se usan para los eventos de consumo de recursos del trabajo, y ["user", "gcu", "disk", "ram"] se usa para los eventos de cuota del usuario.
  • Un ID de grupo de valor largo, se establece en el mismo valor para los registros de Event relacionados. En general, cada registro de un evento tiene un ID único. Los casos prácticos de ID de grupo también incluyen, entre otros, los siguientes:
    • Un identificador de evento para el mismo evento (con la misma marca de tiempo) de varios registros de Evento, en especial cuando diferentes aspectos del mismo evento provienen de diferentes fuentes y no se fusionan antes de ingresar al sistema. Por ejemplo, varios sensores que supervisan el mismo dispositivo pueden producir un registro de acontecimientos por separado.
    • Un identificador de sesión para una colección de eventos relacionados (por lo general, con marcas de tiempo dentro de un período corto). Un ejemplo son las actividades de una sesión de navegación web. Otro ejemplo son las entradas de registro de viajes en taxi.
    • un identificador de cuenta de usuario, para que todos los registros Event con el mismo ID de grupo pertenezcan al mismo usuario.

Conjunto de datos

Un DataSet es una colección de eventos. Cada consulta se realiza dentro del mismo DataSet. Cada proyecto puede tener varios conjuntos de datos.

Cada conjunto de datos se puede compilar a partir de datos de lotes y de transmisión. Las compilaciones por lotes de lectura de varios URI de Cloud Storage como fuentes de datos. Después de que se completa la compilación por lotes, DataSet se puede actualizar con datos de transmisión. Si se usa la compilación por lotes para datos históricos, el sistema puede evitar problemas en el inicio en frío.

Un conjunto de datos se debe compilar o indexar para que se pueda consultar o actualizar. La indexación comienza cuando se crea el conjunto de datos y, por lo general, tarda minutos en horas, según la cantidad de datos. Específicamente, las fuentes de datos se analizan una vez durante la indexación inicial. Si el contenido de los URI de Cloud Storage cambia una vez que finaliza la indexación inicial, no se lo analizarán nuevamente. Usa las actualizaciones de transmisión para obtener datos adicionales. Las actualizaciones de transmisión se indexan de forma continua casi en tiempo real.

Nota:La API de Timeseries Insights no puede mostrar las actualizaciones de transmisión sin procesar, por lo que los clientes deben tener su propio almacenamiento para estos datos.

Series temporales y detección de anomalías

Segmentos

Para la API de Timeseries Insights, una Slice es un grupo de eventos con una combinación determinada de valores de dimensión. Nos interesa que la distribución de los eventos caiga en estas secciones a lo largo del tiempo. Para una porción determinada, los eventos se agregan a valores numéricos por resolución especificada de intervalos de tiempo, que son las series temporales, a fin de detectar anomalías. En la figura anterior, se ilustran diferentes opciones de porciones de un conjunto de datos con dimensiones de "user", "job", "data_center".

Series temporales y anomalías

La anomalía para una porción determinada si el valor numérico del intervalo de interés es significativamente diferente de los valores anteriores. La imagen ilustra una serie temporal basada en temperaturas globales durante 10 años. Supongamos que nos interesa si el último mes de 2015 es una anomalía. Una consulta al sistema especifica el intervalo de tiempo de interés, testInterval,para que sea “un mes finaliza el 2015/12/31”. Las series temporales recuperadas antes de testInterval se particionan en un período de entrenamiento anterior seguido de un período de retención. El sistema usa datos del período de entrenamiento para entrenar un modelo y usa el período de exclusión a fin de verificar que el modelo pueda predecir de manera confiable los siguientes valores. En este ejemplo, el período de exclusión es de 1 año. Por lo general, el período de conservación es de 5 a 10% del historial completo. La imagen muestra los datos reales y valores previstos del modelo con límites superiores y inferiores. La temperatura del 2015/12 es marcada como anomalías, ya que el valor real es significativamente fuera de los límites de predicción.