Я написал ниже Stream Analytics Query для получения оповещения о состоянии устройства в автономном режиме.Запрос выдаёт мне предупреждение, если за последние 5 минут не было получено никакого ввода от устройства.
Мне нужна последняя телематическая запись (Последнее известное местоположение) этого устройства, но я получаю все данные, отправленные для этого устройства.Я пробовал LAST и TopOne , но все они являются методом окна.Есть ли другое решение, кроме пользовательской функции?
SELECT
t1.header.serialNumber as serialNumber,t1.header.make as
make,t1.header.messageTimestamp as MessageTime,'Device Offline Alert' as
alertType
INTO
[alertOutput2]
FROM
[tsfInput] t1 TIMESTAMP BY header.messageTimestamp
LEFT OUTER JOIN [tsfInput] t2 TIMESTAMP BY header.messageTimestamp
ON
t1.header.serialNumber=t2.header.serialNumber AND
t1.header.make=t2.header.make
AND DATEDIFF(minute, t1, t2) BETWEEN 1 and 5
WHERE t2.serialNumber IS NULL
Пример ввода
{
"header": {
"assetKey": 8910053376183227000,
"make": "CAT36",
"serialNumber": "Truck36",
"deviceType": "A5:N2",
"isPriority": false,
"isReplay": true
}
}