开发者学堂课程【物联网平台云上开发:物联网数据通过规则引擎流转到OTS】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/563/detail/7708
物联网数据通过规则引擎流转到OTS
内容介绍:
一、规则引擎
二、将数据流转到表格存储里
一、规则引擎
1、作用:
规则引擎主要帮助把设备的数据转储到自己的数据库或消息队列或者是实时的流计算中去。
2、规则引擎的数据处理:
数据处理:数据处理采用了一个circle的方式来处理,主要包含select,from,where的这样一条语句。
select的对象主要包括设备的上下文的数据,设备上传的payload的数据;from是用来过滤topic的;where里面可以对select的条件进行二次过滤。在payload部分,设备上报时会有topic和payload。
topic就是from语句过滤时会根据这个topic进行过滤。payload里面的一些东西可以在里面select过滤,同样temperature也可以出现在where条件语句里。当设备上报数据之后,在云平台是可以拿到设备的一些身份信息、设备的扩展信息,它不需要设备上报payload的时候包含这些信息。
设备处理的circle如图所示
数据处理的circle像这样,select、deviceName这样一个方法,这些方法是IoT平台提供的方法,和日常经常用到
my circle函数的方法类似。
payload里的数据可以直接用key获取到,加号是一个通配符,如此就可以过滤掉这个产品所有的设备上报的data的一个数据结构。通过circle执行之后,就可以获得一个以下{‘’deviceName’’:’’aliyunIot’’,’’date;’’:’’2018=03=29’’,’’tag’’:’’西溪园区1-4-156’’,’’iemi’’:’’XiXi230453433’’,’’temperature’’:23,’’humidity’’:64}样式的结构化的数据。
数据转发:以下这个截图是在控制台的规则引擎,详情的截图。
上半部分数据处理的circle语句就是刚刚提到的circle语法,下半部份则是一个转发的目的地。
将这个目的地转发到表格存储里,那就涉及到表格存储实例的名字、实例的数据表以及组件的映射方式。这样一条
句在IoT平台上运行之后,一旦有设备上报数据,满足这个条件,就会在表格存储的数据库里看到这样的一条数据。
那这时候就完成了设备的数据通过IoT平台存储到自身的数据库里。
自定义topic数据处理:
如果是自定义的topic,数据在IoT平台的流转如图
设备上报消息以后,通过IoT平台的一个网关直接匹配到规则引擎,规则引擎直接把数据转储到表格存储里。如果基
物模型的topic,那它的数据流转就是这样的。
设备上报数据,先到IoT的网关,然后网关会把数据流转到物模型里去,物模型会把原始数据解析成定义的物模型的
构体,然后再把数据流转到规则引擎模块,规则引擎模块根据配置的circle把数据进行处理然后转储到目的地。
原始的payload经过物模型处理之后,工作人员会把每个字段打上时间戳,那它的结构就发生了变化,工作人员是
于之后的变化之后的结构体来定义规则引擎。
当拿到这样一个处理结果后,规则引擎就会把数据转储到表格存储里。控制台的左面会有一个规则引擎的一个分类
右边可以创建规则引擎,可以启动和停止。点击规则引擎之后,会进入规则引擎的具体的详情页,这里会包含当前的规则引擎如何处理数据就是它的circle,还有它的转发的目的地。
规则引擎的目的地是可以同时转发多个目的地,就是一条数据既存储到时序数据库又转发到另外一个topic里。
当数据转发处理有错误的时候,会把数据信息进行一个二次转发,就是可以通过消息队列来接收这样一个错误。
这是circle编写的一个模块,这里会包含取那些字段,过滤那个topic,条件语句,例可以以湿度大于60作为条件去
图,这里是数据转发的目的地。如果将它转为实际数据库时,需要配置实际数据库的一些参数。一旦转发错误的
候,还可以把错误的事件推到DataHub、消息队列、函数计算。这里只有一个目的就是把一个错误配置到了MQ序
里面。
二、将数据流转到表格存储里
1、首先创建一个表格存储的实例运用到ots的表格存储里,接着创建一个数据库表
它的表名是iot_devices_data,它有两个主键,一个是ID一个是time。
现在的数据库是空的,接下来要做的就是创建规则引擎,下图便是创建的规则引擎。
因为此设备是一个高级版的设备,因此是有物模型的,因此circle语法就会看到想取到的具体的属性的值。
这里是配置到表格存储,在华东2创建了一个刚刚的实例,然后存储到了数据表,主键是device ID和time,如图。
将ciecle里取到的字段,就是device name映射到device ID上,将time映射到表格存储的time里,并授权IoT平台操
数据库,因而需要创建一个RAM角色。规则引擎如此配备完毕。在此可以启动规则引擎,启动后,它就会在云端运转。
这里一旦有数据上报符合规则引擎的逻辑,那么就会有数据存储到刚刚的表格存储里面。此时,试着运行一些设备
使它上报一条数据。如此时上报了一条22,62的数据。可以在运行状态里看到数据运行到云端,在日志里面也可以
到运行过程,即有一条数据上报,它流转了规则引擎后流转到了表格存储就是table store。
这时就可以去表格存储的数据库里寻找是否有这一条数据。刷新就会看到有了一条数据,它的时间以及两个值22,52。到此就完成了数据上报在云端流转到企业数据库的过程。