"Переворачивающееся" окно (Azure Stream Analytics)
"Переворачивающиеся" окна — это ряд неперекрывающихся и несоприкасающихся интервалов времени фиксированного размера. На следующей схеме показан поток с рядом событий и их сопоставление с 10-секундными переворачивающимися окнами.
Синтаксис
{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() с помощью псевдонима.