物联网开发平台 数据转发到云数据库 MySQL

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

相关产品
物联网开发平台 产品页,含版本规格、价格与购买入口。

一、概述

下图展示了规则引擎将数据转发给 MySQL 的整个过程:

二、前提条件

·已有可使用的实例,可参见 实例管理。

·已配置物模型,具体操作可参见 配置物模型。

·已创建 MySQL 实例,具体操作可参见 管理实例。

三、配置步骤

1. 登录 物联网开发平台控制台,单击目标实例进入产品列表。

2. 单击产品名称进入产品详情页,选择功能定义,找到对应要转发的物模型数据字段。(这篇以电源开关、亮度和场景为例)

3. 选择左侧菜单栏规则引擎,单击新建规则完成创建。

4. 单击名称进入规则详情页面,单击筛选数据右侧的编辑来配置规则。

字段填入第2步的物模型数据字段,这里选择物模型属性上报,在对应字段应该加 params. 字段才行。如下:

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

5.1 选择“数据转发到云数据库(MySQL)”,授权成功后,需要配置 MySQL 实例信息和写入的字段信息。

5.1.1 选择地域和实例。

5.1.2 输入实例所属的账户用户名和登录密码。

5.1.3 选择需要写入的数据库名。如果创建的 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.1.4 选择要写入的表。如果创建的数据库下还没有建立表,前往 MySQL 控制台创建一个新的表。

5.1.5 配置要写入的字段。这里有两列:"字段名称"和"值"。"字段名称"对应的是数据库表中的字段,表示要写入的字段。"值"表示要写入对应字段的值。值的来源可以是消息体(注意消息体必须是 JSON 格式才支持提取值),或者是在这里填入常量。

更多详情请参见 建立数据库和表。

注意:说明:

注意:物模型字段的数据类型要和 MySQL 表定义的类型一致,否则会无法写入至 MySQL 表里。暂不支持数组写入。

5.2 配置完成后单击保存即可。

5.3 行为操作创建好后,还需同步登录 MySQL 产品进入数据库控制台创建表,MySQL 字段映射示例如上文步骤5.1处所示。

6. 设备侧需要先上报物模型消息到平台,消息格式示例如下:

{ "method":"report", "clientToken":"123", "params":{ "power_switch":1, "brightness":11, "scene":3 }}

这边用 MQTTX 工具 来模拟设备侧上报数据,需要提前订阅好该设备的上下行 Topic:

若订阅的设备消息 code 返回为0,则表示物模型属性上报成功。失败可具体参考 code 错误码。

code 说明
400 报文格式非 JSON 格式。
403 错误的 method 标识符或属性、事件、行为标识符与物模型定义的标识符不一致。
405 时间戳错误,当前时间和上报时间相差24小时,注意时间戳是毫秒。
406 物模型参数输入值数据类型错误或数据超出定义范围。
503 系统内部错误。

7. 确认好设备侧属性上报无误后,可在对应规则的 SQL 调试中输入 Payload 内容。参考调试结果,若结果为空则需回到第4步检查 params. 字段。结果正常如下:

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

四、重发机制

重发机制用于在消息转发过程中发生失败的情况下,进行再次重发以达到接收消息的目的,具体说明如下:

·若消息转发失败,系统则会进行转发重试,重试按照1s、3s、10s的时间间隔依次进行,若三次重试均失败,则将消息丢弃掉。

·若用户配置了“转发错误行为操作”,在三次重试失败后,将按“转发错误行为操作”的配置,再进行一次消息转发,如果仍失败,则将消息丢弃掉。

赞 (0)
上一篇 4天前
下一篇 4天前