Скользящее окно (Azure Stream Analytics)

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

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

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

Синтаксис

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

Примечание

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

Аргументы

timeunit

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

Timeunit Сокращения
day dd, d
hour hh
minute mi, n
second ss, s
миллисекунда ms
микросекунда mcs

windowsize

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

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

Примеры

В этом примере осуществляется поиск всех пропускных пунктов, обслуживших более трех транспортных средств за последние 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