欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据

程序员文章站 2024-03-15 17:54:42
...

首先新建Stream Analytics job跟Storage Account具体步骤可以查阅微软帮助文档
链接: Azure Stream Analytics documentation.
进入portal -> Create a resource -> Stream Analytics job树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据然后起个名字啥的基本操作还有Storage Account那里就不废话了。

然后进入你的Stream Analytics job,设置Inputs,如果用IoT Device的话Endpoint用Messaging格式:
树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据
然后设置你的output,这里partition key 跟row key就是方便检索用的,随便设置两个你遥测的参数名称就可以:
树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据
然后设置query,注意把默认模板内容换成你的input跟output的名称:
树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据
然后开开心心的点开Start:
树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据然后发现第一个坑,上传不了数据。首先遥测上传到IoT Hub这部分是没问题的,这个前边的博客已经测过了,那么就是数据Stream Analytics job读取数据有问题,我的数据如下:

树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据
在此感谢微软的三位工程师帮忙定位到了错误,红框里面的数据存在嵌套,读取不正常,更改query语句,将需要的数据提取,嵌套的数据如红框的处理模式,就可以成功上传数据:
树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据
然后我又更改了一下所需要上传的数据,增加了几个字符串之后又不能正常上传了。
这里来到了坑二,我的遥测数据如下:
树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据
然后怎么上传都不能正常显示数据。
查了半天首先怀疑是deviceid是保留字符导致的问题,结果换了之后还是不行,然后我们看了一下,实际支持的JSON格式里字符串都是带引号的:
树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据

我们通过:

deviceid = "\"" +deviceidraw + "\""

手动给输出增加引号:
树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据
成功将数据保存到Table里:
树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据

Cheers