Visão geral

Introdução

A previsão e a detecção de anomalias em bilhões de série temporal estão com muita computação. A maioria dos sistemas atuais executa previsões e anomalias como jobs em lote (por exemplo, pipelines de risco, previsão de tráfego, planejamento de demanda e assim por diante). Isso limita bastante o tipo de análise que você podem realizar on-line, como decidir se deve alertar com base em um aumento repentino ou de redução em um conjunto de dimensões de evento.

Os principais objetivos da API Timeseries Insights são:

  • Escalar para bilhões de séries temporais que são criadas dinamicamente a partir de eventos brutos e suas propriedades com base em parâmetros de consulta.
  • Forneça resultados de previsão e detecção de anomalias em tempo real. Ou seja, em alguns segundos, detecte tendências e sazonalidade em todas as séries temporais e decida se alguma fração está aumentando ou diminuindo inesperadamente.

Funcionalidade da API

  • Gerenciar conjuntos de dados
    • Indexar e carregar um conjunto de dados que consiste em várias fontes de dados armazenadas no Cloud Storage. Permitir a adição de novos eventos em streaming.
    • Descarregar um conjunto de dados que não é mais necessário.
    • Solicitar o status de processamento de um conjunto de dados.
  • Consultar conjuntos de dados
    • Recupera a série temporal que corresponde aos valores de propriedade fornecidos. A série temporal está previsto até um horizonte de tempo especificado. A série temporal também é avaliada quanto a anomalias.
    • Detectar automaticamente combinações de valores de propriedade para anomalias.
  • Atualizar conjuntos de dados
    • Ingerir novos eventos ocorridos recentemente e incorporá-los ao índice quase em tempo real (segundos ou minutos de atraso).

Recuperação de desastres

A API Timeseries Insights não serve como backup do Cloud Storage nem retorna atualizações de streaming brutas. Os clientes são responsável por armazenar e fazer backup dos dados separadamente.

Após uma interrupção do serviço regional, o serviço realiza a melhor recuperação possível. Metadados (informações sobre conjunto de dados e status operacional) e usuário transmitido os dados atualizados 24 horas após o início da interrupção podem não ser recuperados.

Durante a recuperação, as consultas e as atualizações de streaming para conjuntos de dados podem não estar disponíveis.

Dados de entrada

É comum que dados numéricos e categóricos sejam coletados ao longo do tempo. Por exemplo, a figura a seguir mostra o uso de CPU, de memória e o status de um único job em execução em um data center a cada minuto durante um período. O uso da CPU e da memória são valores numéricos, e o status é um valor categórico.

Timeseries

Evento

A API Timeseries Insights usa eventos como a entrada de dados básica. Cada evento tem um carimbo de data/hora e um conjunto de dimensões, ou seja, pares de chave-valor em que a chave é o nome da dimensão. Essa representação simples nos permite lidar com dados de a escala de trilhões. Por exemplo, data center, usuário, nomes de jobs e são incluídos para representar totalmente um único evento. A figura acima mostra uma série de eventos registrados para um único job que ilustra um subconjunto de dimensões.

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

Um DataSet é uma coleção de eventos. As consultas são realizadas no mesmo conjunto de dados. Cada projeto pode ter vários conjuntos de dados.

Um conjunto de dados é criado a partir de dados em lote e de streaming. A criação de dados em lote lê de vários URIs do Cloud Storage como fontes de dados. Após a conclusão da criação em lote, o conjunto de dados pode ser atualizado com dados de streaming. Usando o build em lote para dados históricos, o sistema pode evitar problemas de inicialização a frio.

Um conjunto de dados precisa ser criado ou indexado antes de ser consultado ou atualizado. A indexação começa quando o conjunto de dados é criado e geralmente leva de alguns minutos a horas para ser concluída, dependendo da quantidade de dados. Mais especificamente, o as fontes de dados são verificadas uma vez durante a indexação inicial. Se o conteúdo dos URIs do Cloud Storage mudar após a indexação inicial ser concluída, eles não serão verificados novamente. Use atualizações de streaming para mais dados. Atualizações de streaming são indexados continuamente quase em tempo real.

Detecção de séries temporais e anomalias

Frações

Na API Timeseries Insights, um corte é uma coleção de eventos com uma determinada combinação de valores de dimensão. Nosso interesse é uma medida de eventos que se encaixam nessas fatias ao longo do tempo.

Para uma determinada fatia, os eventos são agregados em valores numéricos por resolução especificada pelo usuário de intervalos de tempo, que são as séries temporais para detectar anomalias. A figura anterior ilustra diferentes escolhas de fatias resultantes de diferentes combinações das dimensões "user", "job" e "data_center".

Série temporal e anomalia

Uma anomalia acontece em uma determinada fatia se o valor numérico do intervalo de tempo de interesse for significativamente diferente dos valores anteriores. O a figura acima ilustra uma série temporal baseada em temperaturas medidas no ao longo de 10 anos. Suponha que estamos interessados em saber se o último mês de 2015 é uma anomalia. Uma consulta ao sistema especifica que o período de interesse, detectionTime, seja "2015/12/01" e que o granularity seja "1 mês". A série temporal recuperada antes do detectionTime é dividida em um período anterior de treinamento seguido por um período de holdout. O sistema usa dados do período de treinamento para treinar um modelo e usa o período de holdout para verificar se o modelo pode prever com precisão os próximos valores. Neste exemplo, o período de espera é de 1 ano. A imagem mostra os dados reais e os valores previstos do modelo com limites superior e inferior. A temperatura para 12/2015 está marcada porque o valor real está fora dos limites previstos.

A seguir