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

本文介绍了如何使用 EMQ X 规则引擎将满足特定条件的 MQTT 消息存储到 MySQL 数据库。内容包括场景介绍、数据库和数据表创建、EMQ X 资源配置、规则创建与测试,以及最终的测试验证。
摘要由CSDN通过智能技术生成

场景介绍

该场景需要将 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 '当前车速',
  
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值