row_window_session()
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Oblicza wartości początkowe sesji kolumny w serializowanym zestawie wierszy.
Składnia
row_window_session
(
Expr ,
MaxDistanceFromFirst ,
MaxDistanceBetweenNeighbors [,
Uruchom ponownie])
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
Wyrażenie | datetime |
✔️ | Wyrażenie, którego wartości są grupowane razem w sesjach. Gdy wyrażenie zwraca wartość null, następna wartość rozpoczyna nową sesję. |
MaxDistanceFromFirst | timespan |
✔️ | Określa, kiedy nowa sesja rozpoczyna korzystanie z maksymalnej odległości między bieżącą wartością wyrażenia a jej wartością na początku sesji. |
MaxDistanceBetweenNeighbors | timespan |
✔️ | Innym kryterium uruchamiania nowej sesji przy użyciu maksymalnej odległości od jednej wartości expr do następnej. |
Restart | boolean |
Jeśli zostanie określona, każda wartość, która ocenia, aby true natychmiast ponownie uruchomić sesję. |
Dowiedz się więcej na temat konwencji składni.
Zwraca
Funkcja zwraca wartości na początku każdej sesji. Korzysta z następującego modelu obliczeń koncepcyjnych:
Iteruje sekwencję danych wejściowych wartości expr w kolejności.
Dla każdej wartości decyduje, czy utworzyć nową sesję.
Jeśli zostanie utworzona nowa sesja, funkcja zwróci bieżącą wartość expr. W przeciwnym razie zwraca poprzednią wartość expr.
Uwaga
Wartość reprezentuje nową sesję, jeśli spełnia następujące warunki przy użyciu operacji logicznej OR:
- Jeśli nie było poprzedniej wartości sesji lub poprzednia wartość sesji miała wartość null.
- Jeśli wartość wyrażenia jest równa lub przekracza poprzednią wartość sesji oraz Wartość MaxDistanceFromFirst.
- Jeśli wartość expr jest równa lub przekracza poprzednią wartość expr plus MaxDistanceBetweenNeighbors.
- Jeśli
Restart
warunek jest określony i oblicza wartośćtrue
.
Przykłady
Poniższy przykład oblicza wartości rozpoczęcia sesji dla tabeli, datatable
, z kolumną identyfikatora sekwencji i kolumną Sygnatura czasowa w celu zarejestrowania czasu każdego rekordu. Dane są sortowane według identyfikatorów sekwencji i sygnatur czasowych, a następnie przykład zwraca wartości identyfikatora, znacznika czasu i nowej kolumny SessionStarted. Sesja nie może przekroczyć jednej godziny. Trwa on tak długo, jak rekordy są mniejsze niż pięć minut, a identyfikator pozostaje taki sam. Przykład zawiera rekordy, które są mniejsze niż pięć minut.
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))
Wyjście
ID | Sygnatura czasowa | Sesjastartowana |
---|---|---|
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 |