Оконные функции (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.
Существует пять типов окон:
Максимальный размер окна во всех случаях составляет 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)