mysql 规则引擎_EMQ X 规则引擎系列(二)存储消息到 MySQL 数据库

场景介绍

该场景需要将 EMQ X 指定主题下且满足条件的消息存储到 MySQL 数据库。为了便于后续分析检索,消息内容需要进行拆分存储。

该场景下设备端上报信息如下:

上报主题:cmd/state/:id,主题中 id 代表车辆客户端识别码

消息体:

{

"id": "NXP-058659730253-963945118132721-22", // 客户端识别码

"speed": 32.12, // 车辆速度

"direction": 198.33212, // 行驶方向

"tachometer": 3211, // 发动机转速,数值大于 8000 时才需存储

"dynamical": 8.93, // 瞬时油耗

"location": { // GPS 经纬度数据

"lng": 116.296011,

"lat": 40.005091

},

"ts": 1563268202 // 上报时间

}

当上报数据发动机转速数值大于 8000 时,存储当前信息以便后续分析用户车辆使用情况。

准备工作

创建数据库

创建 iot_data 数据库以存储消息数据,这里指定数据库编码为 utf8mb4 避免编码问题:

CREATE DATABASE `emqx_rule_engine_output` CHARACTER SET utf8mb4;

创建数据表

根据场景需求,创建数据表 use_statistics 结构及字段注释如下:

CREATE TABLE `use_statistics` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`client_id` varchar(100) DEFAULT NULL COMMENT '客户端识别码',

`speed` float unsigned DEFAULT '0.00' COMMENT '当前车速',

`tachometer` int(11) unsigned DEFAULT '0' COMMENT '发动机转速',

`ts` int(11) unsigned DEFAULT '0' COMMENT '上报时间戳',

`msg_id` varchar(50) DEFAULT NULL COMMENT 'MQTT 消息 ID',

<
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值