Я создал задание Stream Analytics и с помощью портала подтвердил, что запрос выдает правильные результаты.Проблема в том, что когда я запускаю задание Stream Analytics, выходные данные, отправленные в CosmosDB, представляют собой совершенно другой и неожиданный результат.
Это базовый запрос, он использует некоторые функции агрегирования с SlidingWindow:
SELECT src.DeviceID, System.Timestamp as Time,
AVG(src.Value) as [AvgValue],
MIN(src.Value) as [MinValue],
MAX(src.Value) as [MaxValue],
COUNT(src.Value) as [SampleCount]
INTO [AvgOutputToCosmosDB]
FROM
[blob-stream-dev-testsample] as src TIMESTAMP BY src.DateTimeEndUTC
GROUP BY SlidingWindow(hour,1), src.DeviceID
Я проверил вышеупомянутое чередование с использованием операторов WITH и записи в хранилище CosmosDB и Blob, но оба они имеют одинаковый неверный вывод.
Я ожидаю 576 средних журналов для каждого идентификатора устройства.Я получаю один средний журнал для идентификатора устройства, который использует 576 журналов (SampleCount) для вычисления среднего.
Как уже говорилось, при использовании портала Azure для тестирования запроса это работает.576 скользящих средних часов для каждого устройства.У меня есть:
- Проверен вывод на портале с тестовым приложением C #, вычисляющим скользящее среднее, все хорошо.
- Настроил коллекцию CosmosDB на неограниченное количество и использовал раздел на deviceid,Я не думаю, что это CosmosDB, потому что это происходит в хранилище BLOB-объектов.
В своих тестах я вручную загружал файл JSON, а также считывал файл JSON из хранилища BLOB-объектов - снова портал работал нормально.
Кто-нибудь видел это раньше?Мне интересно, есть ли какая-то проблема с преобразованием DateTime в локали, используемой заданием Stream Analytics?
UPDATE
Я только что протестировал тот же запрос, используя событиеТема хаба является входным потоком и работает как на портале, так и при выполнении задания SA.Должна быть какая-то проблема с сериализацией даты и времени, когда задание SA считывает файл JSON из хранилища BLOB-объектов.