Скользящее окно

✅ Поток событий Azure Stream Analytics ✅ Fabric

При использовании скользящего окна системе предлагается логически рассмотреть все возможные окна заданной длины. Так как число таких окон будет бесконечным, Azure Stream Analytics вместо этого выводит события только для этих точек во времени, когда содержимое окна фактически изменяется, другими словами, когда событие ввело или выходит из окна.

На следующей схеме показан поток с рядом событий и их сопоставление с скользящими окнами в 10 секунд.

Скользящее окно Stream Analytics 10 секунды

Синтаксис

{SLIDINGWINDOW | SLIDING} ( timeunit, windowsize )
{SLIDINGWINDOW | SLIDING} ( Duration( timeunit, windowsize ) )

Замечание

Скользящее окно можно использовать двумя способами. Чтобы обеспечить согласованность с окном прыжков, функция "Длительность" также может использоваться со всеми типами окон, чтобы указать размер окна.

Аргументы

timeunit

Единица времени для окна. В следующей таблице перечислены все допустимые аргументы timeunit.

Timeunit Аббревиатуры
день дд, д
час Чч
минута mi, n
секунда ss, s
миллисекунда мс
микросекунда mcs

windowsize

Большое целое число, описывающее размер окна. Windowsize является статическим и не может быть динамически изменен во время выполнения.

Максимальный размер окна во всех случаях составляет 7 дней.

Примеры

В этом примере находятся все платные стенды, которые обслуживали более 3 транспортных средств за последние 5 минут:

SELECT DateAdd(minute,-5,System.Timestamp()) AS WinStartTime, System.Timestamp() AS WinEndTime, TollId, COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY TollId, SlidingWindow(minute, 5)
HAVING COUNT(*) > 3