物联网平台设备数据同步到RDS & MySQL数据库(保姆级教学)
目标实现:
阿里云物联网平台某设备实时数据(MQTT协议上云)同步存储到RDS MySQL数据库
实现步骤:
注意:以下实现默认MQTT上云已经完成,可实时上传数据
1、物联网平台接收到数据通过规则引擎转发至DataHub。
2、在DataHub中通过DataConnector将数据同步到RDS MySQL数据库中
阿里云教程概述
![请添加图片描述](https://img-blog.csdnimg.cn/882a6395fd21476c81db72e8501d4a2a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
细节!!!拿来吧你!
1、创建RDS MySQL数据库表
这步的依据是什么?
答:物联网平台的设备有什么数据?以我这边的情况为例,有甲醛、PM2.5。
![请添加图片描述](https://img-blog.csdnimg.cn/ff00c32c718f44a38868e17531022fda.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
请思考:是不是现在新建一张数据表,表中创建两个就可以字段,分别是HCHO(甲醛)、PM25(PM2.5)就可以了呢?
答:表结构实际上有点问题,因为这样的话那主键未明确
,后面还要查出来看的,不单单是存着就好,于是这里决定再加一个字段id作为主键(或许也可考虑复合主键,),并设置自动递增,因为原设备上云数据中没有对应id的值
,然后可以再加两个字段create_time 和 devicename
,create_time 和 devicename的值
可通过阿里云内置函数
获取,后面会讲到。
![请添加图片描述](https://img-blog.csdnimg.cn/3cf5da4c56814f2f9f2c532cca1d440d.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
至此,第一步就完成了
2、创建DataHub项目
DataHub通俗理解:它是一条线,把两个阿里云的产品连起来,通过一些转发规则完成产品之间的数据流转(我瞎扯的可能不准确,具体可看官网文档)
1、开通服务(有个梗:这游戏求你下一个吧,不用钱好吧)
2、创建项目
![请添加图片描述](https://img-blog.csdnimg.cn/47b1303044904eef91901e85b341b22b.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
点击新建项目,随便填,我这里填项目名alice_air
![请添加图片描述](https://img-blog.csdnimg.cn/57d8e5db56864cc9bb96d2954c9d8bcc.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
3、新建Topic
Topic通俗理解:一个话题,物联网平台后面需要去订阅这个话题,把数据同步到Datahub
![请添加图片描述](https://img-blog.csdnimg.cn/96f5218a54354383b0a65a949a341715.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
4、同步到RDS MySQL数据库
注意:我这里先配完DataHub同步数据库,后配置物联网同步到DataHub,当然你也可以先配物联网同步到DataHub,看看DataHub有没有
实时流量显示
点击查看
![请添加图片描述](https://img-blog.csdnimg.cn/1aaf72feefc64b23b3b6348eb8b5dbb3.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
点击同步
![请添加图片描述](https://img-blog.csdnimg.cn/21ad2e2bd2ac4ff2827aaface8f6a739.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
选择RDS & MySQL
![请添加图片描述](https://img-blog.csdnimg.cn/eb9f58c5d0e24ccf8b0963b45b52c866.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
新建Connector
(配置对应的MySQL Host,数据库、数据表)
![请添加图片描述](https://img-blog.csdnimg.cn/2afe2377a7cf46c7a7122931440b608a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
至此,第二步也完成了。
3、规则引擎
这步是为了把物联网平台数据转发到DataHub
1、云产品流转
![请添加图片描述](https://img-blog.csdnimg.cn/e7b2140ea72b41ff84946bf0837762f1.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
2、创建规则
![请添加图片描述](https://img-blog.csdnimg.cn/33dbe54aa56f4105a9047681159d8166.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
3、选择json(我这边设备数据是通过json格式上云)
![请添加图片描述](https://img-blog.csdnimg.cn/1d044800153640ca8536124050cded1c.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
4、编写SQL
![请添加图片描述](https://img-blog.csdnimg.cn/b8968aafc8e344d69a279bcb03455f81.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
![请添加图片描述](https://img-blog.csdnimg.cn/8c1754f56f694f2989894cf7af4dfa9b.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
5、转发数据到DataHub,添加规则
![请添加图片描述](https://img-blog.csdnimg.cn/62e72b9b9f734e5f90174f35f9431e9a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
![请添加图片描述](https://img-blog.csdnimg.cn/b4f8de7d3b644f45846d05af41bdd0e8.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
注意
:${key},key是什么,key就是编写SQL
时,as xxx
的那个xxx
items.HCHO.value as HCHO ==> ${HCHO}
最后确定
,完美撒花?NO,注意,记得启动
,这下应该完美撒花了。
![请添加图片描述](https://img-blog.csdnimg.cn/5acd38036b694f95968be6c880611d78.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc0NTIwOA==,size_16,color_FFFFFF,t_70)
经过以上步骤,如果数据库并没有新增任何数据记录,可一步一步排查问题。
1、先确定设备数据是不是在实时上传
,在物联网平台查看设备物模型数据
2、看看DataHub有没显示实时流量
数据,没有的话说明云产品流转
这块没弄好
3、如果DataHub有数据流量显示了,说明很可能是配置MySQL数据库
有问题,看看账号密码,host地址,和网络类型等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)