row_window_session()
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Vypočítá počáteční hodnoty relace sloupce v serializované sadě řádků.
Syntaxe
row_window_session
(
Výraz MaxDistanceFromFirst ,
MaxDistanceBetweenNeighbors [,
Restart] ,
)
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
Výraz | datetime |
✔️ | Výraz, jehož hodnoty jsou seskupené v relacích. Když výsledkem výrazu je hodnota null, další hodnota spustí novou relaci. |
MaxDistanceFromFirst | timespan |
✔️ | Určuje, kdy nová relace začne používat maximální vzdálenost mezi aktuální hodnotou výrazu a její hodnotou na začátku relace. |
MaxDistanceBetweenNeighbors | timespan |
✔️ | Dalším kritériem pro zahájení nové relace s použitím maximální vzdálenosti od jedné hodnoty výrazu k další. |
Restartovat | boolean |
Pokud je tato hodnota zadaná, každá hodnota, která se vyhodnotí jako true okamžitá, restartuje relaci. |
Přečtěte si další informace o konvencích syntaxe.
Návraty
Funkce vrátí hodnoty na začátku každé relace. Používá následující koncepční výpočetní model:
Iteruje přes vstupní sekvenci hodnot výrazů v pořadí.
Pro každou hodnotu se rozhodne, jestli se má vytvořit nová relace.
Pokud je vytvořena nová relace, vrátí funkce aktuální hodnotu výrazu. V opačném případě vrátí předchozí hodnotu výrazu.
Poznámka:
Hodnota představuje novou relaci, pokud splňuje následující podmínky pomocí logické operace OR:
- Pokud nebyla žádná předchozí hodnota relace nebo hodnota předchozí relace byla null.
- Pokud se hodnota Výraz rovná nebo překročí předchozí hodnotu relace plus MaxDistanceFromFirst.
- Pokud se hodnota Výraz rovná nebo překročí předchozí hodnotu Výraz plus MaxDistanceBetweenNeighbors.
- Pokud
Restart
je zadaná podmínka a vyhodnotí se jakotrue
.
Příklady
Následující příklad vypočítá počáteční hodnoty relace pro tabulku, datatable
se sloupcem ID sekvence a sloupcem časového razítka, který zaznamená čas každého záznamu. Data se seřadí podle ID sekvence a časových razítek a pak příklad vrátí hodnoty pro ID, časové razítko a nový sloupec SessionStarted. Relace nemůže překročit jednu hodinu. Pokračuje tak dlouho, dokud jsou záznamy kratší než pět minut a ID zůstane stejné. Příklad obsahuje záznamy, které jsou méně než pět minut od sebe.
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))
Výstup
ID | Časové razítko | SessionStarted |
---|---|---|
0 | 2024-04-11T10:00:00Z | 2024-04-11T10:00:00Z |
0 | 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 |