概述
规则引擎支持用户配置规则将符合条件的设备上报数据转发到 时序数据库 CTSDB (以下简称 CTSDB。当前版本仅支持 CTSDB 1.0,暂不支持 CTSDB 2.0 ,支持时间另行通知),用户的应用服务器,再从 CTSDB 中读取数据内容进行处理。以此利用 CTSDB 海量数据高存储压缩率、数据聚合展示能力,能有效满足日常设备数据存储、分析、可视化展示的需求。
规则引擎将数据转发给 CTSDB 的整个过程,如下图所示:n
配置步骤
1. 登录 物联网开发平台控制台,单击目标实例和项目名称,选择左侧菜单栏数据流转 > 规则引擎。
2. 进入规则详情页面,单击添加行为操作。
说明:
第一次使用时会提示用户授权访问 CTSDB,用户需单击授权访问 CTSDB才能继续创建。n
3. 在弹出的“添加规则”窗口,选择行为数据转发到时序数据库(CTSDB),依次选择 CTSDB 地域和实例,并填写基本信息和需要配置的转发字段,单击保存即可。
完成以上配置后,物联网开发平台会将符合规则条件的设备上报数据,转发至用户配置的 CTSDB 实例。用户可参考 CTSDB 开发指南 在自己的应用服务器上读取数据进行处理,或者在 CTSDB 控制台 对数据进行聚合检索查询。
配置参数说明
实例登录账户:用户创建 CTSDB 实例时候输入的账户名,需要在配置规则引擎之前创建实例。
登录密码:用户创建 CTSDB 实例时候输入的账户密码,需要在配置规则引擎之前创建实例。
metric : 配置数据转发到 CTSDB 的哪个 metric 下,如果配置规则引擎之时没有该 metric ,物联平台会自行创建。
timestamp : 数据写入 CTSDB 时候的时间戳,当前支持4种配置:
通过“${}”引用原始消息的字段值。
系统函数。
timestamp() :命中规则引擎的该消息当前时间,插入当前的系统时间。
常量:需要是以秒为单位的 UNIX 时间戳;不填写,则默认为命中规则引擎的该消息当前时间。
注意:
如果在规则创建后,用户修改该 CTSDB metric 的 timestamp 为非秒级的单位(如毫秒级),可能导致后续数据写入失败。
数据字段 : 类型可选择 CTSDB 里面的 tag 类型或者 field 类型,字段名称输入限制,请参见 CTSDB 限制,值有3种配置方式:通过“${}”引用原始消息的字段值;常量;固定值。
高级配置说明
高级配置项,适用于设备上报数据字段是动态扩展的,无法预先配置的情况。例如,设备底下有若干传感器需要传输数据,但是不同的设备规格、配置不一样,传感器的数目也不固定,但需要使用规则引擎配置,将设备底下所有传感器的数据都存入 CTSDB,以下为您提供高级配置的方案存储:n
说明:
默认存储类型:动态扩展存储的字段,在 CTSDB 中的存储类型,默认是 tag 类型。
key:需要遍历扩展存储的 json 键,物联网开发平台会遍历此 key 下的 json 键值嵌套,以'_'为连接符,最后存储到时序数据库,通过规则引擎配置 SQL SELECT 检索得到的 json 结果与配置(支持配置子 key,支持配置多个),到实际存储进 CTSDB 的数据,如下样例所示:
重发机制
重发机制用于在消息转发过程中发生失败的情况下,进行再次重发以达到接受消息的目的,具体说明如下:
若消息转发失败,系统则会进行转发重试,重试按照1s、3s、10s的时间间隔依次进行,若三次重试均失败,则将消息丢弃掉。
若用户配置了“转发错误行为操作”,在三次重试失败后,将按“转发错误行为操作”的配置,再进行一次消息转发,如果仍失败,则将消息丢弃掉。