1. 在三区数据库中创建需要的中间表
drop table Z_RES_TERMI;
drop table Z_RES_DEV;
drop table Z_RES_LINE;
drop table Z_RES_TERMIDEV_TT;
drop table Z_RES_YK_OP;
drop table Z_RES_YX_BW;
drop table Z_RES_YX_SOE;
--终端表
create table Z_RES_TERMI
(
id BIGINT,
tname VARCHAR2(200),
Tytime DATE
);
--与上述终端相关联的设备表
create table Z_RES_DEV
(
id BIGINT,
tname VARCHAR2(200),
tid BIGINT,
type INTEGER,
LineId BIGINT
);
--线路表
create table Z_RES_LINE
(
LineId BIGINT,
tname VARCHAR2(200),
type INTEGER,
ISAuto INTEGER
);
--终端投退记录
create table Z_RES_TERMIDEV_TT
(
gtime DATE,
id BIGINT,
tname VARCHAR2(200),
src VARCHAR2(20),
value INTEGER
);
--遥控操作记录
create table Z_RES_YK_OP
(
gtime DATE,
id BIGINT,
tname VARCHAR2(200),
src VARCHAR2(20),
value INTEGER,
type INTEGER,
IsDebug INTEGER
);
--遥信变位记录
create table Z_RES_YX_BW
(
gtime DATE,
id BIGINT,
tname VARCHAR2(200),
src VARCHAR2(20),
value INTEGER,
type INTEGER
);
--遥信SOE记录
create table Z_RES_YX_SOE
(
gtime DATE,
gms INTEGER,
id BIGINT,
tname VARCHAR2(200),
src VARCHAR2(20),
value INTEGER
);
2. 初步筛选数据
将不希望导出的终端的is_unused字段置为1,则该终端(相关联设备,投退记录)均不会导出
3. 执行导出程序
执行程序:
参数为事件记录的起止时间
indicator_extract_sg 2019-07-10 2019-08-10
其中遥信变位和遥信SOE数据来源是表scada_event_yx;遥控、终端投退数据来源是表scada_event。
4. 使用第三方工具,从中间表将数据导出到文件中
D:\database\Kingbase\ES\V7\bin\isql.exe --dbname=MY_DB_NAME --host=MY_IP_ADDR --username=MY_USERNAME -WMY_PASSWORD -c "COPY Z_RES_LINE TO STDOUT with csv header" > F:/Users/MY_PATH/RES_LINE.csv
其中:
MY_DB_NAME:实际的数据库名
MY_IP_ADDR:实际的数据库服务器IP地址
MY_USERNAME:实际的用户名
MY_PASSWORD:实际的密码
MY_PATH:实际的文件存储路径
需要导出的表及对应的文件名:
Z_RES_TERMI ==> RES_TERMI.csv
Z_RES_DEV ==> RES_DEV.csv
Z_RES_LINE ==> RES_LINE.csv
Z_RES_TERMIDEV_TT ==> RES_TERMIDEV_TT.csv
Z_RES_YK_OP ==> RES_YK_OP.csv
Z_RES_YX_BW ==> RES_YX_BW.csv
Z_RES_YX_SOE ==> RES_YX_SOE.csv
如果导出的csv文件用Excel或WPS打开后不能形成表格,可以先用Notepad++,确认将csv文本文件转成UTF8编码,然后在用Excel打开。
5. 剩余的两张表(基础信息表和一般操作表),可以酌情手工填写
文件说明及样例详见内部文档。