树莓派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里:
在这里插入图片描述
然后碰到另一个需要注意的:
output里面同一个partition key下面的row key是不能相同的,否则会刷新不会新增。
不同partition key下的row key是可以相同的
Cheers

猜你喜欢

转载自blog.csdn.net/Elleryer/article/details/105793453
今日推荐