У меня особая ситуация, когда потоковая аналитика не отправляет выходное событие при использовании LAG в сочетании с входными данными в массиве (json).
Это входные данные из регистратора данных:
20.04.2019 16:05:04> Устройство: [WISE-4012_00D0C9E43D10], Данные: [{"PE": 1, "UID": "WISE-4012_00D0C9E43D10", "TIM": "2019-04-20T16: 04: 55 + 01: 00 "," Запись ": [[0, 0, 1, 0], [0, 1, 1, 0], [0, 2, 1, 0], [0, 3,1, 0]]}]
Я использую этот запрос в Azure Stream Analytics:
SELECT
PE, UID, TIM,
UDF.DI1(InputIoThub) As DI1
FROM
[IoTHub]
WHERE
LAG(DI1, 1) OVER (LIMIT DURATION(minute, 1)) <> DI1
в соответствии с этими инструкциями: https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-stream-analytics-query-patterns
Похоже, LAGне может иметь дело с UDF.
Я заменил UDF следующим:
SELECT
PE, UID, TIM,
GetArrayElement(GetArrayElement(Record,0), 3) AS DI_1
INTO
[toPowerBI]
FROM
[IoTHub]
WHERE
LAG(DI_1, 1) OVER (LIMIT DURATION(minute, 1)) <> DI_1
, но он тоже не работает.
Без объединения WHERE поток генерирует правильный вывод, поэтому я попыталсявместо этого использовать HAVING.
большое спасибо за вашу помощь!