Freigeben über


row_window_session()

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Berechnet sitzungsanfangswerte einer Spalte in einem serialisierten Zeilensatz.

Syntax

row_window_session( Expr , MaxDistanceFromFirst , MaxDistanceBetweenNeighbors [, Neustart])

Parameter

Name Type Erforderlich Beschreibung
Expr datetime ✔️ Ein Ausdruck, dessen Werte in Sitzungen gruppiert werden. Wenn Expr zu einem Nullwert führt, beginnt der nächste Wert eine neue Sitzung.
MaxDistanceFromFirst timespan ✔️ Bestimmt, wann eine neue Sitzung beginnt, den maximalen Abstand zwischen dem aktuellen Ausdruckswert und dem Wert am Anfang der Sitzung zu verwenden.
MaxDistanceBetweenNeighbors timespan ✔️ Ein weiteres Kriterium für das Starten einer neuen Sitzung unter Verwendung des maximalen Abstands von einem Wert von Expr zum nächsten.
Neu starten boolean Wenn angegeben, wird jeder Wert, der ausgewertet wird, um die Sitzung sofort neu zu true starten.

Erfahren Sie mehr über Syntaxkonventionen.

Gibt zurück

Die Funktion gibt die Werte am Anfang jeder Sitzung zurück. Es verwendet das folgende konzeptionelle Berechnungsmodell:

  1. Durchläuft die Eingabesequenz von Ausdr-Werten in der Reihenfolge.

  2. Für jeden Wert entscheidet er, ob eine neue Sitzung erstellt werden soll.

  3. Wenn eine neue Sitzung erstellt wird, gibt die Funktion den aktuellen Wert von Expr zurück. Andernfalls wird der vorherige Wert von Expr zurückgegeben.

Hinweis

Der Wert stellt eine neue Sitzung dar, wenn er die folgenden Bedingungen mithilfe des logischen OR-Vorgangs erfüllt:

  • Wenn kein vorheriger Sitzungswert vorhanden war oder der vorherige Sitzungswert null war.
  • Wenn der Wert von Expr gleich oder überschreitet den vorherigen Sitzungswert plus MaxDistanceFromFirst.
  • Wenn der Wert von Expr gleich oder überschreitet den vorherigen Wert von Expr plus MaxDistanceBetweenNeighbors.
  • Wenn Restart die Bedingung angegeben und ausgewertet wird true.

Beispiele

Im folgenden Beispiel werden Sitzungsanfangswerte für eine Tabelle mit einer Sequenz-ID-Spalte und einer Timestamp-Spalte berechnet, datatableum die Uhrzeit jedes Datensatzes aufzuzeichnen. Die Daten werden nach den Sequenz-IDs und Zeitstempeln sortiert, und dann gibt das Beispiel Werte für ID, Zeitstempel und eine neue Spalte "SessionStarted" zurück . Eine Sitzung kann eine Stunde nicht überschreiten. Es wird fortgesetzt, solange Datensätze weniger als fünf Minuten voneinander entfernt sind und die ID gleich bleibt. Das Beispiel enthält Datensätze, die weniger als fünf Minuten voneinander entfernt sind.

datatable (ID:string, Timestamp:datetime) [
    "1", datetime(2024-04-11 10:00:00),
    "2", datetime(2024-04-11 10:18:00),
    "1", datetime(2024-04-11 11:00:00),
    "3", datetime(2024-04-11 11:30:00),
    "2", datetime(2024-04-11 13:30:00),
    "2", datetime(2024-04-11 10:16:00)
]
| sort by ID asc, Timestamp asc
| extend SessionStarted = row_window_session(Timestamp, 1h, 5m, ID != prev(ID))

Output

Kennung Timestamp SessionStarted
1 2024-04-11T10:00:00Z 2024-04-11T10:00:00Z
1 2024-04-11T11:00:00Z 2024-04-11T11:00:00Z
2 2024-04-11T10:16:00Z 2024-04-11T10:16:00Z
2 2024-04-11T10:18:00Z 2024-04-11T10:16:00Z
2 2024-04-11T13:30:00Z 2024-04-11T13:30:00Z
3 2024-04-11T11:30:00Z 2024-04-11T11:30:00Z