...
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_value | varchar(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(
...