版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

  codingset varchar(16) DEFAULT NULL,

  PRIMARY KEY (id)

);

字段说明

字段名称

类型

意义

id

varchar(16)

唯一id,也可是自增字段

name

varchar(32)

给定名称,在数据库转储中暂时用不到,但在dbdrv驱动中会用到

dbtype

varchar(16)

以下值中的一种,详见“关系数据库配置手册.docx”:sqlite/mysql/postgresql/oracle/sqlserver/db2/interbase/informix/sybase/odbc/sqlbase

connstring

varchar(256)

见“关系数据库配置手册.docx”

username

varchar(32)

登录数据库的名称

password

varchar(32)

登录数据库的密码

description

varchar(256)

描述,可选

codingset

varchar(16)

编码,缺省不用输入。如果乱码可尝试:utf8/ansi


转储配置规则表:

表名t_dbtransfer_rule

...

  • 每行记录只有一个tag点/对象属性的值、质量、时间

Tagname

Tagvalue

Quality

Tagtime

Updatetime

stationid

泵机.温度

25

0

2020-01-22 12:22:58.123

2020-01-22 12:23:00.123

X2045


  • 每行记录包含多个tag点/对象属性的值、质量、时间。此时,field_quality列的值所表示的质量字段可能无法表示所有tag的质量:

temp

humid

Quality

Tagtime

Updatetime

stationid

25

87

0

2020-01-22 12:22:58.123

2020-01-22 12:23:00.123

X2045

  • 如果各个tag点质量均为OK(0),则为0
  • 否则取其中一个tag点质量不是OK(0)的tag点的质量
  • 各个tag点的质量需要根据值来判断。质量不好的点的值不正常(常为?!或0)
  • fieldname_value字段无效,field_quality取第一个点的质量
  • 设备模式下,field_tagname存储多列信息,配置为以分号隔开的多个{fieldname,datatype}的组合,每个表示一个最终转出表的列名。datatype支持int/string/real/datetime,如果未指定则为string。fieldname为数据库列名。示例:humid,int;temp,string。有多少个列名,那么在t_db_transfer_rule_tag表中的tag_id也应该对应个数的以分号隔开的tag点id
  • 对象模式下, field_propname配置为以分号隔开的多个{fieldname,datatype}的组合,datatype支持int/string/real/datetime,如果未指定则为string。fieldname为数据库列名。示例:humid,int;temp,string。有多少个列名,那么在t_db_transfer_rule_objprop表中的prop_id也应该有对应个数的以逗号隔开的属性id
  • 对象模式下,field_objectname为对象的数据库字段名称,其值为t_db_transfer_rule_objprop表中object_id的对应的对象的名称

...

fieldname_fixcols varchar(1024),

  PRIMARY KEY (id)

);

字段说明

字段名称

类型

意义

id

varchar(16)

唯一id,也可是自增字段

dbconn_id

varchar(32)

表t_db_connection表的第三方数据连接的id列的值

name

varchar(16)

该次转储规则的名称,目前暂时用不到

tablename

varchar(256)

要转储到第三方数据的表名称,根据第三方数据库的表明配置

saveperiod

varchar(32)

要第三方数据库表插入或更新一次的周期,单位:秒。从每天0分0秒开始计算。如每小时写入1次,则值为:3600

writeonchange

varchar(32)

是否变化时写入数据。该功能暂时无效

description

varchar(256)

描述,可选

writemethod

varchar(16)

转储到实时表还是历史表。需要是下面两种字符串值得一种:history/real

history会在每个周期插入记录

real会在每个周期更新记录(除启动的第一次外,不插入记录)

为空时表示history。

fieldname_objname

varchar(1024)

对象模式下,eview的对象名称对应的第三方数据库表的列名称和列数据类型。设备模式下字段无效。为空时表示不保存该列。该列类型只能为字符串

示例1:对象名称

示例2:对象名称,string

fieldname_propname

varchar(64)

对象模式下,对象的多个属性名称对应的第三方数据库表的多个列名称和列数据类型。设备模式下字段无效。为空时表示不保存该列。

示例:温度,int;湿度,float;操作模式,string

fieldname_tagname

varchar(1024)

设备模式下,eview的tag点名称对应的第三方数据库表的多个列名称和列数据类型。未输入时缺省列名为:tagname。对象模式下字段无效。为空时表示不保存该列。

示例:开关状态,text;温度,float

fieldname_valuevarchar(512)

变量值。

如果是需要计算差值,则需要填入diff_value(diffvalue,begin_value,end_value)

fieldname_quality

varchar(64)

对象模式下,对象的属性值的质量对应的数据库表的列名称和列数据类型。

设备模式下,该行第一个tag点的对应的质量的数据库表列名称和列数据类型。

为空时表示不保存该列。

数据类型支持:int,text

示例1:质量,int

示例2:质量,text

fieldname_datetime

varchar(64)

对象模式下,eview对象的属性值的时间(来自驱动的时间)对应的数据库表的列名称和列数据类型。

设备模式下,该行记录第一个tag点时间(来自驱动的时间)对应的数据库表的列名称和列数据类型

数据类型为:string,datetime,[timeformat]

数据时间的时间格式未实现,缺省为:yyyy-mm-dd HH:MI:SS.xxx

为空时表示不保存该列。

示例1:data_time,string, yyyy-mm-dd HH:MI:SS.xxx

示例2:data_time,string

fieldname_updatetime

varchar(64)

对象/设备模式下,插入或者更新表记录的服务器系统时间(转储所在服务器的时间)对应的数据库表的列名称和列数据类型。

为空时缺省不保存。

数据类型为:string,datetime,[timeformat]

示例1:update_time,string, yyyy-mm-dd HH:MI:SS.xxx

示例2: update_time,string

fieldname_fixcols

varchar(1024)

设备/对象模式下,第三方数据库表要插入固定值的列名称、列数据类型、列值。其格式为:fieldname,int,value;fieldname2,string,value2

示例1:stationid,string,X1234;stationname,string,瓜步汛


变量配置表

配置哪些对象或者tag变量会转储到第三方数据库中。

...

t_db_transfer_rule_objprop表字段说明

字段名称

类型

意义

id

varchar(16)

唯一id,也可是自增字段

rule_id

varchar(32)

表t_db_transfer_rule表的记录id列的值

object_id

varchar(16)

Eview要转储的对象名。每转储一个对象需要在该表插入一条记录

示例:100---对应温度控制器1

prop_id

varchar(256)

要转储到eview对象的属性ID列表,多个属性以逗号隔开,其ID个数必须和t_db_transfer_rule表的fieldname_prop的数量相同。

示例:105,106---105对应温度控制器1的温度,106对应温度控制器1的湿度

t_db_transfer_rule_tag表字段说明

字段名称

类型

意义

id

varchar(16)

唯一id,也可是自增字段

rule_id

varchar(32)

表t_db_transfer_rule表的记录id列的值

tag_id

varchar(256)

要转储到eview的tag点id列表,多个属性以逗号隔开,其ID个数必须和t_db_transfer_rule表的fieldname_value的数量相同。

示例:105,106---105对应温度控制器1的温度,106对应温度控制器1的湿度


建表语句

设备模式下: 

CREATE TABLE t_db_transfer_rule_tag (

...

配置变量质量为BAD时,此时变量的值。


表名

t_sys_param

Name

Value

描述

valueonbad_int

-100000

数据质量为BAD且转储类型为int时,变量的值

valueonbad_real

-100000

数据质量为BAD且转储类型为real时,变量的值

valueonbad_string

*

数据质量为BAD且转储类型为string时,变量的值

valueonbad_datetime

1970-01-01 00:00:00

数据质量为BAD且转储类型为datetime时,变量的值



第三方数据库表结构示例

实时数据表结构设计示例

表名:取决于eview数据库t_dbtransfer_rule表配置的表名,如t_dbtransfer_rtdata_line1

字段名:如果t_rule表未设置字段名,则字段名称为下表“缺省字段名”,否则字段名为自定义的字段名称。

设备模式实时转储表结构例子

字段名

类型

长度

描述

tagname

varchar

64

变量名称,主键

data_value

varchar

32

数值,转换为字符串格式

data_quality

varchar

int

数据质量,0表示数据质量好,其他表示数据质量不好

data_time

varchar

24

数据值时间,格式同create_time相同

update_time

varchar

24

最近一次更新数据值的时间,格式:yyyy-mm-dd hh:mm:ss,非主键


示例建表SQL语句:

create table t_dbtransfer_rtdata_sample(

...

primary key(tagname)

);


对象模式实时转储数据表结构例子

缺省字段名

类型

长度

描述

objectname

varchar

32

设备/对象名称,主键

temperature

varchar

32

温度

humid

varchar

32

湿度

data_time

varchar

24

数据值时间,格式同create_time相同

data_quality

Int


数据质量,0表示数据质量好,其他表示数据质量不好

update_time

varchar

24

最近一次更新数据值的时间,格式:yyyy-mm-dd hh:mm:ss.xxx,主键


示例建表SQL语句:

create table t_dbtransfer_rtdata_sample(

...

字段名:如果t_dbtransfer_rule表未设置字段名,则字段名称为下表“缺省字段名”,否则字段名为自定义的字段名称。

设备模式下历史转储表结构

缺省字段名

类型

长度

描述

tagname

varchar

64

变量名称,主键

data_time

varchar

24

数据值本身的时间,缺省时间格式:yyyy-mm-dd hh:mm:ss.xxx

data_value

varchar

32

数值,转换为字符串格式

data_quality

int


数据质量,0表示数据质量好,其他表示数据质量不好

create_time

varchar

24

插入该条数据记录的时间,缺省时间格式:yyyy-mm-dd hh:mm:ss.xxx,主键


示例建表SQL语句:

create table t_dbtransfer_hisdata_sample(

...

primary key(tagname,update_time)

);

对象模式历史转储表结构定义

缺省字段名

类型

长度

描述

objectname

varchar

32

设备/对象名称,主键

temperature

varchar

32

温度

humid

varchar

32

湿度

data_time

varchar

24

数据值本身的时间,缺省时间格式:yyyy-mm-dd hh:mm:ss.xxx

data_quality

int


数据质量,0表示数据质量好,其他表示数据质量不好

update_time

varchar

24

插入该条数据记录的时间,缺省时间格式:yyyy-mm-dd hh:mm:ss.xxx,主键


示例建表SQL语句:

create table t_dbtransfer_hisdata_sample(

...