Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
✅ Поток событий Azure Stream Analytics ✅ Fabric
Окно позволяет агрегировать события с различными интервалами времени в зависимости от определенных определений окон. Существует четыре типа темпоральных окон, из которых можно выбрать: "Переворачивающиеся", " Прыжки", " Скользящий" и "Сеанс".
Функция Windows() расширяет эту концепцию для одновременного вычисления результатов нескольких различных определений окон. Функция Windows() позволяет указать несколько определений окон. Логика запроса вычисляется для каждого из этих определений окон, и результатом является объединение всех результатов окна.
Так как результат функции Windows() содержит сочетание нескольких окон, необходимо различать различные результаты. Это делается путем назначения удостоверения каждому окну, к которому можно получить доступ с помощью системной функции System.Window(). Идентификатор. System.Window() возвращает запись с идентификатором в качестве поля.
Существует два способа определения Windows:
Назначьте уникальные удостоверения с помощью функции Window(), Window( ID , window_definition ), где идентификатор является удостоверением window_definition и является уникальным значением без учета регистра varchar(max) в конструкции Windows.
Без удостоверений, в этом случае System.Window(). Идентификатор приводит к значению NULL.
Синтаксис
| Windows ( window_definition, … )
| Windows ( Window ( id , window_definition ), … )
window_definition =
| HoppingWindow ( …
| TumblingWindow ( …
| SlidingWindow ( …
| SessionWindow ( …
| Hopping ( …
| Tumbling ( …
| Sliding ( …
| Session ( …
Замечание
Не удается вложить конструкции Windows . Удостоверения должны быть предоставлены всем определениям окон или даны ни одному.
Существуют сокращенные имена определений окон, например "Tumbling", которые можно использовать в Windows(), чтобы избежать повторения слова "окно", как в Windows(Window('MyWindow', TumblingWindow(…. Сокращенные имена также можно использовать за пределами конструкции Windows.
Это не ошибка для использования System.Window(). Идентификатор без конструкции Windows, но его значение будет иметь значение NULL, так как удостоверение не было предоставлено окну.
Если определения окон указаны с помощью функции Window(), все определения окон должны использовать функцию Window(), а все идентификаторы нечувствительных регистров должны быть уникальными. Значение NULL не допускается.
Функция System.Window()
Функция System.Window() может использоваться только в предложении SELECT инструкции GROUP BY для получения метаданных о периоде времени группировки.
Функция возвращает значение типа Record , содержащее один идентификатор поля, который содержит удостоверение окна, к которому принадлежит событие.
Примеры
Создайте окно для подсчета автомобилей для каждой продолжительности 10, 20, 30, 40, 50 и 60 минут без удостоверения окна.
SELECT
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
TumblingWindow(minute, 10),
TumblingWindow(minute, 20),
TumblingWindow(minute, 30),
TumblingWindow(minute, 40),
TumblingWindow(minute, 50),
TumblingWindow(minute, 60))
Создайте окна с 1 минутным прыжком и четырьмя разными длительностью - 1 мин, 15 мин, 30 минут и 60 минут.
SELECT
System.Window().Id,
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
Window('1 min', TumblingWindow(minute, 1)),
Window('15 min', HoppingWindow(minute, 15, 1)),
Window('30 min', HoppingWindow(minute, 30, 1)),
Window('60 min', HoppingWindow(minute, 60, 1)))
Создайте окна различных размеров и результатов фильтрации на основе длительности окна, указанной в таблице ссылок.
WITH HoppingWindowResults AS
(
SELECT
System.Window().Id,
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
Window('H10', Hopping(minute, 10, 5)),
Window('H20', Hopping(minute, 20, 5)),
Window('H30', Hopping(minute, 30, 5)),
Window('H40', Hopping(minute, 40, 5)),
Window('H50', Hopping(minute, 50, 5)),
Window('H60', Hopping(minute, 60, 5)))
)
SELECT HoppingWindowResults.*
FROM HoppingWindowResults
JOIN ReferenceTable ON
HoppingWindowResults.TollId = ReferenceTable.TollId
AND HoppingWindowResults.Id = ReferenceTable.windowId