Udostępnij za pośrednictwem


row_window_session()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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:

  1. Iteruje sekwencję danych wejściowych wartości expr w kolejności.

  2. Dla każdej wartości decyduje, czy utworzyć nową sesję.

  3. 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