Я пытаюсь рассчитать длительность сигнала (DI_1) от регистратора данных, который подключен к Azure IoT Hub и потоковой аналитике.
Входные данные выглядят следующим образом:
DateTime Digital Input
22.04.2019 14:17:00 0
22.04.2019 14:16:00 1
22.04.2019 14:15:00 0
22.04.2019 14:14:00 0
22.04.2019 14:13:00 0
22.04.2019 14:12:00 0
22.04.2019 14:11:00 1
22.04.2019 14:10:00 1
22.04.2019 14:09:00 1
22.04.2019 14:08:00 1
22.04.2019 14:07:00 1
22.04.2019 14:06:00 0
22.04.2019 14:05:00 0
22.04.2019 14:04:00 0
22.04.2019 14:03:00 0
22.04.2019 14:02:00 1
22.04.2019 14:01:00 1
22.04.2019 14:00:00 0
И результат должен выглядеть следующим образом:
DateTime Duration
22.04.2019 14:16:00 00:01:00
22.04.2019 14:07:00 00:05:00
22.04.2019 14:01:00 00:02:00
Есть ли у кого-нибудь идеи, как реализовать это в Azure Stream Analytics?
на данный момент выход ASA представляет собой набор данных со временем и цифровым входом(1 или 0) при изменении цифрового входа.
DateTime Digital Input
22.04.2019 14:17:00 0
22.04.2019 14:16:00 1
22.04.2019 14:15:00 0
22.04.2019 14:14:00 1
22.04.2019 14:13:00 0
22.04.2019 14:12:00 1
реализовано со следующим кодом:
SELECT
PE, UID, system.timestamp AS Time,
GetArrayElement(GetArrayElement(Record,0), 3) AS DI_0
INTO
[PowerBI]
FROM
[IoTHub]
WHERE
LAG(GetArrayElement(GetArrayElement(Record,0), 3), 1)
OVER (LIMIT DURATION(minute, 10)) <> GetArrayElement(GetArrayElement(Record,0), 3)
Здесь я должен рассчитать разницу во времени в PowerBI.Теперь я хочу рассчитать его напрямую в Azure Stream Analytics, чтобы избежать вычислений в PowerBI.
Большое спасибо за вашу помощь!