水电站工程安全监测多源数据集成技术研究

2022-03-25 07:32程学俊易广军
大众科技 2022年1期
关键词:水电站服务器智能化

程学俊 易广军 崔 冲 

水电站工程安全监测多源数据集成技术研究

程学俊1易广军2崔冲2

(1.中国华能集团有限公司,北京 100031;2.中国电建集团西北勘测设计研究院有限公司,陕西 西安 710065)

随着水电站智能化建设的深入开展,相关工程安全监测的自动化及工作性态监控成为重点工作之一,而实现工作性态监控的基础是自动化数据的集成管理与分析。文章针对水电站自动化实施中数据来源多、存储形式多样、数据结构复杂的特点,给出了三个数据集成技术方案,研究对比了优缺点和适用场景。实际工程应用证明:灵活运用三个技术能够快速满足水电站智能化建设数据集成需求,使建设工作卓有成效。

水电站;安全监测;多源数据

引言

水电是一种可再生清洁能源,是我国为优化能源结构大力开发的能源之一。为了安全高效地利用水电,水电站智能化建设日益受到重视,各种智能设备及其软件系统陆续被部署,如在水电站安全监测方面,由不同公司采用不同软硬件平台和技术标准开发的众多系统在新建或改造项目中应用。这些系统采集的数据以不同格式分散存储于不同数据库或磁盘文件中,形成了大量信息集合,独立发挥着各自的作用。然而,受制于不同系统功能局限性,难以实时共享,形成了多源、离散的监测数据资源,矗立起一个个“数据烟囱”“信息孤岛[1]”,逐渐成为水电站智能化建设的阵痛症结。

从长远发展来看,由于监测数据采集系统缺乏标准、规范的统一建模和数据结构定义,随着监测仪器设备种类的增加,相应的专用采集系统也会持续增加,如近年广泛使用的光纤光栅类仪器、柔性测斜仪、一体化气象、一体化激光位移、智能外部变形测站等,均有专用的采集系统。因此,在业务应用中,数据的跨库访问是一大难题[2]:一方面,采集系统数据库分而治之是现状,也是业务需要,统一的数据标准尚未提出,有待进行深入梳理和探索;另一方面,一体的智能化管理与应用是目前的主要发展趋势,迫切需要多源数据的集成——不仅能够实现多源数据的有效整合,满足智能化对基础数据的需求,而且兼容现有的管理模式。

1 多源数据集成概述

多源数据是指数据的结构、存取、形式不一样的多个来源的数据,这里主要研究的是监测数据采集系统的数据源,如mysql、sqlserver、oracle、access和文本文件等。多源数据集成直接面向采集系统的原始数据或成果数据,将数据源中的数据复制到统一的数据源中,满足数据共享、统一管理及分析决策的需要。

多源数据集成的关键是以统一的数据格式组织各类数据,屏蔽平台、系统、环境、表现形式带来的问题[3]。在实际的工程实践中,主要使用数据库同步、同步工具开发和服务接口开发三种方案进行集成。

2 集成方案研究与对比

2.1 数据库同步

工程安全监测数据库同步常见的业务场景包括:将源数据库表同步到目标数据库;源数据库表数据发生了增删改,目标数据库相关表增删改对应数据;异地容灾备份或双主机备份的数据库同步。

数据库产品间的数据同步普遍存在一些痛点问题,如果解决不好,会影响数据同步的整体准确性和效果,以下针对不同情况给出了相应的解决方案。

(1)相同的数据表表结构。

因源表表结构与目的表结构相同,所以仅需要掌握表字段的类型并进行类型转换,以解决类似Oracle的Number对应MySQL的数据类型的问题。同步任务开始前判断目的表是否存在,若不存在,应依据源表表结构自动在目的库创建出表,然后进行数据同步操作。提取源表的表结构,除了使用JDBC的Metadata接口外,更直接和准确的方式是查询源库的元信息表,比如对于Oracle数据库可用以下查询user_tab_columns表结构信息,将主键(包括联合主键)、数据长度、精度、刻度、“是否为null”等信息一次性提取到位。对于MySQL也类似,可以从information_schema.columns元信息表提取。同步操作可以使用数据库产品自带的函数或工具实现。

(2)不同数据表表结构。

水电站安全监测数据由于来源多,源表表结构与目的表表结构往往差异很大,因此除了要掌握表字段的类型并进行类型转换外,还要掌握表间字段的对应关系。

经综合分析,可以将对应关系封装为处理函数,在源数据库系统中创建触发器或设置定时作业计划运行处理函数,实现数据的同步。

2.2 同步工具开发

同步工具开发是基于对数据库产品的连接,通过表间字段映射关系定时实现数据的增删改操作同步,可根据需求支持access、sqlserver、mysql、oracle、db2、sybase等数据库产品。通过配置需要进行同步的数据,增加快速事务处理能力,提供百万级数据记录的同步能力,一般功能包括:

(1)不同数据库表之间数据的同步或增量同步功能;

(2)以任务(新增任务,删除任务,修改任务)执行同步操作;

(3)同步任务的调度设置(立即执行,定时,或以固定时间间隔方式执行);

(4)同步执行报告查看;

(5)支持添加、修改、删除记录、执行存储过程等操作。

同步工具一般可作为一个独立的程序或服务运行,具有通用、稳定、可配置、可扩展的良好性能。比如在可配置性能方面,可采用文本或JSON文件配置。某监测数据库的同步配置如下。

该配置项不仅明确了以测点编号对应关系同步数据,而且对于字段间的测值转换公式、结果保留小数位数设计了配置项,能够满足大多数监测系统数据的同步需求。

2.3 服务接口开发

基于服务的多源异构数据整合的思路是:不强求物理上的集中,而是保持企业数据的分布现状,将各个系统的数据通过接口包装成服务,注册到企业服务总线,通过企业服务总线提供统一的数据服务,从而实现数据在逻辑上的整合。

企业服务总线需要进行顶层设计,对监测数据的集成有充分的设计考虑,否则在实施时容易妥协使用前两种方案的混合形式,反而增加了系统的复杂性。

2.4 方案对比

如表1所示,三个多源数据集成方案在实施前都需要明确源数据库与目标数据库的关系,深入掌握源数据的存储方式、数据表结构、字段组成和表间关系等情况,一个数据源设计一套配置方案,也可综合分析源数据库,对差别较小的多源数据设计一套通用的配置方案。在具体实施时,三个方案都可以通过“变化数据捕获CDC(Change Data Capture)”技术实现数据的抽取,提高处理效率。但是,CDC技术常用的方法如时间戳、快照、触发器在进行同步操作时都会影响源数据系统的性能。在数据实时性要求较高的集成系统中,这种影响最小的是以触发器方法为基础的数据库同步方案。这个方案仅在所关注的数据库表发生变化时才启动数据库操作,不会产生多余的查询操作。

从对源数据系统的侵入性来看,数据同步方案需要在数据库系统中添加处理程序,有时甚至要在源数据库系统中添加触发器、存储过程或作业,侵入性较强,相关供应商出于自身系统的稳定性或数据的安全性考虑,往往比较抵制该方案的实施。其它两个方案仅需要提供数据库访问权限即可实施,对源数据系统的侵入性较弱。

从集成技术难易程度和开发周期来看,由于数据库同步方案可以充分利用源数据系统的查询处理功能,所以,需要掌握的技术难度较小,开发周期短。同步工具开发方案需要开发独立的处理程序,技术难度次之,开发周期较短;服务接口开发方案需要针对不同的数据库或文件开发查询服务程序,然后发布服务供前端业务界面调用,技术难度最高。

从推广应用角度来看,数据库同步方案在部署时需要将程序分类嵌入源数据库系统,异常调试依赖源数据库系统功能,程序源码容易被修改,版本不易控制,推广应用性不好。通用、健壮的同步工具的部署和维护比较方便,可以根据目标数据库灵活配置,运行后用户无需过多干预,能够实现自我健康检查、自动重启、异常提醒与统计分析等智能功能,推广应用性好。服务接口在推广应用时需要配备相应的前端程序。

表1 方案对比表

3 工程应用

某水电站安全监测工程采用GNSS、测量机器人、静力水准、谷幅弦线、大坝倒垂等监测系统进行自动化监测,来实现安全管理“风险识别自动化、决策管理智能化”。为提高应急响应能力,需要对各系统的采集数据进行集中统一管理。

经分析,5套采集系统用了三种数据库产品,各数据表结构均不相同,其中测量机器人、静力水准和大坝倒垂系统均用的是sqlserver;GNSS系统数据库为access;谷幅弦线系统数据库为mysql;测量机器人和大坝倒垂系统为多主键,需要联合多表查询关键数据,如表2所示。

表2 系统存储的数据库类型表

该工程分三个阶段开展了相关集成工作。

第一阶段,为了快速满足集成要求,决定采用数据库同步方式进行集成,两周内完成,其主要技术路线如下。

(1)集成数据库采用多数采集系统使用的sqlserver作为集成存储数据库。

(2)采用sqlserver的链接服务器连接各系统数据库。

链接服务器可以对 OLE DB 数据源进行分布式查询,并且可以联接来自多个数据源的表进行查询。

在查询编辑器中,输入以下 Transact-SQL 命令链接到实例:

//建立与GNSS系统的access数据库链接

EXEC sp_addlinkedserver --添加链接服务器

@server = N'MYA', --链接服务器名称

@provider=N'Microsoft.ACE.OLEDB.16.0', --源数据库提供程序为Access

@datasrc=N'C: est.accdb' –源数据

GO

//建立与测量机器人、静力水准、大坝倒垂系统的sqlserver数据库的链接,以大坝倒垂系统为例

EXEC sp_addlinkedserver --添加链接服务器

@server = N'LSdamsafety2017', --链接服务器名称

@provider=N'SQLNCLI', --源数据库提供程序为sqlserver

@datasrc=N'localhost' –源数据库服务器,可以为IP地址

GO

//建立与谷幅弦线mysql数据库的链接

EXEC sp_addlinkedserver --添加链接服务器

@server = N'LSznygfjc' , --链接服务器名称

@provider=N'MSDASQL', --源数据库提供程序为mysql

@datasrc=N'ooznygfjc', --源数据库DNS名称

@provstr=N'DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=localhost;DATABASE=znygfjc;UID=root;PORT=3306;' --源数据库库链接字符串,包括服务器地址、数据库名称、用户名、端口

(3)创建存储过程。

为每个系统创建一个存储过程,以便定时任务可执行,以大坝倒垂系统为例:

CREATE PROCEDURE FetchDataChuiXian

@dt nvarchar(max)='2021-5-1',@valueTableName varchar(max)='VALUE_112200012',

@nTotal int out,

@nAdded int out

AS

BEGIN

SET NOCOUNT ON;

declare @query nvarchar(max)='select CODE_ID,WATCH_ TIME, COMP4,COMP6 from openquery (LSdamsafety2017, '+''''+'select * from [nzxDamsafety2017].[dbo]. ['+@valueTableName+'] where WATCH_TIME>'''''+@dt+''''''')'

declare @point nvarchar(10),@epoch datetime,@MX float,@MY float

declare @id int,@num int

CREATE TABLE #Tzhineng(point nvarchar(10),epoch datetime,MX float,MY float);

INSERT INTO #Tzhineng EXEC(@query);

--测值临时表

CREATE TABLE #TobservationalDatasTemp(surveypointid int,observationaldate datetime)

INSERT INTO #TobservationalDatasTemp EXEC('select surveypointid,observationaldate from tobservationaldatas where observationaldate>''' +@dt+'''');

----定义动态游标

declare @sql nvarchar(max) = 'declare abc CURSOR for select * from #Tzhineng'

----创建动态游标

EXEC(@sql)

----打开游标

OPEN abc

set @nAdded=0

set @nTotal=0

FETCH NEXT FROM abc INTO @point,@epoch,@MX, @MY

WHILE @@fetch_status = 0

begin

--select @st_nm,@point,@epoch,@MX,@MY

--从配置表查找对应测点编号

select @id=( select id from surveypointPark where point=@point)

--查找是否已存在相同日期的记录

select @num=(select COUNT(*) from #TobservationalDatasTemp where surveypointid=@id and observationaldate=@epoch)

if @id is not null and @num=0

begin

insert into PB.TObservationalDatas(observationalDate, surveypointid,creationTime,isdeleted,F1,F2)values(@epoch,@id,GETDATE(),0,@MX,@MY)

set @nAdded=@nAdded+1

end

set @nTotal=@nTotal+1

FETCH NEXT FROM abc INTO @point,@epoch,@MX, @MY

end

----清除游标

CLOSE abc

DEALLOCATE abc

----清除临时表

DROP TABLE #Tzhineng

drop Table #TobservationalDatasTemp

END

GO

(4)定时任务。

在sqlserver管理->维护计划中新建维护计划,顺序执行为各系统创建的存储过程,即可完成数据的同步。

第二阶段,为了减少对源数据库的侵入性,开发同步工具替代数据库同步方法。各系统运行稳定后,一月内完成。主界面和配置界面的设计可见图1、图2设计,其中,主界面列出了同步任务,每个任务都可以通过设置的交互完成。

图1 同步工具主界面设计参考

图2 同步工具配置界面设计参考

第三阶段,封装接口,与已有坝群监控系统联调,提供统一的数据服务,一月内完成,如图3所示,是部分服务接口。

图3 服务接口列表示例

4 结束语

近年来,随着水利工程补短板、水利行业强监的全面落实,水电站安全监测的智能化发展步伐加快,越来越多的水电站开始进行自动化、智能化的改造,在实施过程中,不仅要谨慎处理原有系统的数据集成问题,还要统筹做好新系统的顶层设计,合理解决数据来源多、存储形式多样、数据结构复杂等问题,灵活运用三个数据集成技术方案,能够快速满足水电站智能化建设数据集成需求,使建设工作卓有成效。

[1] 冯汉夫,石爽,马琴,等. 智能化水电站建设的思考[J].水电与抽水蓄能,2010,34(6): 1-4.

[2] 张文,陈雅莉,徐小迪,等. 水利数据多库智能整合机制研究与应用[J]. 水利信息化,2018(6): 21-26.

[3] 王罡,刘敬文,李国鹏. 基于多源异构数据融合的综合管廊电力舱系统保护[J]. 电力系统保护与控制,2021,49(7): 103-109.

Research on Multi-Source Data Integration Technology for Safety Monitoring of Hydropower Station Projects

With the in-depth development of intelligent construction of hydropower station, the automation of safety monitoring and working performance monitoring of related projects have become one of the key tasks, and the basis of realizing working performance monitoring is the integrated management and analysis of automatic data. Aiming at the characteristics of multiple data sources, various storage forms, and complex data structure in the implementation of hydropower station automation, three data integration technical schemes are given, the advantages and disadvantages and applicable scenarios are studied and compared. The practical engineering application shows that the flexible application of the three technologies can quickly meet the needs of intelligent construction data integration of hydropower station and make the construction work fruitful.

hydropower station; safety monitoring; multi-source data

TV7

A

1008-1151(2022)01-0001-04

2021-11-12

程学俊(1980-),男,中国华能集团有限公司规划部基建管理处副处长,高级工程师,从事水利水电工程、新能源、清洁能源基本建设管理。

猜你喜欢
水电站服务器智能化
智能化战争多维透视
里底水电站工程
白鹤滩水电站有多“牛”?
印刷智能化,下一站……
《水电站设计》2020年总目录
通信控制服务器(CCS)维护终端的设计与实现
基于“物联网+”的智能化站所初探
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御