树莓派IoT Device遥测上传IoT Hub 并通过Stream Analytics job 存储数据
首先新建Stream Analytics job跟Storage Account具体步骤可以查阅微软帮助文档
链接: Azure Stream Analytics documentation.
进入portal -> Create a resource -> Stream Analytics job然后起个名字啥的基本操作还有Storage Account那里就不废话了。
然后进入你的Stream Analytics job,设置Inputs,如果用IoT Device的话Endpoint用Messaging格式:
然后设置你的output,这里partition key 跟row key就是方便检索用的,随便设置两个你遥测的参数名称就可以:
然后设置query,注意把默认模板内容换成你的input跟output的名称:
然后开开心心的点开Start:
然后发现第一个坑,上传不了数据。首先遥测上传到IoT Hub这部分是没问题的,这个前边的博客已经测过了,那么就是数据Stream Analytics job读取数据有问题,我的数据如下:
在此感谢微软的三位工程师帮忙定位到了错误,红框里面的数据存在嵌套,读取不正常,更改query语句,将需要的数据提取,嵌套的数据如红框的处理模式,就可以成功上传数据:
然后我又更改了一下所需要上传的数据,增加了几个字符串之后又不能正常上传了。
这里来到了坑二,我的遥测数据如下:
然后怎么上传都不能正常显示数据。
查了半天首先怀疑是deviceid是保留字符导致的问题,结果换了之后还是不行,然后我们看了一下,实际支持的JSON格式里字符串都是带引号的:
我们通过:
deviceid = "\"" +deviceidraw + "\""
手动给输出增加引号:
成功将数据保存到Table里:
Cheers
上一篇: SQL server游标的使用
下一篇: 8、DockerHub