Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
✅ Azure Stream Analytics
Каждое событие на каждом этапе запроса в Azure Stream Analytics имеет метку времени, связанную с ней. System.Timestamp() — это системное свойство, которое можно использовать для получения метки времени события.
Ниже описано, как Azure Stream Analytics назначает метки времени событиям.
Метка времени событий ввода
Метка времени входного события может быть определена значением столбца (или выражением), указанным в предложении TIMESTAMP BY :
SELECT System.Timestamp() t
FROM input
TIMESTAMP BY MyTimeField
Если предложение TIMESTAMP BY не указано для заданных входных данных, время прибытия события используется в качестве метки времени. Например, время, затраченное на событие, будет использоваться в случае ввода концентратора событий.
Результирующая метка времени события
При выполнении вычислений метка времени результирующего события является самым ранним логическим временем, в котором можно определить этот результат.
Давайте рассмотрим, как базовые операции запросов в Azure Stream Analytics (фильтры, проекции, агрегаты и соединения) создают метки времени для результата.
Projection
SELECT
Prop1,
Prop2,
Prop3 - Prop4 / 12,
System.Timestamp() t
FROM input
Проекции не изменяют метку времени события, метка времени результата совпадает с меткой времени входных данных.
Filter
SELECT *
FROM input
WHERE prop1 > prop2
Фильтры не изменяют метку времени события. Метка времени результата совпадает с меткой времени входных данных.
С течением времени GROUP BY
SELECT
userId,
AVG(prop1),
SUM(prop2),
System.Timestamp() t
FROM input
GROUP BY TumblingWindow(minute, 1), userId
Метка времени результата агрегата — конец периода времени, к которому соответствует этот результат. См. статьи о окне, описывающие различные типы окон в Azure Stream Analytics.
INNER JOIN
SELECT
System.Timestamp()
FROM input1
JOIN input2
ON DATEDIFF(minute, input1, input2) BETWEEN 0 AND 10
Внутреннее соединение создает результаты, соответствующие соответствующим парам событий из input1 и input2.
Событие, представляющее совпадение события e1 из входных данных1 и e2 из input2, заметен последними метками времени e1 и e2.
ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
SELECT
System.Timestamp()
FROM input1
LEFT JOIN input2
ON DATEDIFF(minute, input1, input2) BETWEEN -2 AND 10
Левое внешнее соединение создает результаты двух типов. Некоторые соответствуют паре событий из input1 и input2; другие соответствуют только событию из input1 и указывают, что не найдено соответствующее событие из input2.
События, представляющие совпадение (имеет входные данные1 и input2), заметки времени последними метками времени совпадающих входных данных (как и в случае с внутренним присоединением выше).
События, представляющие несоотвеченные (input2 is NULL), заметятся по последнему логическому времени, в течение которого может произойти соответствующее событие input2. Например, в приведенном выше примере это метка времени ввода1 + 10 минут.