Оконные функции (Azure Stream Analytics)

В приложениях, обрабатывающих события в режиме реального времени, обычно выполняются некоторые вычисления на основе набора (агрегирование) или другие операции над подмножествами событий, которые попадают в определенный период времени. Поскольку концепция времени — важная необходимость для сложных систем обработки событий, важно иметь простой способ работы с компонентом времени в логике запросов в системе. В Azure Stream Analytics эти подмножества событий определяются через окна и представляют собой группировки по времени. В этой статье описываются окна и их определение, определяются поддерживаемые типы окон, а также объясняется, как использовать окна с различными операторами.

Основные сведения о работе с окнами

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

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

После операции окна метка времени события будет отличаться от исходного атрибута времени события ( время прибытия или столбец, используемый с TIMESTAMP BY). Доступ к текущей обновленной метке времени события всегда можно получить с помощью system.timestamp().

Примечание

Все окна должны использоваться в предложении GROUP BY.

Существует пять типов окон:

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

  2. "Прыгающее" окно (Azure Stream Analytics)

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

  4. Окно сеанса (Azure Stream Analytics)

  5. Окно моментального снимка (Azure Stream Analytics)

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

Вы можете агрегировать несколько периодов времени в одной инструкции GROUP BY с помощью функции Windows (Azure Stream Analytics).

См. также:

Встроенные функции (Azure Stream Analytics)
Агрегатные функции (Azure Stream Analytics)
Функции аналитики (Azure Stream Analytics)
Функции массива (Stream Analytics)
Функции преобразования (Azure Stream Analytics)
Функции даты и времени (Azure Stream Analytics)
Функции записи (Azure Stream Analytics)