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

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

В отличие от переворачивающихся окон, модель прыжков планирует перекрывающиеся окна. Спецификация прыжкового окна состоит из трех параметров: timeunit, windowsize (сколько длится каждое окно) и прыжков (насколько каждое окно перемещается вперед относительно предыдущего). Кроме того, смещение может использоваться как необязательный четвертый параметр. Обратите внимание, что переворачивающееся окно является просто прыжковым окном, чей "прыжок" равен его "размеру".

На следующем рисунке показан поток с рядом событий. Каждое поле представляет окно прыжка и события, которые считаются частью этого окна, предполагая, что "прыжок" равен 5, а "размер" равен 10.

Схема прыжков в прыжках Stream Analytics

Синтаксис

{HOPPINGWINDOW | HOPPING} ( timeunit  , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit  , windowsize ) , Hop (timeunit  , windowsize ), [Offset(timeunit  , offsetsize)])  
  

Замечание

Окно прыжка можно использовать двумя способами. Если размер окна и прыжки имеют одно и то же время, его можно использовать без функций длительности и прыжка. Функцию "Длительность" также можно использовать с другими типами окон, чтобы указать размер окна.

Аргументы

timeunit

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

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

windowsize

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

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

прыжки

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

смещение

По умолчанию окна прыжков включены в конец окна и эксклюзивные в начале ( например, 12:05 – окно 1:05 : 1:05 будет включать события, которые произошли ровно в 1:05 вечера, но не будут включать события, которые произошли в 12:05:PM (это событие будет частью окна 12:00 – 01:00).
Параметр Offset можно использовать для изменения поведения и включения событий в начало окна и исключения тех, которые произошли в конце.

Примеры

SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)  
FROM Input TIMESTAMP BY EntryTime  
GROUP BY TollId, HoppingWindow(Duration(hour, 1), Hop(minute, 5), Offset(millisecond, -1))  
  

Рекомендации по времени

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