数据转发到云组件 MySQL

最近更新时间:2025-10-31 16:48:01

我的收藏

概述

规则引擎支持用户配置转发规则,将符合条件的设备上报数据转发到云组件 MySQL ,您可以在 MySQL 控制台 或者使用云 API 创建 MySQL 实例和表后,即可将设备消息中的指定字段写入到对应的 MySQL 表中。
下图展示了规则引擎将数据转发给 MySQL 的整个过程:



物联网开发平台配置说明

1. 登录 物联网开发平台控制台,单击目标实例 > 产品开发 > 产品物模型定义,找到对应要转发的物模型数据字段。(本文以电源开关、亮度和场景为例)

2. 选择左侧菜单栏数据流转 > 规则引擎 >新建规则

3. 进入规则引擎页面,单击需要配置的规则,这里选择物模型属性上报,在对应字段应该加params.字段才行。

4. 在规则详情页面,单击添加行为操作。第一次使用时会提示用户授权访问 MySQL,您需单击立即授权后才能同步MySQL数据信息。

选择“数据转发到云数据库(MySQL)选项”,授权成功后,需要配置 MySQL 实例信息和写入的字段信息,如下图所示。配置完成后单击保存即可。

行为操作创建好后,还需同步登录 MySQL 产品进入数据库控制台创建表头,MySQL 字段映射示例如上图所示。
说明:
物模型字段的数据类型要和 MySQL 表定义的类型要一致,否则会无法写入至 MySQL 表里,暂不支持数组写入。
5. 设备侧需要先上报物模型消息到平台,消息格式示例如下:
{
"method":"report",
"clientToken":"123",
"params":{
"power_switch":1,
"brightness":11,
"scene":3
}
}
这边用 MQTTX 工具 来模拟设备侧上报数据,需要提前订阅好该设备的上下行Topic,如下图所示:

若订阅的设备消息返回为0,则表示物模型属性上报成功,失败可具体参考code错误码。
code
说明
400
报文格式非 JSON 格式。
403
错误的 method 标识符或属性、事件、行为标识符与物模型定义的标识符不一致。
405
时间戳错误,当前时间和上报时间相差24小时,注意时间戳是毫秒。
406
物模型参数输入值数据类型错误或数据超出定义范围。
503
系统内部错误。
6. 确认好设备侧属性上报无误后,可在 SQL 调试中输入 Payload 内容,参考调试结果,若结果为空则需回到3检查 params. 字段。结果正常如下图所示:

7. 转发成功后,MySQL 中显示的信息如下图所示:


MySQL 配置说明

配置分为如下几个步骤:
1. 选择地区和 MySQL 实例。
2. 输入刚创建的 MySQL 实例的用户名。
3. 输入实例的登录密码。
4. 选择需要写入的数据库名。如果创建的 MySQL 实例下还没有建立数据库,请前往 MySQL 控制台创建一个新的数据库。具体操作请参见 建立数据库和表
创建表数据库SQL示例:
CREATE TABLE my_table (
id INT AUTO_INCREMENT PRIMARY KEY,
field1 VARCHAR(1024),
field2 VARCHAR(1024),
field3 VARCHAR(1024),
json_field JSON,
int_field1 INT,
int_field2 INT,
int_field3 INT
);
5. 选择要写入的表。如果创建的数据库下还没有建立表,前往 MySQL 控制台创建一个新的表。

6. 配置要写入的字段。这里有两列:"字段名称"和"值"。"字段名称"对应的是数据库表中的字段,表示要写入的字段。"值"表示要写入对应字段的值。值的来源可以是消息体(注意消息体必须是 JSON 格式才支持提取值),或者是在这里填入常量。
注意:
如果来源是消息体,那么使用“${}”来引用消息体内的字段。如果要指定常量,直接填相应的值就行了,例如5或者 hello 这样的数字或者字符串字面值。
需先在云组件 MySQL 中创建完成数据库,表以及字段名称之后才可成功将数据写入数据库。
更多详情请参见 建立数据库和表

重发机制

重发机制用于在消息转发过程中发生失败的情况下,进行再次重发以达到接收消息的目的,具体说明如下:
若消息转发失败,系统则会进行转发重试,重试按照1s、3s、10s的时间间隔依次进行,若三次重试均失败,则将消息丢弃掉。
若用户配置了“转发错误行为操作”,在三次重试失败后,将按“转发错误行为操作”的配置,再进行一次消息转发,如果仍失败,则将消息丢弃掉。