row_window_session()
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Вычисляет начальные значения сеанса столбца в сериализованном наборе строк.
Синтаксис
row_window_session
(
Expr ,
MaxDistanceFromFirst ,
MaxDistanceBetweenNeighbors [,
Перезапуск])
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
Expr | datetime |
✔️ | Выражение, значения которого группируются в сеансах. Если expr приводит к значению NULL, следующее значение запускает новый сеанс. |
MaxDistanceFromFirst | timespan |
✔️ | Определяет, когда новый сеанс начинает использовать максимальное расстояние между текущим значением Expr и его значением в начале сеанса. |
MaxDistanceBetweenNeighbors | timespan |
✔️ | Другой критерий запуска нового сеанса с максимальным расстоянием от одного значения Expr к следующему. |
Перезапуск | boolean |
Если задано, каждое значение, которое оценивается true немедленно перезапускает сеанс. |
Дополнительные сведения о соглашениях синтаксиса.
Возвраты
Функция возвращает значения в начале каждого сеанса. В нем используется следующая концептуальная модель вычисления:
Выполняет итерацию по входной последовательности значений Expr в порядке.
Для каждого значения он решает, следует ли создать новый сеанс.
Если создается новый сеанс, функция возвращает текущее значение Expr. В противном случае возвращается предыдущее значение Expr.
Примечание.
Значение представляет новый сеанс, если он соответствует следующим условиям с помощью логической операции OR:
- Если не было предыдущего значения сеанса, или значение предыдущего сеанса было null.
- Если значение Expr равно или превышает предыдущее значение сеанса плюс MaxDistanceFromFirst.
- Если значение Expr равно или превышает предыдущее значение Expr плюс MaxDistanceBetweenNeighbors.
- Если
Restart
условие задано и оцениваетсяtrue
.
Примеры
В следующем примере вычисляются значения начала сеанса для таблицы, datatable
с столбцом идентификатора последовательности и столбцом метки времени для записи времени каждой записи. Данные сортируются по идентификаторам последовательности и меткам времени, а затем пример возвращает значения для идентификатора, метки времени и нового столбца SessionStarted . Сеанс не может превышать один час. Он продолжается до тех пор, пока записи находятся менее чем за пять минут, и идентификатор остается неизменным. В этом примере содержатся записи, которые находятся менее чем за пять минут.
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))
Выходные данные
ID | Метка времени | 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 |