首页> 中国专利> 电网调度EMS数据的自动补缺方法

电网调度EMS数据的自动补缺方法

摘要

本发明提供了一种电网调度EMS数据的自动补缺方法,包括:使用ETL调度器从源头读取文件并调用ETL工具将电网调度EMS数据存入数据库的目标数据表内;编写丢点文件检查程序,检查目标数据表内的电网调度EMS数据是否有丢点,如果有,将丢点数据对应的丢点文件名的统计结果保存在丢点统计表中;编写丢点文件补缺程序,从丢点统计表获取丢点文件名,将丢点文件名反馈给ETL调度器,ETL调度器读取丢点文件名,从源头重新读取丢点文件并调用ETL工具将丢点文件补缺到目标数据表内。本发明可以查询到数据库中电网调度EMS数据的丢点文件,并自动将丢点文件补缺到数据库中,从而提高了数据的完整性和及时性。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-06

    实质审查的生效 IPC(主分类):G06Q10/06 专利申请号:2022107753162 申请日:20220701

    实质审查的生效

说明书

技术领域

本发明涉及企业数据质量领域,尤其是涉及一种电网调度EMS数据的自动补缺方法。

背景技术

电网企业是数据密集型企业,电网调度又是电网企业的核心部门,其日常使用的EMS系统(能量管理系统)是电网调度非常重要的一套生产系统,该系统数据是以秒级为单位实时反映电网的运行状态。为保存EMS实时数据以进行后续分析应用,调控中心以1分钟为时间断面,从EMS实时库中读取实时的电网数据并抛出成文件,并将该文件数据集成进下游的大数据中心。EMS系统每分钟抛出的文件有20多个,全天累计抛出3万多个文件。这些EMS数据对于分析电网运行状态、实时预警等都有非常重要的用途,是企业非常重要的数据资产之一。

在将EMS数据保存进大数据中心的数据库时,首先会遇到的问题是数据完整性,在网络、磁盘、数据库和ETL工具等数据接入过程中涉及到的任何软硬件发生故障时,都可能造成文件入库失败,从而造成数据内容不完整。由于EMS文件每分钟都有20多个,且7*24小时都会抛出,虽然单个文件入库失败的概率比较小,但乘以文件数量,导致经常会发生文件入库(存入数据库)失败的现象。除数据完整性问题外,另一个文件就是文件入库不及时,在数据入库正常时,一般2分钟之内就可完成从EMS抛出到最终数据入库,而一旦系统发生故障,就可能出现较长时间内的数据入库延时甚至不入库,如果由人工发现数据缺失并补缺,数据最终入库距离文件抛出已过去一段时间,数据及时性很难保证。

发明内容

本发明的目的在于提供一种电网调度EMS数据的自动补缺方法,可以查询到数据库目标表中的电网调度EMS数据的丢点文件,并自动将丢点文件补缺到数据库中。

为了达到上述目的,本发明提供了一种电网调度EMS数据的自动补缺方法,包括:

使用ETL调度器从源头读取文件并调用ETL工具将电网调度EMS数据存入数据库的目标数据表内;

编写丢点文件检查程序,检查所述目标数据表内的电网调度EMS数据是否有丢点,如果有,将丢点数据对应的丢点文件名的统计结果保存在丢点统计表中;

编写丢点文件补缺程序,从所述丢点统计表获取丢点文件名,将所述丢点文件名反馈给所述ETL调度器,所述ETL调度器读取丢点文件名,从源头重新读取丢点文件并调用ETL工具将所述丢点文件补缺到所述目标数据表内。

可选的,在所述的自动补缺方法中,使用ETL工具将电网调度EMS数据存入数据库的目标数据表的方法包括:将电网调度EMS数据文件上传至SFTP服务器。

可选的,在所述的自动补缺方法中,使用Informatica作为所述ETL工具。

可选的,在所述的自动补缺方法中,所述目标数据表包括:电网调度EMS数据的设备ID、电网调度EMS数据的时间、电网调度EMS数据的值和电网调度EMS数据存入数据库时的时间戳。

可选的,在所述的自动补缺方法中,所述电网调度EMS数据的时间具有规律性,并且每两个相邻电网调度EMS数据之间的时间差相同。

可选的,在所述的自动补缺方法中,检查所述目标数据表内的电网调度EMS数据是否有丢点的方法包括:

查询电网调度EMS数据的时间是否有缺失;以及

如果有,则找到丢失的时间所对应的电网调度EMS数据。

可选的,在所述的自动补缺方法中,所述丢点统计表的内容包括:丢点文件类型、丢点文件名和时间戳。

可选的,在所述的自动补缺方法中,所述ETL调度器从源头读取多个类型的文件,每个类型都包括一个补缺接口文件。

可选的,在所述的自动补缺方法中,所述ETL调度器根据所述丢点统计表将所述丢点文件补缺在所述目标数据表内的方法包括:

将所述丢点文件的名称传至所述补缺接口文件内,所述ETL调度器根据所述接口文件内的丢点文件名从源头读取文件,并调用所述ETL工具将所述补缺接口文件内的丢点文件的数据补缺至所述目标数据表内。

本发明还提供了一种电网调度EMS数据的自动补缺方法,设置Windows计划任务,在每隔一段特定的时间后,自动调用丢点文件检查程序和丢点文件补缺程序,以实现丢点文件的检测功能和丢点文件的补缺功能。

在本发明提供的电网调度EMS数据的自动补缺方法中,可以自动查询到数据库中电网调度EMS数据的丢点文件,并自动将丢点文件补缺到数据库中,从而,提高了数据的完整性和及时性。

附图说明

图1是本发明实施例的电网调度EMS数据的自动补缺方法的流程图;

图2是本发明实施例的丢点检测的示意图;

图3是本发明实施例的丢点文件名写入补缺接口文件的流程图;

图4是本发明实施例的电网调度EMS数据的自动补缺方法的流程图。

具体实施方式

下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。

在下文中,术语“第一”“第二”等用于在类似要素之间进行区分,且未必是用于描述特定次序或时间顺序。要理解,在适当情况下,如此使用的这些术语可替换。类似的,如果本文所述的方法包括一系列步骤,且本文所呈现的这些步骤的顺序并非必须是可执行这些步骤的唯一顺序,且一些所述的步骤可被省略和/或一些本文未描述的其他步骤可被添加到该方法。

请参照图1,本发明提供了一种电网调度EMS数据的自动补缺方法,包括:

S1:使用ETL调度器从源头读取文件并调用ETL工具将电网调度EMS数据存入数据库的目标数据表内;

S2:编写丢点文件检查程序,检查所述目标数据表内的电网调度EMS数据是否有丢点,如果有,将丢点数据对应的丢点文件名的统计结果保存在丢点统计表中(如果没有,则不需要写入丢点统计表或者写入丢点统计表为“空”,接着继续下一个数据的检查);

S3:编写丢点文件补缺程序,从所述丢点统计表获取丢点文件名,将所述丢点文件名反馈给所述ETL调度器,所述ETL调度器读取丢点文件名,从源头重新读取丢点文件并调用ETL工具将所述丢点文件补缺到所述目标数据表内。

本发明实施例中,电网调度EMS数据由EMS系统生成。大数据中心自主研发了一款ETL调度器,使用ETL调度器从源头SFTP上下载新增EMS文件,并调用ETL工具执行数据入库(存入数据库)。另外,ETL调度器还提供补缺接口文件buque.txt,步骤S3中,丢点文件补缺程序进行丢点文件补缺时,将丢点文件写入ETL调度器的补缺接口文件buque.txt中,ETL调度器每次读取源头SFTP上的文件时,先读取接口文件buque.txt中待补缺的文件名,再从SFTP上下载需补缺的文件并调用ETL程序存入数据库的目标数据表内,从而实现补缺。本发明实施例中,使用Informatica(一款商用ETL工具,全名为Informatica PowerCenter,简称Informatica)作为ETL工具,开发出ETL程序,实现读取EMS文件并存入数据库的具体功能。

进一步的,使用ETL工具将电网调度EMS存入数据库的目标数据表的方法包括:EMS系统生成数据文件并将文件放到SFTP服务器上,EMS系统每1分钟生成20多个文件,SFTP是大数据中心获取EMS文件的源头。ETL调度器的功能实现从源头SFTP服务器上读取EMS数据文件并调用ETL工具执行EMS数据入库,另外,ETL调度器还具有定时功能,本发明实施例将其定义为每10秒执行一次入库过程,即每10秒ETL调度器就会自动检查一遍SFTP服务器和补缺接口文件buque.txt,一旦发现SFTP服务器上有新文件或补缺接口文件buque.txt有需要补缺的文件,程序就会自动执行入库流程,将新增或缺失的EMS数据写入到目标数据表。

优选的,目标数据表包括:电网调度EMS数据的设备ID、电网调度EMS数据的时间、电网调度EMS数据的值和电网调度EMS数据的时间戳。具体的,如表1,表1以交流线路线端为例。

表1

从表1可以看出,运行数据主要包括4类内容,设备ID、时间、值和时间戳,其中,设备ID为:大数据中心为交流线路线端提供的设备ID;时间为:EMS系统提供这个数据时的时间,即量测值发生的时间;有功和无功为:设备的量测值;时间戳为:数据保存进目标数据表时的时间;

进一步的,电网调度EMS数据的时间具有规律性,并且每两个相邻电网调度EMS数据之间的时间差相同。本发明实施例选用的电网调度EMS数据是间隔1分钟的断面数据。在表1中,数据是1分钟断面,因此字段“T_ID”(时间)是有规律的1分钟间隔,如“2021-5-2014:33、2021-5-20 14:34、2021-5-20 14:35”,即每分钟都有值,该时间来自于EMS系统提供的文件名,如“2021-5-20 14:35”来自于EMS数据文件“Aclineend202105201435.txt”。因此,通过检查目标数据表中的“T_ID”字段的时间的缺失情况,就能发现哪些文件没能入库。

进一步的,检查目标数据表内的电网调度EMS数据是否有丢点的方法包括:查询电网调度EMS数据的时间是否有缺失;如果有,则找到丢失的时间所对应的电网调度EMS数据。具体的,请参照图2,撰写丢点检测程序,该程序生成一系列间隔1分钟的标准时间,然后将这些标准时间与目标表数据表内的时间(T_ID)进行对比,如果发现目标表数据表内的时间相对于标准时间有缺失,则将这个缺失的时间判定为丢点时间,最后将丢点时间翻译成文件名。例如,如果发现时间2021-5-20 14:34有缺失,则认为2021-5-20 14:34所对应的电网调度EMS交流线路线端数据为丢点,需要将它转换成对应的文件名,以找到对应的丢点文件,转换规则是:Aclineend年月日.txt,所以转换后的丢点文件名为Aclineend202105201434.txt,Aclineend202105201434.txt即为丢点文件。

进一步的,丢点统计表的内容包括:丢点文件类型、丢点文件名和时间戳。丢点统计表如表2。

表2

其中,丢点文件类型用于区分丢点文件所属的类型,在自动补缺时根据该行示例的内容D5000_MEAS_ACLINEEND将不同类型的丢点文件分别写入ETL调度器对应的补缺接口文件中;丢点文件时间,是丢点文件的数据的时间;丢点文件名称即丢点文件名,即需要补缺的文件名称;时间戳是丢点检查统计结果入库的时间,方便运维人员了解本次缺失信息发生的时间。

进一步的,ETL调度器从源头读取多个类型的文件,每个类型都包括一个补缺接口文件。例如,“ETL调度器”中的“补缺接口文件buque.txt”不止一个,EMS系统抛出的每种设备类型数据都有一个对应的补缺接口文件buque.txt,因此需将不同设备的丢点文件写入到对应的补缺接口文件中。因此,为了实现丢点补缺的可配置和易扩展,本发明实施例使用了丢点补缺配置表,定义了不同设备的“补缺接口文件buque.txt”位置等信息,丢点补缺配置表如表3所示:

表3

其中,FILE_TYPE为每种类型的文件都对应着一种EMS设备类型,如“D5000_MEAS_ACLINEEND”表示EMS系统中线路线端设备,通过该行示例的内容可将“丢点补缺配置表”(表3)与“丢点统计表”(表2)进行关联;FILE_LOC_NAME为“补缺接口文件buque.txt”的位置,丢点文件名将写入到该buque.txt文件中;BQ_START_DAYS和BQ_END_DAYS分别为补缺开始时间和补缺结束时间,只对开始和结束时间范围内的丢点文件进行补缺,以提高效率;IS_BQ为是否补缺的开关,方便控制是否进行自动化补缺;REMARK为对当前补缺配置信息的补充说明,如“EMS系统线端补缺配置信息”表示对配置信息的示例的补充说明,说明该配置信息是关于EMS线路线端自动补缺的配置信息。

进一步的,请参照图3,将丢点统计表反馈给ETL调度器,根据丢点配置信息将丢点统计表中的丢点文件名反馈给ETL调度器的方法包括:首先,获取配置信息,具体的,读取丢点补缺配置表(表3DDJK_EMS_BQ_CONF)中所有配置信息,要求IS_BQ为“是”,并将配置信息放入列表;接着,判断配置信息是否未读完;如果是,获取单个类型配置信息,具体的,获取当前类型的FILE_TYPE、FILE_LOC_NAME、BQ_START_DAYS和BQ_END_DAYS的信息;接着,获取丢点文件名,具体的,根据FILE_TYPE、BQ_START_DAYS和BQ_END_DAYS的信息,读取丢点统计表(表2DDJK_EMS_LOSTFILES)中符合条件的文件名,并写入数组LOST_FILES;接着,判断数组LOST_FILES是否有数据;如果是,则写入补缺接口文件,具体的,将数组LOST_FILES中的文件名,写入到FILE_LOC_NAME指定的buque.txt文件中。

本发明还提供了一种电网调度EMS数据的自动补缺方法,设置Windows计划任务,在每隔一段特定的时间后,自动调用所述丢点文件检查程序和丢点文件补缺程序,以实现丢点文件的检测功能和丢点文件的补缺功能。具体的,请参照图4,为实现自动化执行步骤S2至步骤S3,本发明使用Windows操作系统自带的“计划任务”。本发明实施例首先使用Oracle存储过程实现丢点文件检查程序的功能,其次使用Python实现丢点文件补缺程序,再使用bat文件“ems_buque.bat”将这两个功能结合在一起,调用bat文件“ems_buque.bat”时,按照图4的顺序依次执行丢点文件检查程序和丢点文件补缺程序。为实现自动调用,本发明在操作系统的“任务计划”定义一个计划,在计划中调用文件“ems_buque.bat”,从而实现定时执行补缺功能。丢点文件检查程序和丢点文件补缺程序以及调用程序一旦编写完成,对不同类型EMS数据丢点补缺的时间范围调整、是否补缺的控制只需修改丢点补缺配置表即可完成,不用修改程序。本发明将任务计划设定为30分钟执行一次,即每30分钟反馈一次当前最新的数据缺失情况,而“入库”每10秒执行一次,总体上相当于30分钟零10秒内自动进行一次补缺工作。

本发明实施例在提升数据质量和降低运维工作量上都取得了良好的效果。对于数据质量,主要在数据完整性和及时性方面进行了提升,自动补缺技术的应用,将原来的一次入库机会提升为N次,只要源头抛出正确的数据文件,可以确保数据100%存入到目标数据库,解决了数据丢点难题,提高了数据的完整性;自动补缺程序可以自主设定补缺时间频率,如本发明将补缺频率设定为30分钟/次,该时间频率可以满足目前大数据中心用户对数据的及时性需要,如果未来用户对及时性有更高的要求,可将补缺频率设定为10分钟/次、5分钟/次,而人工补缺却很难实现这么高频率的补缺,因此也提高了数据的及时性。在数据ETL运维中,将单调、重复的丢点补缺工作交给自动补缺功能,极大降低了运维人员的常规运维工作量。

综上,在本发明实施例提供的电网调度EMS数据的自动补缺方法中,可以自动查询到数据库中电网调度EMS数据的丢点文件,并自动将丢点文件的数据补缺到数据库中,从而,提高了数据的完整性和及时性。

上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号