Skip to content

数据开放

在左侧菜单栏中,选择【数据管理】【数据开放】,进入数据开放管理界面。平台提供了两种开放方式,分别是“数据订阅”和“数据导出”。

数据订阅

数据订阅功能用于将【测点实时值】、【告警信息】转发到【消息中间件】,第三方平台可以通过【消息中间件】订阅【测点实时数据】和【告警数据】。

目前支持将数据转发到以下消息中间件:

  • Kafka
  • AMQP
  • Pulsar
  • MQTT
添加订阅

在【数据开放】页面,切换到【数据订阅】页签,点击【添加订阅】按钮,打开创建对话框。如下图所示:

image-20250328095712187

image-20250328095939419

字段说明

名称说明
订阅名称
资源类型每项订阅只能选择一种资源类型包括:测点值告警信息
转发目的地转发的消息中间件类型。
其它字段用于配置消息中间件的连接参数。
设置订阅资源

添加好订阅后,点击【数据资源】按钮,可对需要订阅的资源内容进行选择。

image-20250328100142904

CAUTION

每项订阅只能选择一种资源类型包括:测点值告警信息

消息格式

不同的资源类型转发的消息格式不同

测点值
json
{
  "deviceID": "D01",
  "pointID": "P01",
  "value": 1,
  "quality": 0,
  "timestamp": 1655342160703,
  "gatewayID": "G01"
}

字段说明

名称类型说明
gatewayIDstring网关标识
deviceIDstring设备标识
pointIDstring测点标识
valuestring|number|bool测点值
qualitynumber数据质量
timestampnumber时间戳毫秒值
告警信息
{
    "id": "cak5i5te97ejrjko7qe0",
    "status": "handled", // unhandled/handled/ignored
    "createdAt": "2022-06-14T17:47:02.461192+08:00",
    "recoveredAt": null,
    "handledAt": "2022-06-14T17:47:09.123729+08:00",
    "handler": "admin",
    "orderCreated": true,
    "title": "告警标题",
    "content": "告警内容",
    "remark": "确认信息备注"
    "ruleTemplateID": "告警规则ID",
    "deviceID": "c",
    "pointID": "TEST",
    "mode": "property",
    "duration": 1,
    "inputValue": "111",
    "compareMode": ">",
    "compareValue": "2",
}

字段说明

名称类型说明
idstring告警记录标识
statusstring告警状态:unhandled/handled/ignored
createdAtstring告警发生时间,ISO8601 格式
recoveredAtstring告警解除时间,ISO8601 格式,空表示新产生的告警,不为空表示告警解除或者状态更新。
handledAtstring确认告警时间
handlerstring告警确认人
remarkstring确认信息备注
orderCreatedboolean是否创建工单
titlestring告警标题
contentstring告警内容
ruleTemplateIDstring告警规则ID
deviceIDstring设备标识
pointIDstring测点标识
inputValuestring告警值
durationnumber持续时长(秒)
modestring触发方式:point:单测点not_upload:长时间不上传not_change:长时间数据不变化offline:设备离线expression:表达式
compareModestring比较方式如下:>>=<<==!=区间内(between):测点值处于区间外时,触发告警。区间格式:(100, 200), [100,200]区间外(not_between):测点值处于区间内时,触发告警。数值偏差(diff):测点值与阈值的差值大于偏差值时,触发告警。
compareValuestring告警阈值
deadBandnumber死区值
diffnumber偏差值

CAUTION

recoveredAt 为空时表示新告警

转发目的地
Pulsar

img

转发到Apache Pulsar

Kafka

转发到Apache Kafka

img

AMQP

转发到AMQP 1.0协议的broker。

连接地址示格式为 amqp[s]://<host name of AMQP 1.0 broker>,例如:amqp://192.168.0.24

img

常用 AMQP Broker:

CAUTION

AMQP 1.0 has no equivalent of AMQP 0-9-1 virtual hosts. A virtual host on the broker may be addressed when opening an AMQP 1.0 connection by setting the hostname field, prefixing with "vhost:". Setting the hostname field to "vhost:/" addresses the default virtual host. If the hostname field does not start with "vhost:" then the default_vhost configuration setting will be consulted.

MQTT

转发到 MQTT 消息中间件。

连接地址格式示例:mqtt://192.168.3.10:1883

image-20241218164743232

数据导出

数据导出功能用于定时将测点数据写入到第三方关系型数据库,目前支持导出以下数据库:

  • MySQL
  • SQLServer
创建导出任务

切换到【数据导出】页签,点击【创建】按钮,弹出【添加任务】对话框,如下图所示:

image-20250328115712646

相对时间

数据时间相对于导出启动时间前多久开始,填充数据格式为:中划线(-)+ 数字(1-3位)+ 单位。

单位:

  • 天:d或D;
  • 时:h或H;
  • 分:m或M。

例:

  • -1h,表示任务启动前 1 小时内的数据。
  • -1d, 表示任务启动前 1 天内的数据。
  • -20m, 表示任务启动前 20 分钟内的数据。
数据抽样

数据抽样未启用时,导出原始数据。

数据抽样启用时,每间隔指定的时间段抽取一条数据,需要设置抽样间隔和抽样方法。

抽样方法:

  • FIRST:抽样间隔内的第一条数据;
  • LAST:抽样间隔内的最后一条数据;

img

例如:在小时的原始数据中,设置抽样间隔为 1 分钟,抽样方法为 FIRST ,在执行导出任务时,最多采集出60条数据进行导出。

任务类型

任务类型包括【单次任务】和【定时任务】。

  • 单次任务:在指定的具体时间执行一次导出任务。
  • 定时执行:在指定的时间范围内,周期性地执行任务。

img

img

时间类型

时间类型用于定义数据导出的时间范围,支持两种设置方式:

  • 绝对时间,导出固定时间段内的测点数据。
  • 相对时间,每次任务执行时,导出任务运行前一段时间内的测点数据。

img

img

【相对时间】需按固定格式填写:

  1. 以一个减号-开头
  2. 一到三位整数
  3. 单位:hmd其中之一,分别表示小时、分钟、天

例如:

  • -1d:每次任务执行时导出向前一天的测点数据
  • -12h:每次任务执行时导出向前12小时的数据
  • -30m:每次任务执行时导出向前30分钟的数据
导出目标

导出目标可选择MySQLSQLServer

同时需要配置目标数据库的连接参数,包括地址、端口、用户名、密码、数据库名称。

CAUTION

导出到SQLServer时,加密传输的选择:

由于 TLS 1.0 存在安全漏洞,条件允许时,应尽量在服务器段开启 TLS 1.2 支持并设为默认。

微软官方文档

开启 TLS 1.2 对于 SQLServer < 2008 不支持,SQLServer < 2016 需要安装安全补丁。

如果服务端无法支持 TLS 1.2,可在导出目标的连接参数中关闭加密传输,或者改用 TLS 1.0 传输。

数据资源

选择将哪些数据进行导出。

先选择设备模型,然后对每个设备模型选择要导出的设备和测点。

数据表

导出的数据将以设备模型分组,相同设备模型下的设备测点导出到同一个表。

表名可以在任务属性中进行设置,{device_model_id}的部分会替换为设备模型的标识。

img

例如数据源选择了标识为DT1DT2的两个设备模型,表名模板为export_{device_model_id}_data,对应的测点数据对应导出到export_DT1_dataexport_DT2_data两个表。

表的列要求如下:

  • 表应当自动生成主键
  • device_id保存设备标识
  • time保存数据时间
  • 对于设备模型上定义的每一个测点,按其测点标识对应目标表的一列,可以为NULL

如果缺少device_idtime、任意测点对应的列,或者值与列类型不兼容,都会导致导出失败。

可以在列表页中点击“建表”完成自动建表。

自动建表以点击时数据资源中各设备模型现有测点进行建表,以自增列id作为主键。