Я пытаюсь отправить данные IoT Hub в Power BI через Stream Analytics. Это прекрасно работает, пока в json-данных с устройства IoT нет массивов.Azure Stream Analytics Query: отправить данные массива json в PowerBI
Мои вопросы: Как мне изменить запрос Stream Analytics, чтобы PowerBI мог интерпретировать данные как массив/таблицу? Как TIMESTAMP по каждому элементу массива (используя «timecreated»)?
JSON строку я отправить IoT Hub выглядит следующим образом:
{"sensordata":[{"name":"Temp_0","value":3,"timecreated":"2016-11-09T11:08:00Z"},
{"name":"Temp_0","value":7,"timecreated":"2016-11-09T11:08:02Z"},
{"name":"Temp_1","value":2,"timecreated":"2016-11-09T11:08:04Z"}]}
Что поток Analytics получает от IoT Hub:
[{"sensordata":[{"name":"Temp_0","value":3,"timecreated":"2016-11-09T11:08:00.0000000Z"},
{"name":"Temp_0","value":7,"timecreated":"2016-11-09T11:08:02.0000000Z"},
{"name":"Temp_1","value":2,"timecreated":"2016-11-09T11:08:04.0000000Z"}],
"EventProcessedUtcTime":"2016-11-09T10:08:57.9325156Z","PartitionId":0,
"EventEnqueuedUtcTime":"2016-11-09T10:08:47.8050000Z","IoTHub":
{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"toCloudDevice",
"ConnectionDeviceGenerationId":"607350268321425367",
"EnqueuedTime":"0001-01-01T00:00:00.0000000","StreamId":null}}]
Мой поток Analytics Query выглядит следующим образом:
SELECT sensordata.ArrayValue AS data,
COUNT(*)
INTO
[transmit-data]
FROM
[receive-data] AS e
CROSS APPLY GetArrayElements(e.sensordata) AS sensordata
GROUP BY
sensordata,
tumblingWindow(Second, 10)
Какой концентратор IoT посылает в Power BI:
[{"data":{"name":"Temp_1","value":2,"timecreated":"2016-11-09T11:08:04.0000000Z"},
"count":1},{"data":{"name":"Temp_0","value":7,"timecreated":"2016-11-09T11:08:02.0000000Z"},
"count":1},{"data":{"name":"Temp_0","value":3,"timecreated":"2016-11-09T11:08:00.0000000Z"},
"count":1}]
PowerBI не в состоянии интерпретировать эти данные разумным способом.
Я хотел бы иметь возможность генерировать графики, например, имеющие время на оси X и имеющие значения для Temp_0 по оси y.
Есть идеи по этому вопросу? Ваша помощь будет принята с благодарностью.
(кстати: JSON строки из IoT устройства имеют различные количества элементов массива!)
Это супер полезно, thx! (Я должен был оставить «.data» в инструкции SELECT, хотя ..) PowerBI теперь может переваривать данные и генерировать графики. Я не могу отделить «Temp_0» и «Temp_1» еще и попытаюсь следовать вашей идее, чтобы использовать промежуточный центр событий. –
(Простой способ separete «Temp_0» и «Temp_1» в графике сервисов PowerBI использовать фильтр на «имя».) –