Azure Stream Analytics «TimeStamp By» в запросе не работает в задании, но отлично работает в тесте

Я работаю над проектом IoT. У меня есть Raspberry Pi, который отправляет данные в IoTHub в Azure. Этот концентратор перенаправляет эти данные в задание Azure Stream Analytics. В моем запросе я пытаюсь агрегировать (здесь среднее) все данные в TumblingWindow за 1 минуту, но в качестве метки времени я использую пользовательскую дату и время, отправленные в данных.

Я пробовал много вещей, но ничего не работало. похоже, что потоковое задание игнорирует дату и время, которые я предоставляю, и просто агрегирует все на основе времени прибытия. Только при использовании функции «Тест» путем загрузки файла json это работает.

SELECT
    DateAdd(minute, -1, system.Timestamp) as TumblingWindowStartTime, 
    system.TimeStamp as TumblingWindowEndTime, 
    event.DeviceId as DeviceId, 
    AVG(event.Temperature) as TemperatureAverage,
    Count(*) as MeasurementsCount
INTO
    [input]
FROM
    [output] as event
TIMESTAMP BY MeasuredOn
GROUP BY
    event.DeviceId,
    TumblingWindow(minute, 1)

Тип данных, которые я отправляю

[
   {
      "Temperature":13.426585352712585,
      "DeviceId":"UlyssesPi",
      "MeasuredOn":"2019-04-09T11:20:30.1027311Z"
   },
   {
      "Temperature":16.81523611620778,
      "DeviceId":"UlyssesPi",
      "MeasuredOn":"2019-04-09T11:20:35.2281002Z"
   },
   ...
]

Чего я ожидаю, так это того, что получаю при использовании функции «Тест» в Azure Stream Analytics:

TUMBLINGWINDOWSTARTTIME || TUMBLINGWINDOWENDTIME || DEVICEID || TEMPERATUREAVERAGE || MEASUREMENTSCOUNT
"2019-04-09T11:20:0...     "2019-04-09T11:21:0...   UlyssesPi   14.674093214798454    6
"2019-04-09T11:21:0...     "2019-04-09T11:22:0...   UlyssesPi   18.612186615873217    12
"2019-04-09T11:22:0...     "2019-04-09T11:23:0...   UlyssesPi   12.799415359568199    12

но вместо этого я получаю следующее:

TUMBLINGWINDOWSTARTTIME || TUMBLINGWINDOWENDTIME || DEVICEID || TEMPERATUREAVERAGE || MEASUREMENTSCOUNT
"2019-04-09 11:22:0...     "2019-04-09 11:23:0...   UlyssesPi   15,4994594331363      30

Так почему же результаты не совпадают? Это что-то я сделал не так? Что я могу сделать?

Спасибо за вашу помощь.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
2
0
893
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При тестировании логики Stream Analytics на портале политики упорядочения событий не применяются. Однако при выполнении задания в облаке применяются политики упорядочения событий. Вы должны убедиться, что метки времени в вашей полезной нагрузке точны (и событие не приходит очень поздно). Вы также можете настроить политики упорядочения событий, чтобы определить политики позднего прибытия (по умолчанию 5 секунд). Вы можете узнать, как использовать эти настройки здесь.

Это действительно политика заказа событий, спасибо за вашу помощь!

ulysse 16.04.2019 09:03

Другие вопросы по теме