MYSQL、SQLServer、PostgreSQL

允许网关将实时、历史、告警、执行日志推动给数据库,或接收数据库端的控制请求

注:MYSQL端也等同"达梦数据库";PostgreSQL端也等同"Greenplum数据库"

1.数据库基础配置

4_2_1_数据库客户端配置

  • 启用:是否启用该端推送
  • 网关名:表名中有指定列,内容固定为此值

    • 请务必确保每个网关中,该名称是全局唯一的
  • IP地址:远程数据库的数据库地址

  • 端口:远程数据库的端口
  • 用户名:访问数据库的用户,需要开启远程访问权限
  • 密码:和用户名想匹配的密码
  • 数据库名称:具体操作的数据库名称,需要预先创建

2.实时表配置

4_2_2_实时表配置

  • 实时表名:接收实时数据的表名,需要预先以指定格式创建
  • 实时表周期:将数据更新至实时表的周期,单位秒,推荐值:30
  • 变值更新:仅在数据值发生变化时,才进行上传操作;推荐此选项,降低网络传输开销
  • 定时发送:多长时间发送一次全部数据,无论值是否发生变更
  • 需要上传的数据点,请用户在完成上述配置后,再自行配置

实时表数据示例(mysql中):

4_2_2_实时表数据

  • gateway_v:网关名,由用户自行配置
  • id_v:采集标签的ID
  • vtype_v:值的类型,num或str
  • rvalue_v:具体读到的值
  • rstatus_v:读取状态:ok、no、null
  • rinfo_v:对读取状态的补充信息
  • rTime_v:读取该记录的unix时间戳

3.历史表配置

4_2_3_历史表配置

  • 历史表名:接收历史数据的表名,需要预先以指定格式创建
  • 历史表周期:将数据更新至历史表的周期,单位秒,推荐值:60
    • 用户表占用磁盘空间会随着时间累积增长,请用户设立的设置周期,并对不需要旧数据进行清理
  • 变值更新:仅在数据值发生变化时,才进行上传操作;
    • 强烈推荐此选项,降低网络传输开销,以及降低数据库存储空间的占用
  • 定时发送:多长时间发送一次全部数据,无论值是否发生变更

    • 历史表中不推荐开启此选项
  • 需要上传的数据点,请用户在完成上述配置后,再自行配置

历史表数据示例(mysql中):

4_2_2_历史表数据

  • gateway_v:网关名,由用户自行配置
  • id_v:采集标签的ID
  • vtype_v:值的类型,num或str
  • rvalue_v:具体读到的值
  • rstatus_v:读取状态:ok、no、null
  • rinfo_v:对读取状态的补充信息
  • rTime_v:读取该记录的unix时间戳

4.告警表配置

4_2_4_历史表配置

  • 告警表名:接收告警数据的表名,需要预先以指定格式创建
    • 用户需要预先在告警端配置告警点的检查,仅在有告警时,会将告警信息,以指定格式推送至告警表
  • 告警表周期:检测是否有告警数据的周期,单位秒,推荐值:30

告警表数据示例(mysql中):

4_2_2_告警表数据

  • gateway_v:网关名,由用户自行配置
  • id_v:采集标签的ID
  • type_v:指明该记录是告警还是恢复,值范围:alarm或recovery
  • state_v:触发/恢复的是哪类告警,可选值:max_limit,min_limit,read_limit
  • level_v:触发/恢复的告警的等级
  • limit_v:该等级的阈值
  • data_v:触发/恢复时,采集标签的值
  • time_v:触发/恢复时对应的unix时间戳
  • time_str_v:触发/恢复时对应的时间字符串
  • user_data_v:用户自定义的字段内容
  • rinfo_v:仅在告警类型是read_limit时有意义,补充说明读取失败的原因

5.控制表配置

5.1.控制表的配置

4_2_5_控制表配置

  • 控制表名:实现数据库端对网关功能的表名,需要预先以指定格式创建
  • 控制表周期:网关间隔多久,查询一次控制表是否有"新的控制需求"
  • 单个命令执行间隔:如果设置内容包含多个时,设置下一个子对象前的休眠
  • 定时保持:
    • 不开启此选项时,满足控制表逻辑时,无论成功与否,仅执行一次
    • 开启此选项后,将周期执行"满足控制表逻辑的点"
  • 执行记录:经过控制接口成功执行的操作,是否记录在本地

    • 在控制频繁的场景下,不推荐开启此选项
  • 此端控制点无需配置,只需要下发的控制ID在网关内存在即可

5.2.控制表使用的方法:

  • 插入一条数据,设置"id_v","setv_v","runtime_v"列
  • 首次插入示例SQL:insert into control_table (gateway_v,id_v,setv_v,runtime_v) values ('gw1','group9_A0','333','1688622627');
  • 后续更新语句:update control_table set setv_v = '32',runtime_v='1688635980' where id_v ='group9_A0';

5.2.控制表的执行逻辑:

  • "gateway_v"列是当前网关,且当前时间已超过"runtime_v",且"runtime_v"不为0时,将执行该点
  • 当"runtime_v"变更,或"setv_v"与"oldv_v"列值不相等时,执行该点

控制表数据示例(mysql中):

4_2_2_控制表数据

  • gateway_v:网关名,由用户自行配置
  • id_v:采集标签的ID
  • set_v:下发的控制值
  • old_v:上次设定的控制值,此列由网关更新维护
  • runtime_v:该标签的执行时间,仅在当前时间大于该时间,此标签才会执行
  • exe_time_v:真实执行的时间
  • exe_status_v:执行的状态:ok、no
  • exe_err_v:执行失败的原因

6.日志表配置

4_2_6_日志表配置

  • 启用与否:是否启用将其他端的"执行日志"推送至数据库中
  • 日志表名:接收执行日志数据的表名,需要预先以指定格式创建
  • 日志表周期固定为30秒,当前版本暂不支持更改

日志表数据示例(mysql中):

4_2_2_日志表数据

  • gateway_v:网关名,由用户自行配置

  • exe_time_v:该记录发生的unix时间

  • log_msg_v:具体的日志信息,json格式,有2类格式

    • 格式1:转发端控制接口触发产生

      • src:由网关中哪一个程序触发,可选值httpclient,mysql,postgresql,sqlserver,redis
      • id:采集标签的ID
      • setv:具体设定的值
      • exe_status:执行状态
      • reason:失败时的补充原因
      • time:该记录发生的unix时间
      • time_str:该记录发生的时间字符串
    • 格式2:任务端触发产生(请参考数据接口→HTTP日志查询)

      • time:该记录发生的时间
      • plan:用户配置的任务名
      • act:用户配置的动作名
      • cond_type:条件类型,有以下可选值
        • single:单一条件
        • null:无条件
      • check_id:条件检测的ID
      • cond_status_type:是否启用读取状态的检测
        • null:未启用
        • success:启用了读取成功次数检测
        • fail:启用了读取失败次数检测
      • cond_status_judge:读取状态的比较类型
        • equal:等于
        • greater_than:大于
        • greater_than_or_equal:大于等于
        • less_than:小于
        • less_than_or_equal:小于等于
      • cond_val_type:是否启用读值的检测
        • null:未启用
        • readv:启用了读值大小的检测
        • sub_str:启用了包含子串的检测
        • str:启用了字串相等的检测
      • cond_val_type:读值的比较类型
        • equal:等于
        • greater_than:大于
        • greater_than_or_equal:大于等于
        • less_than:小于
        • less_than_or_equal:小于等于
        • contain_substring:包含子串,仅在cond_val_type值为sub_str时出现
        • no_contain_substring:不包含子串,仅在cond_val_type值为sub_str时出现
        • equal_str:等于字串,仅在cond_val_type值为str时出现
        • no_equal_str:不等于字串,仅在cond_val_type值为str时出现
      • cond_val_setv:值条件时的设定值
      • cur_val_v:检测时,条件点的值
      • cond_time_en:条件是否启用持续时间
        • enabled:启用
        • disabled:未启用
      • cond_time_judge:持续时间的判断条件
        • equal:等于
        • greater_than:大于
        • greater_than_or_equal:大于等于
        • less_than:小于
        • less_than_or_equal:小于等于
      • cond_time:设置的持续时间
      • cur_time:实际的时间
      • exe_type:执行点类型
        • point:单点
        • null:无执行点
      • exe_id:执行点的名称
      • exe_val:执行点的设置值
      • exe_status:执行点的主题
      • exe_msg:执行失败时的补充原因

7.MYSQL的创表语句

实时表:(实时表需要设置复合主键)
CREATE TABLE IF NOT EXISTS `real_table`(
   `gateway_v` VARCHAR(31),
   `id_v` VARCHAR(129),
   `vtype_v` VARCHAR(5),
   `rvalue_v` VARCHAR(513),
   `rstatus_v` VARCHAR(5),
   `rinfo_v` VARCHAR(129) ,
   `rTime_v` BIGINT,
      PRIMARY KEY (gateway_v, id_v)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;        

历史表:
CREATE TABLE IF NOT EXISTS `history_table`(
   `gateway_v` VARCHAR(31),
   `id_v` VARCHAR(129),
   `vtype_v` VARCHAR(48),
   `rvalue_v` VARCHAR(513),
   `rstatus_v` VARCHAR(5),
   `rinfo_v` VARCHAR(129) ,
   `rtime_V` BIGINT
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

告警表:
CREATE TABLE IF NOT EXISTS `alarm_table`(
   `gateway_v` VARCHAR(31) NOT NULL,
   `id_v` VARCHAR(129) NOT NULL,
   `type_v` VARCHAR(12) NOT NULL,
   `state_v` VARCHAR(12) NOT NULL,
    `level_v` VARCHAR(12) NOT NULL,
    `limit_v` VARCHAR(64) NOT NULL,
    `data_v` VARCHAR(64) NOT NULL,    
    `time_v`int NOT NULL,      
   `time_str_v` VARCHAR(32) NOT NULL,
   `user_data_v` VARCHAR(257)NOT NULL,
       `rinfo_v` VARCHAR(129)NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

控制表:
CREATE TABLE IF NOT EXISTS `control_table`(
   `gateway_v` VARCHAR(31),
   `id_v` VARCHAR(129) ,
   `setv_v` VARCHAR(513) ,
   `oldv_v` VARCHAR(513) ,
   `runtime_v` int ,
  `exe_time_v` int ,
   `exe_status_v` VARCHAR(5) ,
   `exe_err_v` VARCHAR(257)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

日志表:
CREATE TABLE IF NOT EXISTS `log_table`(
 `gateway_v` VARCHAR(31) ,
 `exe_time_v` int,
 `log_msg_v` VARCHAR(1024) 
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

8.SQLServer的创表语句

实时表:
    gateway_v              nchar(31)        主键
    id_v                   nchar(129)        主键
    vtype_v                nchar(5)
    rvalue_v               nchar(513)
    rstatus_v              nchar(5)
    rinfo_v                nchar(129)
    rtime_v                numeric(18, 0)

历史表:
    gateway_v              nchar(31)
    id_v                   nchar(129)
    vtype_v                nchar(5)
    rvalue_v               nchar(513)
    rstatus_v              nchar(5)
    rinfo_v                nchar(129)
    rtime_v                numeric(18, 0)

告警表:
    gateway_v             nchar(31)
    id_v                  nchar(129)
    type_v                nchar(12)
    state_v               nchar(12)
    level_v               nchar(12)
    limit_v               nchar(64)
    data_v                nchar(64)
    time_v                nchar(101)
    time_str_v            nchar(32)
    user_data_v           nchar(257)
    rinfo_v               nchar(129)

控制表:
    gateway_v           varchar(31)
    id_v                varchar(129)
    setv_v              varchar(513)
    oldv_v                varchar(513)
    runtime_v              int
    exe_time_v          int
    exe_status_v        varchar(5)
    exe_err_v           varchar(257)

日志表:
    gateway_v            nchar(31)
    exe_time            int
    log_message            nchar(1024)

9.PostgreSQL创表语句

  • 相同的配置,也支持连接Greenplum数据库
实时表:
create table real_table(
    gateway_v varchar(31),
    id_v varchar(129),
    vtype_v varchar(12),
    rvalue_v varchar(513),
    rstatus_v varchar(5),
    rinfo_v varchar(129),
    rtime_v int,PRIMARY KEY (gateway_v,id_v)
);
历史表:
create table history_table(
    gateway_v varchar(31),
    id_v varchar(129),
    vtype_v varchar(12),
    rvalue_v varchar(513),
    rstatus_v varchar(5),
    rinfo_v varchar(129),
    rtime_v int
);
控制表:
create table control_table(
    gateway_v varchar(31),
    id_v varchar(129),
    setv_v varchar(513),
    oldv_v varchar(513),
    runtime_v int,
    exe_time_v int,
    exe_status_v varchar(5),
    exe_err_v varchar(257)
);
告警表:
create table alarm_table(
    gateway_v varchar(31),
    id_v varchar(129),
    type_v varchar(12),
    state_v varchar(12),
    level_v varchar(12),
    limit_v varchar(64),
    data_v varchar(64),
    time_v int,
    time_str_v varchar(32), 
    user_data_v varchar(257),
    rinfo_v varchar(129)
);
日志表:
create table log_table(
    gateway_v varchar(31),
    exe_time_v int,
    log_msg_v varchar(1024)
);

results matching ""

    No results matching ""