"Переворачивающееся" окно (Azure Stream Analytics)

"Переворачивающиеся" окна — это ряд неперекрывающихся и несоприкасающихся интервалов времени фиксированного размера. На следующей схеме показан поток с рядом событий и их сопоставление с 10-секундными переворачивающимися окнами.

Переворачивающееся окно Stream Analytics 5 мин

Синтаксис

{TUMBLINGWINDOW | TUMBLING} ( timeunit  , windowsize, [offsetsize] )  
{TUMBLINGWINDOW | TUMBLING} ( Duration( timeunit  , windowsize ), [Offset(timeunit  , offsetsize)] )  
  

Примечание

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

Аргументы

timeunit

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

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

windowsize

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

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

offsetsize

По умолчанию переворачивающиеся окна являются инклюзивными в конце окна и эксклюзивными в начале окна, например с 12:00 до 13:00, будут включать события, которые произошли ровно в 13:00, но не будут включать события, которые произошли в 12:00 (эти события будут частью окна 23:00–12:00).

Параметр Offset можно использовать для изменения этого поведения и включения событий в начало окна и исключения тех, которые произошли в конце.

Примеры

SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)  
FROM Input TIMESTAMP BY EntryTime  
GROUP BY TollId, TumblingWindow(Duration(hour, 1), Offset(millisecond, -1))
SELECT 'reset' AS command
INTO
    alert
FROM
    temperature TIMESTAMP BY timeCreated
GROUP BY TumblingWindow(second,15)
HAVING Avg(machine.temperature) > 25

Рекомендации относительно времени

Каждая операция с окном выводит событие в конце окна. Окна Azure Stream Analytics открываются во время запуска окна и закрываются во время его окончания. Например, если у вас есть 5-минутное окно с 00:00 до 12:05, все события с меткой времени больше 12:00 и до 00:05 включительно будут включены в это окно. Выводом окна будет одно событие, в зависимости от агрегатной функции, используемой с меткой времени, равной времени окончания окна. Метка времени выходного события окна может быть проецирована в инструкции SELECT с помощью свойства System.Timestamp() с помощью псевдонима.

См. также:

"Прыгающее" окно
Скользящее окно
Оконное расширение