交换生计划

2025-02-14 版权声明 我要投稿

交换生计划

交换生计划 篇1

关键词:调度大计划,服务总线,数据交换,数据校验,支持系统

0 引言

随着跨区、跨省电网的发展,特别是特高压互联电网的建设,各级电网之间联系日益紧密,跨区、跨省交易增多,在发电计划环节各级调度之间的相互影响、相互制约因素增多,目前以网省自我平衡为主的计划安排模式将不再适用于电网发展要求,调度计划要实现向多级协调、一体化协作模式转变[1-2]。为此,国家电网公司制定了国、网、省三级日前调度计划协作下的调度大计划流程,即围绕电能、电气计划两个核心业务,以安全校核为纽带,从调度计划专业中最为成熟的日前计划工作着手,打通国、网、省三级日前计划业务流程,实现国、网、省三级调度机构电能、电气计划的协调优化和安全校核量化分析[3]。调度大计划通过计划数据的高效流转与即时共享来实现上下调度计划协调运作。国、网调“自上而下”下发联络线交换计划,省、网调“自下而上”上报协同安全校核所需的计划数据,以及对上级调度机构的建议,国调汇总后下发全网数据;国、网、省调对各自管辖范围开展安全校核工作,以消除本级及上级调度管辖范围越限为目标进行校正;国、网调“自上而下”下发安全校核和计划校正结果。

调度大计划的业务流程核心是实现数据在多系统间及系统内部间的纵向与横向流转。在调度大计划一体化协作模式中,上级调度中心与下级调度中心需要在规定的时间内完成包括模型数据、计划数据、潮流结果等多类数据的即时共享[4],具有数据量大、种类繁多且涉及上下级多个调度计划系统互相访问等复杂特点,并且,下级调度机构上报的数据质量的好坏将会影响到上级调度机构后续的计划编制与安全校核计算结果,可能导致全网计算结果出现偏差或者计算不收敛情况,进而导致整个调度大计划流程失败。因此,不仅要实现数据在多系统间即时共享,还要严格保证流转数据的质量。文献[5-7]中从不同角度提出了各自系统的数据共享交换技术:文献[5]提出了电网信息全域共享的思路,但没有给出具体实现方法;文献[6]提出了地区电网内部横向系统间的数据共享方法,但无法解决纵向多系统间的大数据量共享;文献[7]给出了国、网、省多级系统的数据共享机制,但没有给出保证接入数据正确性的方法与监视手段。

华东电网作为调度大计划首个试点单位,采用了智能电网调度技术支持系统(SG-OSS)作为其技术手段来实现华东网、省两级日前计划流程,其内部的数据交换系统采用基于SG-OSS统一支撑平台的服务总线,利用跨系统远程服务调用的方式完成数据在多级调度计划系统间共享,并形成了数据传输、数据接入、数据校验、数据质量分析等一套完整的数据交换共享体系,实现了海量数据在多系统间的即时共享,满足了华东电网调度大计划生产运行的技术要求。

1 整体设计

整个数据交换系统的总体架构见图1,它整体上由三大功能模块组成,分别是基于远程服务的上下级系统间的数据交换功能、本地数据接入功能及数据质量分析功能。数据交换功能利用SG-OSS服务总线的远程数据服务调用机制完成数据在不同系统间的传输,它包括数据发布端、数据服务端和数据客户端。数据发布端对数据进行发布,数据客户端定时调用或人工触发调用数据服务端获取指定时间下某种类型数据,并根据数据类别形成符合格式要求的数据文件,存放至本地数据监视目录中。

本地数据接入功能包括数据监视与解析、数据校验、日志记录和数据入库4个部分,主要功能是完成数据文件解析入库,同时根据事先配置的数据校验规则对数据进行校验形成详细的校验日志结果。

数据质量分析利用数据挖掘技术通过不同维度统计分析数据日志内容形成数据质量量化分析结果,并通过服务的方式对外发布。数据发送方通过数据质量查询客户端远程调用数据结果服务,获取数据在远端系统的入库及质量情况,并根据数据质量结果决定是否需要修正数据及再次重新报送数据,形成了数据交换的闭环控制流程。

2 跨系统数据交换技术

多系统间的数据交换技术是整个调度大计划数据交换系统的核心。它利用远程服务调用技术完成数据在多系统间的透明传输。系统之间的相互调用如图2所示。

其通过在参与交换数据的系统中部署数据访问客户端和数据服务端来实现客户端与服务端的交叉访问,上级调度的客户端调用下级调度的服务端获取上报数据,下级调度的客户端调用上级调度的服务端获取下发数据。同时,在系统内部,通过添加本系统域名访问的方式调用即可调用本地服务端获取本地数据,进而可传送给本系统其他应用或其他相关系统,实现数据的横向传输。考虑到华东网调的调度计划系统作为中心节点需要同时与多个系统进行数据交互,为了满足负载均衡及数据并发传输要求,在华东侧并行运行多个数据访问客户端同时访问省、市调度计划系统的服务端。

2.1 服务总线

跨系统的远程数据服务访问使用了SG-OSS服务—消息双总线中的服务总线技术。服务总线是SG-OSS的各个应用间的数据传输纽带,构建了面向服务架构(SOA)的系统结构[8]。服务总线主要功能包括:①提供服务的接入和访问等基本功能;②提供服务的注册、查询、定位等管理功能;③提供基于服务总线的应用程序开发框架[9]。其结构如图3所示,包括服务管理中心、服务代理、服务提供者、服务消费者。

服务总线基本工作流程为:①服务端通过服务管理中心注册并发布服务信息;②客户端通过服务管理中心的服务查询功能获取服务基本信息;③服务总线返回服务信息;④客户端发送服务调用请求消息;⑤服务端接收请求消息;⑥服务端返回请求响应结果;⑦客户端接收响应结果对其进行解析。

对于跨系统间的服务调用请求,需要使用到服务总线代理技术,即通过系统间的代理完成服务请求和响应的传递,流程如图4所示。图中的数字含义如下:①服务请求者向本地代理发送服务请求;②本地代理向远程代理转发服务请求;③远程代理向服务提供者转发服务请求;④服务提供者向远程代理返回响应结果;⑤远程代理向本地代理转发响应结果;⑥本地代理向服务请求者转发响应结果。

2.2 服务实现

服务端根据服务总线编程规范定义了如下对外发布的服务接口:①获取指定日期下指定类型数据的更新时间;②获取自某个时间点后指定类型数据发生更新的日期;③获取指定日期指定类型的数据。

客户端与服务端的数据交换内容格式采用符合E语言格式规范的大字符串。E语言是一种适用于电力系统数据交换、存储的紧凑式数据文本格式,其存储形式类似于二维关系表。例如,2013年2月28日上海短期系统负荷预测数据E格式定义如下。

其中:Entity表示数据来源,type表示数据类型,dataTime表示数据发送时间,Entity,type,dataTime作为整个数据的头部信息,描述了数据的基本信息;〈tag〉与〈/tag〉包括的内容为数据实体;planDate表示数据日期;@开头的行为属性行;#开头的行为数据记录行。

数据客户端以后台常驻方式定时调用服务端接口来获取发生数据更新的日期和对应日期下的数据,并且记录下每次数据更新的时间。在数据服务端系统中建立了一个共享数据发布状态表,该表用于记录数据发生更新的数据日期及更新时间。服务调用流程如图5所示。

首先,当某个日期的数据需要对外共享时,由服务端系统中的数据发布客户端更改共享数据状态表中的数据日期及更新时间;其次,数据客户端以上次数据更新时间为参数调用服务端询问是否有自上次更新时间后发生数据更新的数据日期,如果有数据发生更新,则服务端返回发生更新的数据日期,客户端根据得到的数据日期再次调用服务端,获取指定日期下的相关数据;最后,客户端获取到服务端返回的符合E语言规范的大字符串后,按照数据文件规范要求生成E语言文本文件,存放到数据监视目录中由本地文件接入系统完成数据入库。

3 本地数据接入

本地数据接入主要用于对监视目录下的数据E格式文件解析入库。数据E格式文件既可由通过远程服务调用抓取数据的客户端生成,也可由任意其他横向系统生成并放到监视目录。本地数据接入采用Linux内核所提供的文件变化通知机制来监听数据文件目录,当发现监听目录下有数据文件到达时,对文件进行解析读取数据内容,调用数据校验,根据数据校验返回结果决定是否保存到本地数据库,若数据成功入库,则更新本地数据共享状态表,进而通过跨系统的数据交换服务共享到其他系统。

为提高数据接入效率,支持对数据类型进行分组,每个分组由一个对应的独立的数据接入进程来负责分组内数据处理,数据接入进程间互相独立、并列运行。数据接入主要由数据监视与解析、数据校验、数据入库、日志记录等模块组成,如图6所示。

模块间的数据流程如下:①数据文件到达文件监视目录;②数据监视对初始数据文件进行预处理生成规范化数据格式并发送给数据校验模块;③数据校验模块接收到待校验数据后,加载校验规则配置信息并启动校验引擎进行校验;④通过数据校验的数据发送给数据入库模块进行入库保存并更新数据状态表;⑤对未通过校验规则的数据由日志模块记录详细校验信息;⑥校验日志信息进入数据质量分析模块进行后续统计分析。

3.1 数据监视与解析

数据监视使用Linux内核所提供的inotify应用编程接口(API)获取指定目录下的数据文件变化状态,不再使用以往系统中通过轮询方式扫描文件目录来发现是否有文件到达的方法。inotify是一种基于文件节点的文件变化通知系统,内核与应用程序通过文件描述符传递文件状态变化,它允许应用程序监听目录的一组事件集,例如文件修改、删除、新建、打开等,当被监听的事件发生时,应用程序通过读取相应的文件描述符来获取事件信息。其主要的接口包括[10]如下几种。

1)int inotify_init(),初始化inotify。

2)int inotify_add_watch(int fd,const char*path,__u32mask),向目录添加监听事件。

3)int read(int fd,char*buf,int length),读取事件信息。

4)int inotify_rm_watch(int fd,int wd),从目录中移除监听事件。

5)int close(int fd),关闭目录监听。

数据监听发现文件到达后,立刻调用文件解析模块,文件解析模块首先对文件的格式进行检查,判断文件是否符合格式规范要求,不满足,则直接把文件移除到备份文件目录中,否则,读入文件中数据内容进行规整形成统一的数据结构体发送给数据校验模块。

3.2 数据校验

进行全网共享的数据质量直接影响本地及上级调度计划编制与安全校核结果的准确性与收敛率,为此,需对每类数据进行入库前的数据校验,只有满足要求的数据才会进入本地数据库并向上级调度机构上报,避免了坏数据在全网范围内扩散传播。不同地区数据质量好坏的判断标准与各地区经济水平、装机容量、电网规模、地理位置等情况有关,鉴于上述原因,从地区间差异、数据类型差异、历史数据分析等方面综合考虑并定义了针对每类共享数据的校验规则,构建了调度计划数据校验规则库。规则库定义了数据是否满足质量要求的判断逻辑,在不同应用场景下,从校验规则库中选择合适的校验规则,由数据校验功能在数据入库前进行数据校验。

每条校验规则定义了类型、生失效时间、应用区域、参数值、优先级、告警级别等属性。根据数据校验时涉及的数据范围,校验规则类型分为通用、单项、综合[11]3种。通用校验规则适用于所有类型数据检查,主要是一些基础性数据检查,例如文件格式、日期格式是否符合要求等。单项校验规则只针对于某一类数据进行检查,比如负荷预测的上下限、发电计划数据完整性等。综合校验规则涉及多个数据之间的相互校验,通过数据之间的相互矛盾来反映数据问题,例如在检修计划数据中发现了某台机组存在检修计划数据,同时在其发电计划数据中又发现该机组存在发电计划数据,那么这两者之间必然有一类数据存在问题。

可以设定某条校验规则在某段时间内生效且只适用某个区域的上报数据,对同样的校验规则设定不同的校验参数值来满足不同区域数据的校验要求。例如:在检查下级调度上报的负荷预测值是否在设定的上下限范围内这条校验规则时,由于各个地区的经济发展水平和电网规模的差异性,各个地区使用的负荷预测上下限校验规则中的上下限参数值需根据各地情况进行合理设置。校验规则按照其严格程度分为正常、告警、错误3个告警级别,当数据无法通过某条校验规则的校验时,如果该校验规则的告警级别为错误,数据将会被丢弃,否则,如果告警级别为告警,数据被正常入库,同时产生告警日志信息,表示数据存在问题,但问题并不严重。

对一个校验规则或一类相似校验规则在程序设计上采用单独类实现,各个校验类继承一个公共抽象基类,校验类内部接口实现了各自的校验逻辑,每个数据校验类被封装成一个个独立的动态库,动态库名称与校验规则名称之间建立了映射关系,利用C++的动态库动态加载机制,数据校验功能通过校验规则名称动态加载相应的校验动态库完成数据校验,实现了校验规则灵活配置与动态安装。数据校验内部流程如图7所示。

数据监视模块在完成数据初始检查后调用数据校验模块,数据校验模块首先对数据进行初步分析,获取数据的类型、来源、日期、数据大小等基本信息后把数据内容缓存到待校验数据队列中,之后从数据库中读取数据校验规则配置信息,按照规则的优先级顺序由数据校验引擎加载相应的校验动态库对数据进行校验。如果某条校验规则校验未通过且其对应的告警级别为错误,则停止对当前数据实施后续优先级低的校验规则的校验,进入待校验数据队列中下一数据的校验流程,而如果告警级别为告警,则校验引擎会继续执行下面的校验规则,直到遇到下一条未通过的错误级别的校验规则或所有规则都已经校验完成为止。对于综合校验规则,由于其涉及多个数据,每次实施数据校验时会判断其涉及数据是否全部到齐,如果未到齐,则校验流程退出,停止校验。

3.3 数据入库与存储

整个SG-OSS统一采用国产数据库,所有数据库操作由部署在支持主备动态切换的数据服务器上的数据服务完成。为了满足调度计划海量数据存储、访问的效率要求,在数据服务器上开辟了专用的调度计划数据访问存储服务,该服务采用独立会话模式下的数据库连接,实现了调度计划数据与其他业务数据的并行数据库操作,提高了数据访问、存储效率。为了进一步提升大数据量的入库性能,数据服务中数据存储接口采用了变量绑定技术,当对同一张表进行大量相同数据的插入、修改操作时,通过变量绑定技术可以对提交的具有相同结构而其操作数据不同的结构化查询语言(SQL)语句只解析一次形成预解析SQL缓存,避免了每条SQL的重复解析所造成的时间消耗。对随着时间不断膨胀的日、分钟级数据采用了按日或月为周期自动分表存储,分表的周期及表名根据数据量增长率及自身特点通过模板表进行定义,由数据分表任务计划功能定时执行分表操作。由于对大数据采用了分表存储机制,各个分表的数据量保持一定大小,相应的数据访问、存储效率得到了极大提升。

3.4 日志记录

在数据解析、校验、入库的过程中,产生的各类日志信息通过日志记录服务功能写入对应的日志记录表中,用于后续的数据质量分析。日志分为概要日志与详细日志。概要日志简单描述该日志的总体情况,详细日志描述了对应的概要日志的详细内容。例如:概要日志给出某数据存在超过上限值的时段,详细日志列出每个时段的对应值、限值、越限比例等信息。日志记录采用异步服务调用方式供数据检验模块访问调用,数据检验模块在发送日志请求后立刻返回继续执行,由日志服务在后台完成日志的入库操作。

4 数据质量分析

当数据在全网范围内完成共享后,数据质量分析在离线状态下利用数据挖掘技术从数据校验详细日志中发现隐藏的数据相互之间的影响关系,得到不同质量水平的数据出现的地区、时间、次数、类型的分布信息,并通过图表方式展示出各个地区上报数据质量情况,便于下级调度机构在后续的数据上报过程中调整上报数据源及策略。数据质量分析是整个数据交换系统最后一个环节,实现了数据交换的闭环流程。

数据质量分析采用了异常分析、分类分析等数据挖掘手段对生成的数据校验日志进行多角度挖掘,从时间段、区域、数据类型等多种维度下分析数据质量趋势。主要质量分析指标包括基于权重的数据质量评分、规则通过率、数据无错误天数、告警与严重错误占比、数据正常率等。基于权重的数据质量评分机制根据数据及规则的重要性程度对每类数据与校验规则设定一个分值与权重系数,按照数据是否通过校验规则进行相应分值的增减,最终得到某个地区一段时间内上报数据的质量总分。上报数据的数据校验日志及数据质量信息通过基于远程服务调用的数据结果服务对外提供调用接口,数据上报端系统通过部署在本地系统中的数据质量查询客户端远程调用数据结果服务获取数据上报结果信息。为了实现上报结果只对其发送端系统开放的要求,在服务端采用了用户身份认证和区域域名绑定的权限管理模式,对接收到的访问请求,只有满足身份授权认证且请求来源于设定的数据上报源端系统才返回对应的数据上报结果信息。

5 结语

本文介绍的基于跨系统间的远程服务调用的数据交换系统已经在华东电网调度大计划流程中投入生产运行,截至2013年5月份,华东电网厂站数为1 412个,统调发电机组(不包括小水电)台数为604台,220kV以上线路条数为3 618条,母线条数为4 362条,变压器台数为861台,每天上午与下午进行两轮日前大计划流程,各类数据格式采用96时段,华东网省间共享的发电计划、母线负荷预测、系统负荷预测、检修计划、机组调节范围、稳定断面限额、全设备计划潮流、危险点等数据,全天累计交换记录数大概为1 008万条(包括国调下发数据),每条记录占100B左右,日交换数据量合计1GB,可以在6min内实现一次全网数据传输与入库,满足了华东电网调度大计划要求的15min实现全数据共享的要求。

上一篇:党章党规基本知识测试下一篇:技术类岗位职责