Übersicht

Einführung

Registrieren Sie sich für die Vorschau.

Sollten Sie innerhalb eines Werktags keine Antwort von uns erhalten, melden Sie sich bitte noch einmal an.

Prognosen und Anomalieerkennung bei Milliarden von Zeitachsen sind rechenintensiv. Die meisten vorhandenen Systeme führen eine Prognose- und Anomalieerkennung als Batchjobs aus (z. B. Risikopipelines, Trafficprognose, Bedarfsplanung usw.). Dadurch wird der Umfang der Online-Analysen stark eingeschränkt. Ein Beispiel: Wir senden eine Benachrichtigung über eine plötzliche Erhöhung oder Verringerung einer Reihe von Ereignisdimensionen.

Hauptzwecke für die Durchführung von Zeitachsenprognosen und deren Verwendung für die Anomalieerkennung mit der TimeSeries Insights API:

  • auf Milliarden von Zeitachsen skaliert, wobei eine Zeitachse als Zeitreihe für die Anzahl der Ereignisse für ein Ereignisattribut definiert ist – z.B. die Anzahl der Transaktionen, die bei einem Mobilfunkanbieter ausgeführt werden.
  • Echtzeitlatenz für Prognosen und Anomalieerkennung bereitstellen (z.B. innerhalb weniger Sekunden), um Trends und die Saisonabhängigkeit für alle bereitgestellten Zeitachsen zu erkennen und zu entscheiden, ob Schnitte unerwartet oder seltener ausgelöst werden.

API-Funktionen

  • Indexieren und Laden eines Datasets, das aus mehreren Datenquellen besteht, die in Google Cloud Storage gespeichert sind. Zusätzliche Ereignisse können gestreamt angehängt werden.
  • Zeitachsenabfragen über ein geladenes Dataset ausführen, um Trendtrends vorherzusagen und Anomalie zu erkennen
  • Entladen Sie einen nicht mehr benötigten Datensatz.
  • Fragen Sie den Verarbeitungsstatus eines Datensatzes ab.

Eingabedaten

Zeitachsendaten sind eine Sammlung von Beobachtungen, die im Laufe der Zeit wiederholt gemessen werden. Beispielsweise ist die durchschnittliche CPU-Auslastung des bestimmten Jobs für jede Minute die einfachen Zeitachsendaten. Die kleinste Einheit der Eingabedaten ist ein Datenpunkt als Schlüssel/Wert-Paar zu einem bestimmten Zeitpunkt. In diesem Fall ist der Schlüssel der Name der Dimension. Die Dimensionen in unserem Beispiel sind cpu, ram und state usw.

Zeitachse

Termin

Die TimeSeries Insights API verwendet Ereignisse als Basiseintrag für Daten. Zum Verarbeiten von Datenpunkten im Maßstab von Billionen können mehrere Dimensionen für verschiedene Aggregationen verwendet werden. Zum Beispiel werden das Rechenzentrum, der Nutzer, die Jobnamen und die Aufgabennummer hinzugefügt, um ein einzelnes Ereignis darzustellen.

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

Jedes Ereignis hat:

  • einen Zeitstempel
  • Eine oder mehrere Dimensionen, gilt für jede Dimension:
    • einen Namen (im gesamten Datensatz eindeutig)
    • einen Wert (String, boolesch, int/long oder double) Die Dimensionen eines Ereignisses sind Eigenschaften, die mit dem Ereignis zusammenhängen. Einfach ausgedrückt, ein Satz von Dimensionsnamen entspricht einem Ereignistyp. Beispiel: ["user", "job", "data_center", "task_num", "gcu"] wird für Jobressourcenverbrauch verwendet und ["user", "gcu", "disk", "ram"] für Nutzerkontingentereignisse.
  • Eine Gruppen-ID mit langer Laufzeit auf denselben Wert für die zugehörigen Ereignisdatensätze festgelegt. In der Regel erhält jeder Event-Eintrag eine eindeutige ID. Anwendungsfälle für die Gruppen-ID umfassen unter anderem Folgendes:
    • Eine Ereignis-ID für dasselbe Ereignis (mit demselben Zeitstempel) aus mehreren Event-Datensätzen, insbesondere wenn verschiedene Aspekte desselben Ereignisses aus verschiedenen Quellen stammen und nicht zusammengeführt werden, bevor das System gestartet wird. Beispielsweise können mehrere Sensoren, die dasselbe Gerät überwachen, einen separaten Ereignisdatensatz erzeugen.
    • eine Sitzungs-ID für eine Sammlung verwandter Ereignisse, normalerweise mit Zeitstempeln innerhalb eines kurzen Zeitraums. Ein Beispiel sind Aktivitäten aus einer Browsersitzung. Ein weiteres Beispiel sind Logeinträge von einer Taxifahrt.
    • eine Nutzerkonto-ID. Deshalb gehören alle Ereignisereignisse mit derselben Gruppen-ID zum selben Nutzer.

Datensatz

Ein DataSet ist eine Sammlung von Ereignissen. Jede Abfrage wird im selben Datensatz ausgeführt. Jedes Projekt kann mehrere Datasets enthalten.

Jeder Datensatz kann aus Batch- und Streamingdaten erstellt werden. Batch-Build liest Daten aus mehreren Cloud Storage-URIs als Datenquellen. Nach Abschluss des Batch-Builds kann das Dataset mit Streaming-Daten aktualisiert werden. Wenn Batch-Builds für Verlaufsdaten verwendet werden, kann das System Kaltstartprobleme vermeiden.

Ein DataSet muss erstellt/indexiert werden, bevor es abgefragt oder aktualisiert werden kann. Die Indexierung beginnt, wenn der Datensatz erstellt wird, und abhängig von der Datenmenge in der Regel bis zu mehreren Stunden. Genauer gesagt werden die Datenquellen während der ersten Indexierung nur einmal gescannt. Wenn sich der Inhalt der Cloud Storage-URIs nach der ersten Indexierung ändert, werden sie nicht noch einmal gescannt. Streaming-Updates für zusätzliche Daten verwenden. Streaming-Updates werden nahezu nahezu in Echtzeit indexiert.

Hinweis:Die TimeSeries Insights API kann die unbearbeiteten Streaming-Aktualisierungen nicht zurückgeben. Daher sollten Kunden einen eigenen Speicher für diese Daten haben.

Zeitachsen und Anomalieerkennung

Slicen

Für die TimeSeries Insights API ist eine Slice-Sammlung eine Sammlung von Ereignissen mit einer bestimmten Kombination von Dimensionswerten. Wir sind daran interessiert, die Ereignisse, die in diese Slices fallen, im Laufe der Zeit zu beobachten. Für ein bestimmtes Segment werden die Ereignisse in numerische Werte pro Nutzer angegeben, die eine Auflösung von Zeitintervallen haben. Dies sind die Zeitachsen, um Anomalien zu erkennen. Die obige Abbildung zeigt verschiedene Auswahlmöglichkeiten von Segmenten aus einem Dataset mit "user", "job", "data_center"-Dimensionen.

Zeitachsen und Anomalie

Bei einem bestimmten Segment tritt eine Anomalie auf, wenn der numerische Wert aus dem relevanten Zeitintervall deutlich von den Werten in der Vergangenheit abweicht. Das Bild zeigt eine Zeitachse, die auf globalen Temperaturen über 10 Jahre basiert. Angenommen, wir möchten wissen, ob der letzte Monat von 2015 eine Anomalie ist. Eine Abfrage an das System gibt das gewünschte Zeitintervall testInterval an, "ein Monat endet am 12.12.2015". Die abgerufene Zeitachse wird vor dem testInterval-Vorgang in einen früheren Trainingszeitraum, gefolgt von einem Holdout-Zeitraum, aufgeteilt. Das System verwendet Daten aus dem Trainingszeitraum zum Trainieren eines Modells und verwendet die Wartezeit, um zu bestätigen, dass das Modell die nächsten Werte zuverlässig vorhersagen kann. In diesem Beispiel beträgt die Wartezeit einen Jahr. Die Wartezeit beträgt in der Regel 5 bis 10% des gesamten Verlaufs. Das Bild zeigt die tatsächlichen Daten und die vorhergesagten Werte des Modells mit oberen und unteren Grenzen. Die Temperatur für 2015/12 ist als Anomalie gekennzeichnet, da der tatsächliche Wert außerhalb der Vorhersagegrenzen erheblich liegt.