Azure Stream Analytics - выводить событие, только если оно отличается от предыдущего - PullRequest
0 голосов
/ 09 декабря 2018

У меня особая ситуация, когда потоковая аналитика не отправляет выходное событие при использовании 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.

большое спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Надеюсь, мой вопрос не смутил, я искал решение для отправки цифрового входа (DI_1) из регистратора данных только тогда, когда значение изменилось.Поэтому причина заключается в том, чтобы вычислить разницу во времени в PowerBI.

Тем временем я нашел решение:

Функция LAG работает отлично, также с WHERE

SELECT
   PE, UID, TIM,
   GetArrayElement(GetArrayElement(Record,0), 3) AS DI_1
INTO
   [toPowerBI]
FROM
   [IoTHub]
WHERE
   LAG(GetArrayElement(GetArrayElement(Record,0), 3), 1) 
   OVER (LIMIT DURATION(minute, 10)) <>    
   GetArrayElement(GetArrayElement(Record,0), 3)
0 голосов
/ 10 декабря 2018

Просьба взглянуть на шаблон запроса «Определить, изменилось ли значение»

https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-stream-analytics-query-patterns

Спасибо

...