row_window_session()
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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:
Durchläuft die Eingabesequenz von Ausdr-Werten in der Reihenfolge.
Für jeden Wert entscheidet er, ob eine neue Sitzung erstellt werden soll.
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 wirdtrue
.
Beispiele
Im folgenden Beispiel werden Sitzungsanfangswerte für eine Tabelle mit einer Sequenz-ID-Spalte und einer Timestamp-Spalte berechnet, datatable
um 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 |