一. 概述

网关支持将数据转发至用户指定数据库。目前支持的数据库类型有:MySQL、SQLServer、PostgreSQL。网关会根据用户配置自动将网关子设备数据、网关属性、设备属性存入用户指定的数据表。同时,也支持子设备数据下发,并将下发结果进行存储。

二. 转发配置

1. 基本配置

  1. 进入网关管理界面,选择服务->转发->添加转发。在转发类型里面选择数据库->数据库类型。

image.png

  1. 配置数据库连接参数。

image.png
注意:
数据库名称参数

  • 当数据库使用SQLSever时,由于网关不支持创建SQLServer数据库,所以需要用户先自行创建数据库,然后将数据库名称填入。
  • 当使用MySQL或PostgreSQL时,用户可随便填写数据库名称,网关会自动查询该数据库是否存在,如未存在,网关会自动创建该名称的数据库。

    2. 设置

    2.1. 数据库设置

    数据库基本配置完成后,网关点击数据库转发的编辑->数据库设置,对数据库表名称进行设置。其中除”数据下发表”以外的其它数据表,均支持使用变量的方式,允许的变量为: ${gatewayMac},${deviceId}, ${year}${month}, ${day}。网关会根据变量,自动替换具体变量值,生成数据表。通过该使用变量,用户可以轻松实现数据按照网关、设备、日期进行分表。
    注意:当数据表设置为空时,将不进行相关数据的存储。
    image.png

    2.2. 高级设置

  1. 离线缓存、存储位置、存储大小为配置网关离线缓存。当网关盒数据库连接异常断开之后,网关会将子设备数据缓存至本地,待连接正常后,写入数据库。
  2. 下发获取周期:网关会按照这个频率,定时查询”数据下发表”最后一条数据,如发现有待下发数据,网关会将数据下发至子设备,并将下发结果写回”数据下发表”。
  3. 网关属性上报周期:网关会按照这个频率,将网关属性参数写入该表。
  4. 设备属性上报周期:网关会按照这个频率,将网关子设备属性参数写入该表。

image.png

三. 数据表分析

1. 数据存储表

  1. SQL示例:

    1. INSERT INTO "sparks"."device_data_save" ("id", "created_at", "gatewayMac", "deviceId", "pointId", "value") VALUES (1, '2022-04-21 10:15:37.65+08', '92bfe1ded703', 'aaa', 'aaa', '0');
  2. 数据释义 | 名称 | 数据类型 | 含义 | | —- | —- | —- | | id | uint | 主键 | | created_at | time | 数据点创建时间 | | gatewayMac | string | 网关唯一id | | deviceId | string | 设备标识 | | pointId | string | 数据点标识 | | value | string | 数据点的值 |

2. 数据下发表

  1. SQL示例:

    1. INSERT INTO "sparks"."device_data_set" ("id", "created_at", "updated_at", "gatewayMac", "deviceId", "pointId", "dataType", "value", "isSet", "success", "message") VALUES (0, '2022-04-21 10:16:05+08', NULL, '92bfe1ded703', 'aaa', 'aaa', 'number', '11', 1, 1, '');
  2. 数据释义: | 名称 | 数据类型 | 含义 | | —- | —- | —- | | id | uint | 主键 | | created_at | time | 数据创建时间 | | updated_at | time | 数据更新时间 | | gatewayMac | string | 网关唯一ID | | deviceId | string | 设备标识 | | pointId | string | 数据点标识 | | dataType | string | 待下发数据的数据类型
    string:字符串
    bool: bool开关量
    number:数字类型 | | value | string | 数据点的值 | | isSet | int | 数据是否已下发至(1:已下发; 0:未下发),该值由网关设置 | | success | int | 数据下发是否成功(1:成功; 0:失败),该值由网关设置 | | message | string | 数据下发失败时,失败原因,该值由网关设置 |

3. 网关属性表

  1. SQL示例:

    1. INSERT INTO "sparks"."gateway_attribute" ("id", "created_at", "gatewayMac", "simInsert", "iccid", "csq", "latitude", "longitude") VALUES (1, '2022-04-21 10:15:57.080221+08', '92bfe1ded703', 1, '89861120276087406591', 23, '0', '0');
  2. 数据释义 | 名称 | 数据类型 | 含义 | | —- | —- | —- | | id | uint | 主键 | | created_at | time | 数据创建时间 | | simInsert | int | sim卡是否已插入(0:未插入;1: 插入) | | iccid | string | SIM卡唯一ID | | csq | int | 4G信号强度 | | latitude | float64 | 纬度 | | longitude | float64 | 经度 |

4. 设备属性表

  1. SQL示例:

    1. INSERT INTO "sparks"."device_attribute" ("id", "created_at", "gatewayMac", "deviceId", "lastCommRTC", "commTotalCnt", "commFailCnt", "lossRate", "isOnline", "code", "message") VALUES (1, '2022-04-21 10:15:37.081307+08', '92bfe1ded703', 'aaa', '2022-04-21 18:15:36+08', 339, 0, '0', 1, 0, '');
  2. 数据释义: | 名称 | 数据类型 | 含义 | | —- | —- | —- | | id | uint | 主键 | | created_at | time | 数据点创建时间 | | gatewayMac | string | 网关唯一id | | deviceId | string | 设备标识 | | lastCommRTC | time | 网关与设备最后一次通信时间 | | commTotalCnt | string | 网关与设备总通信次数 | | commFailCnt | int | 网关与设备通信失败次数 | | lossRate | float64 | 丢包率 | | isOnline | int | 子设备是否在线(0:离线; 1:在线) | | code | int | 网关与子设备通信错误码 | | message | string | 网关与子设备通信失败原因 |