Aperçu

Présentation

La prévision et la détection d'anomalies sur des milliards de séries temporelles nécessitant beaucoup de ressources de calcul. La plupart des systèmes existants exécutent des prévisions et des anomalies la détection sous forme de jobs par lot (par exemple, pipelines de risque, prévision du trafic, planification de la demande, etc.). Cela limite considérablement le type d'analyse que vous peuvent effectuer en ligne, par exemple pour décider d'alerter en cas d'augmentation soudaine ou diminue pour un ensemble de dimensions d'événement.

Les principaux objectifs de l'API Timeseries Insights sont les suivants:

  • s'adapter à des milliards de séries temporelles construites dynamiquement à partir de séries les événements et leurs propriétés, en fonction des paramètres de requête.
  • Fournissez des prévisions et des résultats de détection d'anomalies en temps réel. En d'autres termes, en quelques secondes, détecter les tendances et la saisonnalité pour toutes les séries temporelles ; et déterminer si des segments augmentent ou diminuent de manière inattendue.

Fonctionnalité de l'API

  • Gérer des ensembles de données <ph type="x-smartling-placeholder">
      </ph>
    • Indexer et charger un ensemble de données composé de plusieurs sources de données stockées sur Cloud Storage. Autoriser l'ajout de nouveaux événements en streaming
    • Décharger un ensemble de données qui n'est plus nécessaire
    • Demander l'état du traitement d'un ensemble de données
  • Interroger des ensembles de données <ph type="x-smartling-placeholder">
      </ph>
    • Récupère la série temporelle qui correspond aux valeurs de propriété données. La série temporelle est prévu jusqu'à un horizon temporel spécifié. L'heure est également évaluée pour détecter les anomalies.
    • Détectez automatiquement des combinaisons de valeurs de propriété pour détecter des anomalies.
  • Mettre à jour des ensembles de données <ph type="x-smartling-placeholder">
      </ph>
    • Ingérer de nouveaux événements récents et les intégrer à l'index presque en temps réel (quelques secondes à quelques minutes de retard).

Reprise après sinistre

L'API Timeseries Insights ne sert pas de solution de secours pour Cloud Storage ou renvoyer des mises à jour brutes en flux continu. Les clients sont responsable du stockage et de la sauvegarde des données séparément.

Après une panne régionale, le service effectue une récupération optimale. Métadonnées (informations sur l'ensemble de données et l'état opérationnel) et l'utilisateur diffusé en continu mises à jour dans les 24 heures après le début de l'indisponibilité être récupérées.

Lors de la récupération, il est possible que les requêtes et les mises à jour en continu des ensembles de données être disponibles.

Données d'entrée

Il est courant de collecter des données numériques et catégorielles au fil du temps. Pour la figure suivante illustre l'utilisation du processeur et de la mémoire, ainsi que l'état une seule tâche en cours d'exécution dans un centre de données pour chaque minute sur une période de temps. L'utilisation du processeur et de la mémoire sont des valeurs numériques, et l'état est valeur catégorielle.

Séries temporelles (timeseries)

Événement

L'API Timeseries Insights utilise des événements comme entrée de données de base. Chaque événement est associé à une un code temporel et un ensemble de dimensions, c'est-à-dire des paires clé/valeur où la clé correspond au nom de la dimension. Cette représentation simple nous permet de traiter les données à l'échelle des milliers de milliards. Par exemple, les noms du centre de données, de l'utilisateur, des jobs et des tâches des nombres sont inclus pour représenter entièrement un événement unique. La figure ci-dessus montre une série d'événements enregistrés pour un seul job et illustrant un sous-ensemble de dimensions.

{"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 est un ensemble d'événements. Les requêtes sont effectuées dans le même ensemble de données. Chaque projet peut comporter plusieurs ensembles de données.

Un ensemble de données est créé à partir de données par lot et par flux. Lectures de compilation de données par lot à partir de plusieurs URI Cloud Storage en tant que sources de données. Une fois la compilation par lot terminée, l'ensemble de données peut être mis à jour avec des flux de données. Utiliser la compilation par lot pour l'historique données, le système peut éviter les problèmes de démarrage à froid.

Un ensemble de données doit être compilé ou indexé avant de pouvoir être interrogé ou mis à jour. L'indexation commence lorsque l'ensemble de données est créé et ne prend généralement que quelques minutes en fonction de la quantité de données. Plus précisément, les sources de données sont analysées une seule fois lors de l'indexation initiale. Si le contenu de les URI Cloud Storage changent une fois l'indexation initiale terminée, ils ne sont pas analysés à nouveau. Utilisez les mises à jour en streaming pour obtenir des données supplémentaires. Mises à jour en continu sont indexées en continu, quasiment en temps réel.

Détection de séries temporelles et d'anomalies

Tranches

Pour l'API Timeseries Insights, une tranche est un ensemble d'événements associés à une certaine combinaison de valeurs de dimension. Mer s'intéressent à la mesure des événements qui entrent dans ces tranches au fil du temps.

Pour un segment donné, les événements sont agrégés sous forme de valeurs numériques par résolution des intervalles de temps spécifiés par l'utilisateur, qui correspondent aux séries temporelles à détecter. ou d'anomalies. La figure précédente illustre les différents choix de segments obtenus à partir de différentes combinaisons de "user", "job" et "data_center" .

Séries temporelles et anomalie

Une anomalie se produit pour une tranche donnée si la valeur numérique de l'intervalle de temps d'intérêt est très différente des valeurs du passé. La La figure ci-dessus illustre une série temporelle basée sur les températures mesurées dans les depuis plus de 10 ans. Supposons que nous voulions savoir si le dernier mois 2015 est une anomalie. Une requête envoyée au système spécifie l'heure d'intérêt, detectionTime, qui sera désormais "2015/12/01" et granularity à "1 month" (1 mois). La des séries temporelles récupérées avant que detectionTime ne soit partitionné dans une plage antérieure une période d'entraînement suivie d'une période de retenue. Le système utilise les données la période d'entraînement pour entraîner un modèle, et utilise la période d'attente pour vérifier que le modèle peut prédire de manière fiable les valeurs suivantes. Pour cet exemple, la partie interne est de 1 an. L'image montre les données réelles et les valeurs prédites avec les limites supérieure et inférieure. La température pour 2015/12 est marquée car la valeur réelle est en dehors des limites prédites.

Étape suivante