Présentation

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 fortement le type d'analyse que vous pouvez effectuer en ligne, par exemple pour décider d'envoyer une alerte en fonction d'une augmentation ou d'une diminution soudaine sur 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. Autrement dit, en quelques secondes, il détecte les tendances et la saisonnalité dans toutes les séries temporelles, et détermine si des segments enregistrent des pics ou des baisses inattendus.

Fonctionnalité de l'API

  • Gérer les ensembles de données
    • 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 de traitement d'un ensemble de données.
  • Interroger des ensembles de données
    • 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é. La série temporelle 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
    • Ingérez les nouveaux événements qui se sont récemment produits et incorporez-les à l'index en temps quasi réel (avec un délai de quelques secondes à quelques minutes).

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 au mieux. Les métadonnées (informations sur le jeu de données et l'état opérationnel) et les données utilisateur en streaming mises à jour dans les 24 heures suivant le début de l'indisponibilité ne sont pas toujours récupérables.

Lors de la récupération, les requêtes et les mises à jour par flux des ensembles de données peuvent ne pas être disponibles.

Données d'entrée

Il est courant que des données numériques et catégorielles soient collectées 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, pour un événement unique, le centre de données, l'utilisateur, les noms de tâche et les numéros de tâche sont inclus. La figure ci-dessus montre une série d'événements enregistrés pour un job unique 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 de données 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 données de flux. 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. Les mises à jour en streaming sont indexées presque en temps réel.

Séries temporelles et détection d'anomalies

Tranches

Pour l'API Timeseries Insights, une tranche est une collection d'événements avec 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 certain nombre d'événements, les événements sont agrégés en valeurs numériques par résolution spécifiée par l'utilisateur et qui correspondent aux intervalles de temps spécifiés par la série. 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 anomalies

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 souhaitons savoir si le dernier mois de 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). Les séries temporelles récupérées avant que detectionTime ne soient partitionnées en une période de formation antérieure, suivie d'une période de holdout. Le système utilise les données de la période d'entraînement pour entraîner un modèle, et utilise la période de retenue pour vérifier que le modèle peut prédire de manière fiable les valeurs suivantes. Dans cet exemple, la période de retenue est d'un 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