series_periods_detect()
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Ermittelt die signifikantesten Zeiträume in einer Zeitreihe.
Syntax
series_periods_detect(
min_period,
,
max_period num_periods,
)
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
Reihe | dynamic |
✔️ | Ein Array numerischer Werte, in der Regel die resultierende Ausgabe der Make-Series - oder make_list Operatoren. |
min_period | real |
✔️ | Der minimale Zeitraum, nach dem gesucht werden soll. |
max_period | real |
✔️ | Der maximal zu durchsuchende Zeitraum. |
num_periods | long |
✔️ | Die maximale erforderliche Anzahl von Zeiträumen. Diese Zahl ist die Länge der dynamischen Ausgabearrays. |
Wichtig
- Der Algorithmus kann Punkte erkennen, die mindestens 4 Punkte und höchstens die Hälfte der Datenreihenlänge enthalten.
- Legen Sie die min_period ein wenig unter und max_period etwas über den Zeiträumen, die Sie in der Zeitreihe erwarten. Wenn Sie z. B. über ein stündliches aggregiertes Signal verfügen und nach täglichen und wöchentlichen Zeiträumen (24 bzw. 168 Stunden) suchen, können Sie min_period=0,8*24, max_period=1,2*168 festlegen und 20 % Ränder um diese Zeiträume belassen.
- Die Eingabezeitreihe muss normal sein. Das heißt, aggregiert in Konstantencontainern, was immer der Fall ist, wenn sie mithilfe von Make-Series erstellt wurde. Andernfalls ist die Ausgabe bedeutungslos.
Gibt zurück
Die Funktion gibt eine Tabelle mit zwei Spalten aus:
- perioden: Ein dynamisches Array mit den gefundenen Punkten in Einheiten der Bin-Größe, sortiert nach ihren Bewertungen.
- Bewertungen: Ein dynamisches Array mit Werten zwischen 0 und 1. Jedes Array misst die Bedeutung eines Punkts an seiner jeweiligen Position im Punktearray .
Beispiel
Die folgende Abfrage bettet eine Momentaufnahme eines Monats des Datenverkehrs einer Anwendung ein, aggregiert zweimal pro Tag. Die Größe des Behälters beträgt 12 Stunden.
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| render linechart
Auf series_periods_detect()
dieser Serie laufen, ergibt die wöchentliche Periode, 14 Punkte lang.
print y=dynamic([80, 139, 87, 110, 68, 54, 50, 51, 53, 133, 86, 141, 97, 156, 94, 149, 95, 140, 77, 61, 50, 54, 47, 133, 72, 152, 94, 148, 105, 162, 101, 160, 87, 63, 53, 55, 54, 151, 103, 189, 108, 183, 113, 175, 113, 178, 90, 71, 62, 62, 65, 165, 109, 181, 115, 182, 121, 178, 114, 170])
| project x=range(1, array_length(y), 1), y
| project series_periods_detect(y, 0.0, 50.0, 2)
Output
series_periods_detect_y_periods | series_periods_detect_y_periods_scores |
---|---|
[14.0, 0.0] | [0.84, 0.0] |
Hinweis
Die tägliche Periode, die auch im Diagramm zu sehen ist, wurde nicht gefunden, da das Sampling zu grob ist (12h Bin-Größe), sodass eine tägliche Periode von 2 Bins unter der Mindestdauergröße von 4 Punkten liegt, die vom Algorithmus benötigt wird.