如何在“流分析工作”中处理两个“Iot集线器”设备?

时间:2018-05-14 22:04:17

标签: azure azure-iot-hub azure-stream-analytics

我正在使用“流分析工作”来显示来自“iot hub”的两个不同设备的数据,即device1和device2; device1发送以下消息:

{"messageId": 5576, "deviceId": "Raspberry Pi Web", "rpm": 22.80972122577826, "torque": 72.65678451219686}

device2发送以下消息:

{"messageId": 1272, "deviceId": "Raspberry Pi Web Client", "temperature": 23.815921380797004, "humidity": 78.7491052866882}

消息是在同一时间发送的,当我想要显示power bi中的数据时,我只看到其中一条消息的键, messageId,温度,湿度,PartitionId 。这些密钥属于device2发送的消息;但是没有出现与device1对应的 messageId,rpm,torque,PartitionId 键。

我在流分析作业中使用的查询如下:

SELECT
    *
INTO
    output
FROM
    input

我的设备是我使用的模拟设备,并通过以下链接进行配置:https://azure-samples.github.io/raspberry-pi-web-simulator/#Getstarted

如何使用流分析作业在同一个iot集线器中查看来自两个不同设备的消息?

注意:我在“IoT Hub”中使用F1级别

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

在PowerBI中,一个数据集代表单个数据源,并且必须采用以下格式:

  

您可以使用数百种不同的数据源   与Power BI。但无论你从何处获得数据,都是如此   数据必须采用Power BI服务可用于创建的格式   报告和仪表板。

参考:dataset conceptdata source for Power BI

对于您的问题,您可以将两个设备事件路由到两个Power BI数据集。(ASA作业中的两个输出)。

查询如下所示:

SELECT
    *
INOT
    powerbi
FROM
    iothubevents
WHERE
    deviceId = 'Raspberry Pi Web'


SELECT
    *
INOT
    powerbidevice2
FROM
    iothubevents
WHERE
    deviceId = 'Raspberry Pi Web Client'

查看以下快照: 在流分析工作中:

enter image description here

enter image description here

在Power BI中:

enter image description here

enter image description here