首页> 中国专利> 电力规划数据采集方法、装置及智能终端

电力规划数据采集方法、装置及智能终端

摘要

本发明公开了一种电力规划数据采集方法、装置及智能终端,所述方法包括:根据预设的时间颗粒度,在电力大数据平台上获取电力内部数据;基于Scrapy框架,获取互联网中的电力外部数据,通过网络安全协议将电力外部数据迁移至内网;将电力内部数据及电力外部数据作为电力规划数据,传输至并行数据库,并将电力规划数据转换为预设类型的数据;根据docker镜像对预设类型的数据进行数据清洗和修补,得到目标电力规划数据并发送至数据仓库;根据预设数据类型与预设数据表单规则的对应关系,对目标电力规划数据进行处理,得到目标数据库表并存储至数据仓库。本发明能够实现自动化的数据采集、处理和存储,减少了人工投入,提升了采集效率,同时降低了出错率。

著录项

  • 公开/公告号CN112817958A

    专利类型发明专利

  • 公开/公告日2021-05-18

    原文格式PDF

  • 申请/专利权人 广东电网有限责任公司;

    申请/专利号CN202110210685.2

  • 申请日2021-02-25

  • 分类号G06F16/215(20190101);G06F16/28(20190101);G06F16/951(20190101);

  • 代理机构44202 广州三环专利商标代理有限公司;

  • 代理人陈旭红;吴落

  • 地址 510000 广东省广州市越秀区东风东路757号

  • 入库时间 2023-06-19 11:02:01

说明书

技术领域

本发明涉及电力数据管理技术领域,尤其涉及一种电力规划数据采集方法、装置及智能终端。

背景技术

为了供电和电力建设能够有效进行,电力公司经常需要根据实际需求开展电力规划工作,其中,电力规划数据的收集是电力规划工作中的一个重要步骤。

在电力规划前,需通过收集资料对当前现状进行诊断分析。随着信息技术的普及,电网公司日常的生产和管理,都已实现信息化,但电力规划一直未能实现信息化,一方面是因为电力规划所需的各项数据较为分散,其中与电力规划相关的内部数据主要分布在各个信息系统,如主网设备台账在主网PMS系统,配网设备台账在配网PMS系统,设备负载率等生产数据在IDP600系统,电量分配和用户信息等营销类数据在用电采集系统;而与电力规划相关的外部数据同样也分布在不同位置,如社会经济金融数据、用地数据、人口数据等存储在不同的网站或政府平台上,不能通过电网的系统获取相关数据。另一方面,由于各个系统存储的数据类型、格式、时间颗粒度均不同且存在部分缺陷,难以直接将数据收集在一起实现互连互通。因此,目前电力规划收集资料的方式是根据数据的来源、时间颗粒度以不同的采集频率、采集方式从各个系统或网站上人工收集数据,再利用Excel等办公软件对数据进行加工、分类以及修复。而这种方式的整个过程全部依靠人工完成,经常容易出现数据采集不完整的情况,不仅效率低下,且出错率高。

发明内容

本发明的目的在于提供一种电力规划数据采集方法、装置及智能终端,该方法通过大数据平台、互联网分别采集内部数据、外部数据,通过数据转换和数据清洗的方式对采集的数据进行整理,并根据电力规划数据的类型和对应的表单管理规范存储电力规划数据,能够实现数据的自动化采集、处理,无需人工采集数据,提升了数据采集效率和减少了人工投入,同时降低了数据采集的出错率。

为了克服上述现有技术中的缺陷,本发明某一实施例提供了一种电力规划数据采集方法,包括:

根据预设的时间颗粒度,在电力大数据平台上获取电力内部数据;

基于Scrapy框架,获取互联网中的电力外部数据,通过网络安全协议将所述电力外部数据迁移至内网;

将所述电力内部数据及所述电力外部数据作为电力规划数据,传输至并行数据库,并将所述电力规划数据转换为预设类型的数据;

根据docker镜像,对所述预设类型的数据进行数据清洗和修补,得到目标电力规划数据,并将所述目标电力规划数据发送至数据仓库;

根据预设数据类型与预设数据表单规则的对应关系,对所述目标电力规划数据进行处理,得到目标数据库表并存储至所述数据仓库。

作为优选地,所述根据预设的时间颗粒度,在电力大数据平台上获取电力内部数据,包括:

通过JDBC对接协议或ODBC对接协议与所述电力大数据平台对接;

根据CDC数据采集方式,按照预设的时间颗粒度采集所述电力大数据平台中的电力内部数据。

作为优选地,在所述根据CDC数据采集方式,按照预设的时间颗粒度采集所述电力大数据平台中的内部数据之后,还包括:通过kettle工具对所述电力内部数据进行抽取、转换并传输至所述并行数据库。

作为优选地,所述基于Scrapy框架,获取互联网中的电力外部数据,通过网络安全协议将所述电力外部数据迁移至内网,包括:

基于Scrapy框架生成网络爬虫,通过所述网络爬虫访问发布所述电力外部数据的网站,根据所述电力外部数据的时间颗粒度,采集所述网站发布的所述电力外部数据;

将所述电力外部数据存储至中间数据库,基于电网内部的网络安全协议,对所述中间数据库存储的所述电力外部数据进行处理,并将处理后的所述电力外部数据上传至内网服务器。

作为优选地,所述将所述电力规划数据转换为预设类型的数据,包括:

根据预设数据类型,对所述电力规划数据进行分类;

通过所述并行数据库的操作性数据层,将所述分类后的电力规划数据转换为对应的数据类型下的电力规划数据并进行存储。

作为优选地,所述预设类型的数据包括元数据、主数据以及交易数据;所述数据仓库为greenplum分布式数据库或OLAP数据库。

作为优选地,所述根据预设数据类型与预设数据表单规则的对应关系,对所述目标电力规划数据进行处理,得到目标数据库表并存储至所述数据仓库,包括:

获取所述电力规划数据的数据类型;

预设数据类型与预设数据表单规则的对应关系,获取所述电力规划数据的数据表单规则;

根据所述数据表单规则,对所述电力规划数据进行处理,得到目标数据库表并存储至所述数据仓库。

作为优选地,在所述根据预设数据类型与预设数据表单规则的对应关系,对所述目标电力规划数据进行处理,得到目标数据库表并存储至所述数据仓库之后,还包括:

根据所述电力规划数据创建数据字典,所述数据字典包括行政区划字典、产业定义字典、行业分类定义字典、节假日字典、能源构成字典、电价数据字典中的至少一种。

本发明某一实施例还提供了一种电力规划数据采集装置,包括:

电力内部数据获取单元,用于根据预设的时间颗粒度,在电力大数据平台上获取电力内部数据;

电力外部数据获取单元,用于基于Scrapy框架,获取互联网中的电力外部数据,通过网络安全协议将所述电力外部数据迁移至内网;

数据类型转换单元,用于将所述电力内部数据及所述电力外部数据作为电力规划数据,传输至并行数据库,并将所述电力规划数据转换为预设类型的数据;

数据清洗和修补单元,用于根据docker镜像,对所述预设类型的数据进行数据清洗和修补,得到目标电力规划数据,并将所述目标电力规划数据发送至数据仓库;

目标数据库表生成单元,用于根据预设数据类型与预设数据表单规则的对应关系,对所述目标电力规划数据进行处理,得到目标数据库表并存储至所述数据仓库。

本发明某一实施例还提供了一种智能终端,包括:

一个或多个处理器;

存储器,与所述处理器耦接,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上任一项所述的电力规划数据采集方法。

本发明某一实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行实现如上任一项所述的电力规划数据采集方法。

相对于现有技术,本发明至少存在如下有益效果:

本发明通过大数据平台、互联网分别采集内部数据、外部数据,通过数据转换和数据清洗的方式对采集的数据进行整理,并根据电力规划数据的类型和对应的表单管理规范存储电力规划数据,能够实现数据的自动化采集、处理,无需人工采集数据,提升了数据采集效率和减少了人工投入,可以实现能源管理常态化,及时发现能源规划中出现的新问题,以便于根据需要及时采取相应的措施。

附图说明

图1是本发明某一实施例提供的电力规划数据采集方法的流程示意图;

图2是本发明又一实施例提供的电力规划数据采集方法的流程示意图;

图3是本发明某一实施例提供的电力规划数据采集方法的步骤S06的子步骤的流程示意图;

图4是本发明某一实施例提供的电力规划数据采集装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。

应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

专业术语解释:

Scrapy:指的是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy常用于数据挖掘、监测和自动化测试。

docker:指的是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

JDBC:指的是Java数据库连接,即Java Database Connectivity,简称JDBC;是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

ODBC:指的是开放数据库连接,即Open Database Connectivity,简称ODBC,是为解决异构数据库间的数据共享而产生的,现已成为WOSA(The Windows Open SystemArchitecture(Windows开放系统体系结构))的主要部分和基于Windows环境的一种数据库访问接口标准。ODBC为异构数据库访问提供统一接口,允许应用程序以SQL为数据存取标准,存取不同DBMS管理的数据;使应用程序直接操纵DB中的数据,免除随DB的改变而改变。用ODBC可以访问各类计算机上的DB文件,甚至访问如Excel表和ASCI I数据文件这类非数据库对象。

CDC:指的是oracle在数据库级别实现的增量抽取解决方案。在一般的ETL过程中,对于增量抽取,无非是在数据上加时间戳,全记录比对,关键字段比对,日志分析抽取等几种方法,要么需要修改原表结构,要么需要大量的算法,要么借助第三方的工具实现。Oracle从9i开始引入的CDC特性,使得有机会在数据库层面上直接实现增量抽取功能,在性能方面由于和数据库引擎的直接集成,比第三方工具应该具有一定的优势。

Kettle工具:kettle工具的中文名称为水壶,是一种ETL工具,利用纯Java语言编写。

greenplum分布式数据库:是目前最快最高性价比的关系型分布式数据库,它在开源的PostgreSQL的基础上采用MPP架构(Massive Parallel Processing,海量并行处理),具有强大的大规模数据分析任务处理能力。

OLAP数据库:指的是联机分析处理OLAP(On-Line Analytical Processing)数据库,是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

第一方面:

请参阅图1,本发明某一实施例提供了一种电力规划数据采集方法,包括:

S10、根据预设的时间颗粒度,在电力大数据平台上获取电力内部数据;

需要说明的是,电力规划数据可归类为电力内部数据和电力外部数据,其中,电力内部数据可以通过电网内部的电力大数据平台上进行采集,该电力大数据平台存储的内部数据包括:各区级、市级和省级的历史负荷数据、电量数据、电源出力数据、高峰时刻数据等。

在本实施例中,预设的时间颗粒度可以根据该电力内部数据的类别设置或根据电力大数据平台的更新频率进行设置,还可以自行设置。

在本实施例中,电力大数据平台具体为百聆数据平台,通过JDBC对接协议或ODBC对接协议与电力大数据平台对接,经过对接后,根据预设的数据采集指令和预设的时间颗粒度从电力大数据平台采集相关的电力内部数据,通过在电力大数据平台上根据时间颗粒度采集内部数据的方式节省了采集时间且能够及时采集到数据。

在本实施例中,因不同的数据更新时间、更新频率不同,为了避免采集到旧数据,在通过JDBC对接协议或ODBC对接协议与电力大数据平台对接后,并利用CDC(Change DataCapture,变化数据采集)数据采集方式采集电力大数据平台中的内部数据。

其中,通过CDC技术识别电力大数据平台中预设时间段(24小时或其他时间段)内发生变化的数据,并根据数据对应的时间颗粒度进行数据采集。

在本实施例中,CDC数据采集方式包括时间戳方法、快照方法、触发器方式、日志方式中的任一种。

在本实施例中,数据库采用的是并行数据库,通过将数据存储在并行数据库中,便于内部数据的后续快速调用和处理,提高了数据的可用性。其中,该并行数据库为了充分利用各结点处理能力,采用高速网络连接,以使传输成本相对较低;在当有某结点空闲时,可将负载较大的结点的任务通过高速网传给空闲结点处理。

其中,并行数据库的中N个结点并不平等,其中,只有一个节点与用户接口,负责接受用户请求,输出处理结果,确定执行方案;而其余节点具有执行操作和彼此通信能力。

S20、基于Scrapy框架,获取互联网中的电力外部数据,通过网络安全协议将所述电力外部数据迁移至内网;

需要说明的是,电力外部数据包括省/市天气历史数据、省及地市人口数据、省及地市经济数据、用地数据、节假日数据、电价、其他地区/省/市/国家类比数据、全国及全省电力电源数据等数据。

电力外部数据存储于发布其数据的互联网内,且不同的外部数据存储的网站不同,由于部分网站存在没有数据采集接口或相关的数据访问机制,为了能够采集外部数据,本发明通过Scrapy框架的屏幕抓取功能,快速抓取互联网存储的外部数据。

进一步地,为了保证数据的准确性,在采集互联网内实时性不高的电力外部数据时,采集电力外部数据相对于其他数据准确性高的报告或规划,并将报告或规划通过电网内部网络安全协议导入内网中。

在本实施例中,利用CDC数据采集方式采集所述电力大数据平台中的内部数据的步骤之后还包括:通过kettle工具对内部数据进行抽取、转换并在传输至并行数据库。

需要说明的是,kettle工具的中文名称为水壶,是一种ETL工具,利用纯Java语言编写。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。其中,ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)。kettle支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面性能稳定,因此可以减少大量研发工作,提高研发效率。

进一步地,kettle工具在抽取内部数据后,对内部数据进行的转换操作包括数据清洗和数据转换,在数据清洗中过滤不完整的数据、错误的数据以及重复的数据,并在数据转换时进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算。具体地:

(1)不一致数据转换:这个过程是一个整合的过程,将内部数据中相同类型的数据统一,比如同一个区级的历史负荷数据在一年前的编码是XX0001,而在两年前的编码是YY0001,这样在抽取过来之后统一转换成一个编码。

(2)数据粒度的转换:电力大数据平台中一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据。一般情况下,会将内部数据按照数据仓库粒度进行聚合。

(3)商务规则的计算:不同的内部数据有不同的计算规则、不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在通过kettle工具将这些数据指标计算好了之后存储在数据仓库中,以供分析使用。

S30、将所述电力内部数据及所述电力外部数据作为电力规划数据,传输至并行数据库,并将所述电力规划数据转换为预设类型的数据;

可以理解的是,采集的电力内部数据和电力外部数据由于来源不同,使用的分类方式、命名也不同,不利于后续处理。通过预设数据类型对电力内部数据和电力外部数据进行分类,从而便于采集管理。

在本实施例中,预设数据类型包括元数据类型、主数据类型和交易数据类型。

其中,预设数据类型的定义如下:

元数据类型:用于描述数据及其环境的结构化信息,便于查找、理解、使用和管理数据,例如关于省市地区编码;

主数据类型:用于定义企业核心业务对象,如电网内部各变电站信息、专变用户信息等,与交易流水信息不同,主数据一旦被记录到数据库中,需要经常对其进行维护,从而确保其时效性和准确性。同时,主数据类型还包括关系数据类型,用以描述主数据类型之间的关系,如专变用户和变电站关系等;

交易数据类型:用于记录业务事件,描述在某一个时间点上业务系统发生的行为,如用电量数据、历史负荷数据、省市天气历史数据。

S40、根据docker镜像,对所述预设类型的数据进行数据清洗和修补,得到目标电力规划数据,并将所述目标电力规划数据发送至数据仓库;

需要说明的是,由于采集的电力规划数据可能会出现不完整、随机性、存在噪声污染以及数据不一致的脏数据,从而导致数据质量不高,无法直接进行数据处理,因此,需要对采集的数据进行数据清洗和修补。由于数据清洗和修补的应用多样,其支持的应用环境、需要的接口、运行需求往往不同,难以管理和移植,为了便于管理、移植和防止应用冲突,本发明将数据清洗应用和数据修补应用部署到docker容器中,即将这两个应用以及依赖包到一个可移植的镜像中,且容器是完全使用沙箱机制,相互之间不会有任何接口,保证了应用的正常运行。

本实施例中,在kubernetes平台上部署docker镜像,以docker镜像创建docker容器,再以docker容器部署数据清洗应用和数据修补应用,将并行数据库接入kubernetes平台,通过数据清洗应用和数据修补应用分别对电力规划数据进行数据清洗和修补,再将数据清洗和修补后的电力规划数据加载至数据仓库中。

进一步地,本实施例中数据清洗操作中的一致性处理包括:根据每个变量的合理取值范围和相互关系检测采集的电力规划数据是否符合要求,若采集的电力规划数据超出取值范围、逻辑不合理或者与其他数据相互矛盾,则确定该数据为不符合要求的数据,应对该数据进行核对和纠正。

在数据清洗时,可以通过噪声识别的方式识别电力规划数据中的噪声,并进行去噪处理;同时,数据清洗还包括清除电力规划数据中的指标分类无关的数据以及重复或错误的数据,并根据电力规划数据的指标分类对获取的数据进行重新整合,使其与该指标分类具有更高的相关性。

数据修补操作包括:识别数据属性中的缺失值,对缺失值采用删除或插补的方式进行修复;识别数据集中存在不合理的值,将该值确定为异常值,并根据实际情况对数据进行删除、插补或修正。

数据修补操作时,可通过两个量识别缺失值,其中,一个量是变量角度,即判断电力规划数据中每个变量中是否包含缺失值;另一个量是数据行角度,即判断电力规划数据的每行数据中是否包含缺失值。同时,可以使用isnull函数识别缺失值。

在本实施例中,缺失值插补的方法包括:均值/中位数/众数插补、固定值插补、邻近插补和插值法中的一种或多种组合。

其中,均值/中位数/众数插补根据缺失值对应的属性值的类型,采用属性值取值的平均值/中位数/众数进行插补;固定值插补采用常量替换缺失值;邻近值插补对带有缺失值的变量,根据已有数据和与其相关的其他变量的数据建立拟合模型来预测缺失的属性值进行插补;插值法利用已知的数据建立插值函数进行插补,该插值函数包括代表缺失值的函数遍历得到的函数值,通过求出的函数值作为近似值替代。

在本实施例中,数据仓库为greenplum分布式数据库或OLAP数据库。

需要说明的是,数据仓库为能够提供数据存储、挖掘以及查询功能的数据存储结构。

S50、根据预设数据类型与预设数据表单规则的对应关系,对所述目标电力规划数据进行处理,得到目标数据库表并存储至所述数据仓库。

在本实施例中,在根据预设数据类型对应的预设数据表单规则的对应关系对数据仓库中的电力规划数据进行处理从而生成相应的数据库表进行存储之前包括:获取电力规划数据的功能、业务,获取功能、业务对应的数据表单规则。

根据数据表单规则处理相应的电力规划数据,从而形成相应的数据库表,并将数据库表存储到数据仓库中,保证了的数据的整齐性和一致性,便于后续电力规划时对数据的使用。其中,数据仓库以列式存储的方式进行数据存储,其按照特定分布算法将多行数据的每一列存储到不同节点中。

本发明实施例通过大数据平台、互联网分别采集内部数据、外部数据,通过数据转换和数据清洗的方式对采集的数据进行整理,并根据电力规划数据的类型和对应的表单管理规范存储电力规划数据,能够实现数据的自动化采集、处理,无需人工采集数据,提升了数据采集效率和减少了人工投入,同时降低了数据采集的出错率。

在某一个示例性的实施例中,根据预设数据类型与预设数据表单规则的对应关系,对所述目标电力规划数据进行处理,得到目标数据库表的步骤为:基于标准SQL语句结合QuickLZ压缩算法或ZLIB压缩算法创建电力规划数据的大数据表;根据大数据表信息和预先输入的COPY指令,将采用QuickLZ压缩算法的大数据表进行数据导入;获取并优化SQL查询语句,对采用QuickLZ压缩算法进行压缩存储的大数据表进行数据查询。

其中,基于标准SQL语句结合QuickLZ压缩算法或ZLIB压缩算法创建大数据表,包括:启动Greenplum大规模并行处理数据库和客户端程序,并获取数据库字段和存储模式,且当进行压缩时,根据获取的标准SQL语句,选择QuickLZ压缩算法或者ZLIB压缩算法及对应的压缩等级进行压缩。

在本实施例中,可根据预先存储的电力规划数据的列表中的数据格式、地区代码以及分区信息创建大数据表。

本实施例中的电力规划数据采集方法通过分别采集电力大数据平台、互联网的电力内部数据和电力外部数据后存储到并行数据库,再对电力内部数据和电力外部数据进行分类从而转换为对应的数据类型的电力规划数据,通过数据清洗和修补的方式对采集的电力规划数据进行整理,并根据电力规划数据类型和对应的表单管理规则生成电力规划数据对应的数据库表从而进行存储在数据仓库中,从而能够根据数据的来源、时间颗粒度采取不同的数据采集方式、时间颗粒度采集对应的数据,数据采集完整、效率高,而且能够对采集的数据进行分类、转换格式、清洗和修补,并生成数据库表,实现了自动化的数据采集、处理和存储,无需人工采集数据,提升了数据采集效率,减少了人工投入以及降低了采集数据的出错率,还可以实现数据管理常态化。

为了帮助理解本发明的方案,请参阅图2,在某一个示例性的实施例中,提供的一种电力规划数据采集方法,包括以下步骤:

S01:根据预设的时间颗粒度在电力大数据平台上获取电力内部数据后存储在并行数据库中;

需要说明的是,电力规划数据可归类为电力内部数据和电力外部数据,其中,电力内部数据是在电网内部的电力大数据平台上进行存储,包括:各区级、市级和省级的历史负荷数据、电量数据、电源出力数据、高峰时刻数据等。

在本实施例中,预设的时间颗粒度可以根据该电力内部数据的类别设置或根据电力大数据平台的更新频率进行设置,还可以自行设置。

在本实施例中,电力大数据平台具体为百聆数据平台,通过JDBC对接协议或ODBC对接协议与电力大数据平台对接,经过对接后,根据预设的数据采集指令,从电力大数据平台采集相关的电力内部数据。

如表1所示,表1为电力内部数据的分类以及相应时间颗粒度表,其中,时间颗粒度根据实际情况自行设置,一点即表示采集一次。

表1电力内部数据的分类以及相应时间颗粒度表

在本实施例中,数据库采用的是并行数据库,该并行数据库为了充分利用各结点处理能力,采用高速网络连接,以使传输成本相对较低;在当有某结点空闲时,可将负载较大的结点的任务通过高速网传给空闲结点处理。

其中,并行数据库的中N个结点并不平等,其中,只有一个节点与用户接口,负责接受用户请求,输出处理结果,确定执行方案;而其余节点具有执行操作和彼此通信能力。

S02:基于Scrapy框架生成网络爬虫,通过网络爬虫访问发布电力外部数据的发布网站,根据预先获取的电力外部数据的时间颗粒度采集发布网站发布的电力外部数据;

需要说明的是,电力外部数据包括省/市天气历史数据、省及地市人口数据、省及地市经济数据、用地数据、节假日数据、电价、其他地区/省/市/国家类比数据、全国及全省电力电源数据等数据。

在本实施例中,通过获取电力外部数据的类型以及来源后,根据电力外部数据的类型和来源生成相应的网络爬虫,并根据电力外部数据的时间颗粒度采集网站发布的电力外部数据。

在一个具体的实施例中,实时性较高的电力外部数据为天气数据,通过网络爬虫技术登录天气发布网站,并控制网络爬虫以预设频率采集网站发布的天气数据。如表2所示,表2为外部数据分类和时间颗粒度表,其中,一点代表采集一次。

表2外部数据分类和时间颗粒度表

S03:将电力外部数据存储至中间数据库中,基于电网内部的网络安全协议对中间数据库存储的电力外部数据进行处理,再将处理后的电力外部数据上传至内网服务器中,再通过内网服务器将电力外部数据存储至并行数据库中。

电力外部数据存储于发布其数据的互联网内,为了保证数据的准确性,在采集互联网内实时性不高的电力外部数据完毕时,采用报告或规划导入的方式获取电力外部数据,并将电力外部数据通过电网内部网络安全协议导入内网中,存储于并行数据库中。

S04:根据预设数据类型对并行数据库中的电力内部数据和电力外部数据进行分类从而确定对应的数据类型,通过并行数据库的操作性数据层将电力内部数据和电力外部数据转换为对应的数据类型的电力规划数据后进行存储。

在本实施例中,采集的电力内部数据和电力外部数据均可以为各业务系统的数据、专业系统文档、图片、日志等非结构化/半结构化数据。当采集非结构化/半结构化数据后,通过预设的转换规则将其转换为结构化数据从而进行后续处理,从而便于采集管理。

在一个具体的实施例中,非结构化数据为某日地区总负荷有功数据汇总excel表,第一列列名为“时间”,第二列后列名均为“地区转发xx地区总负荷有功”,这类数据表为二维表,也称为非结构化数据。对这一二维表进行转换时,确定二维表中需获取的信息为时间、地区和值,再读取二维表,再根据预设的转换规则编辑SQL语句,执行SQL语句将处理后的数据插入到新建的表,从而将二维表中每个时间值对应的原列名“地区转发xx地区总负荷有功”中的数值保存至地区列下,对应的负荷有功值保存至值列下,转换完毕后,导入并行数据库的操作性数据层中。

在本实施例中,预设数据类型包括元数据类型、主数据类型和交易数据类型。

其中,预设数据类型的定义如下:

元数据类型:用于描述数据及其环境的结构化信息,便于查找、理解、使用和管理数据,例如关于省市地区编码;

主数据类型:用于定义企业核心业务对象,如电网内部各变电站信息、专变用户信息等,与交易流水信息不同,主数据一旦被记录到数据库中,需要经常对其进行维护,从而确保其时效性和准确性。同时,主数据类型还包括关系数据类型,用以描述主数据类型之间的关系,如专变用户和变电站关系等;

交易数据类型:用于记录业务事件,描述在某一个时间点上业务系统发生的行为,如用电量数据、历史负荷数据、省市天气历史数据。

S05:在kubernetes平台上部署docker镜像,以docker镜像创建docker容器,再以docker容器部署数据清洗应用和数据修补应用,将并行数据库接入所述kubernetes平台,通过数据清洗应用和数据修补应用分别对电力规划数据进行数据清洗和修补,再将数据清洗和修补后的电力规划数据加载至数据仓库中。

在本实施例中,为了实现本发明电力规划数据采集方法的高可用性,用于采集外部数据、内部数据的相关采集组件、爬虫框架、并行数据库以及kubernetes平台采用Dkron框架构建形成一个分布式,启动迅速,容错的定时任务系统。在该任务系统中设置多个节点,每个节点上均设置采集组件、爬虫框架、并行数据库以及kubernetes平台,通过这些节点并行采集和处理数据。并利用Raft协议和Serf的强大功能提供容错性、可靠性和可扩展性,同时保持简单易安装的特点。

需要说明的是,由于采集的电力规划数据可能会出现不完整、随机性、存在噪声污染以及数据不一致的脏数据,从而导致数据质量不高,无法直接进行数据处理,因此,需要对采集的数据进行数据清洗和修补。

在本实施例中,数据清洗操作中的一致性处理包括:根据每个变量的合理取值范围和相互关系检测采集的电力规划数据是否符合要求,若采集的电力规划数据超出取值范围、逻辑不合理或者与其他数据相互矛盾,则确定该数据为不符合要求的数据,应对该数据进行核对和纠正。

在数据清洗时,可以通过噪声识别的方式识别电力规划数据中的噪声,并进行去噪处理;同时,数据清洗还包括清除电力规划数据中的指标分类无关的数据以及重复或错误的数据,并根据电力规划数据的指标分类对获取的数据进行重新整合,使其与该指标分类具有更高的相关性。

数据修补操作包括:识别数据属性中的缺失值,对缺失值采用删除或插补的方式进行修复;识别数据集中存在不合理的值,将该值确定为异常值,并根据实际情况对数据进行删除、插补或修正。

数据修补操作时,可通过两个量识别缺失值,其中,一个量是变量角度,即判断电力规划数据中每个变量中是否包含缺失值;另一个量是数据行角度,即判断电力规划数据的每行数据中是否包含缺失值。同时,可以使用isnull函数识别缺失值。

在本实施例中,缺失值插补的方法包括:均值/中位数/众数插补、固定值插补、邻近插补和插值法中的一种或多种组合。

其中,均值/中位数/众数插补根据缺失值对应的属性值的类型,采用属性值取值的平均值/中位数/众数进行插补;固定值插补采用常量替换缺失值;邻近值插补对带有缺失值的变量,根据已有数据和与其相关的其他变量的数据建立拟合模型来预测缺失的属性值进行插补;插值法利用已知的数据建立插值函数进行插补,该插值函数包括代表缺失值的函数遍历得到的函数值,通过求出的函数值作为近似值替代。

在本实施例中,数据仓库为greenplum分布式数据库或OLAP数据库。

需要说明的是,数据仓库为能够提供数据存储、挖掘以及查询功能的数据存储结构。

S06:根据预设数据类型与预设数据表单规则的对应关系对电力规划数据进行处理从而生成相应的数据库表进行存储。

具体的,请参阅图3,步骤S06具体包括:

S061:获取电力规划数据的数据类型;

S062:根据预设数据类型对应的预设数据表单规则的对应关系获取电力规划数据的数据表单规则;

S063:根据数据表单规则对电力规划数据进行处理从而生成相应的数据库表;

S064:将数据库表存储至数据仓库。

在本实施例中,在根据预设数据类型对应的预设数据表单规则的对应关系对数据仓库中的电力规划数据进行处理从而生成相应的数据库表进行存储之前包括:获取电力规划数据的功能、业务,获取功能、业务对应的数据表单规则。

根据数据表单规则处理相应的电力规划数据,从而形成相应的数据库表,并将数据库表存储到数据仓库中。其中,数据仓库以列式存储的方式进行数据存储,其按照特定分布算法将多行数据的每一列存储到不同节点中。

在一个具体的实施例中,对于电力规划数据进行处理从而生成相应的数据库表的步骤为,基于标准SQL语句结合QuickLZ压缩算法或ZLIB压缩算法创建电力规划数据的大数据表;根据大数据表信息和预先输入的COPY指令,将采用QuickLZ压缩算法的大数据表进行数据导入;获取并优化SQL查询语句,对采用QuickLZ压缩算法进行压缩存储的大数据表进行数据查询。

其中,基于标准SQL语句结合QuickLZ压缩算法或ZLIB压缩算法创建大数据表,包括:启动Greenplum大规模并行处理数据库和客户端程序,并获取数据库字段和存储模式,且当进行压缩时,根据获取的标准SQL语句,选择QuickLZ压缩算法或者ZLIB压缩算法及对应的压缩等级进行压缩。

在本实施例中,可根据预先存储的电力规划数据的列表中的数据格式、地区代码以及分区信息创建大数据表。

S07:根据电力规划数据的内容创建数据字典,以便于查询电力规划数据。

在本实施例中,为了便于理解电力规划数据在业务域的具体含义,将电力规划数据的内容创建数据字典,根据电力规划数据的类别将数据字典可分为,省市区行政区划字典、产业定义字典、行业分类定义字典、节假日字典、电力构成字典和电价数据字典。

其中,省市区行政区划字典:用于定义统一的行政区划;产业定义字典:包括第一、第二、第三产业,用于按照产业划分地区电力规划数据;行业分类定义字典,用于按照行业划分行业电力规划数据;

节假日字典:用于定义节假日;电力构成字典:用于区分不同的电力生产;电价数据字典:现行电价。

上述数据字典与其定义相关的电力规划数据关联,从而通过不同定义的数据字典查询相关的电力规划数据。

在本实施例中,首先,获得数据仓库中的各电力规划数据间变化较少且共享的数据,然后将该数据的唯一标识、值或者名称等标示信息存储至数据仓库中以形成数据与标示信息之间的对应关系,从而创建数据字典,通过查询标示信息后找到对应的数据。

本实施例中的电力规划数据采集方法通过分别采集电力大数据平台、互联网的电力内部数据和电力外部数据后存储到并行数据库,再对电力内部数据和电力外部数据进行分类从而转换为对应的数据类型的电力规划数据,通过数据清洗和修补的方式对采集的电力规划数据进行整理,并根据电力规划数据类型和对应的表单管理规则生成电力规划数据对应的数据库表从而进行存储在数据仓库中,并通过创建不同定义类别的数据字典与电力规划数据相关率,以便于查新相关电力规划数据,从而能够实现自动化的数据采集、处理和存储,无需人工采集数据,提升了数据采集效率,减少了人工投入以及降低了采集数据的出错率,还可以实现数据管理常态化。

第二方面:

在某一个示例性的实施例中,还提供了一种电力规划数据采集装置,包括:

电力内部数据获取单元100,用于根据预设的时间颗粒度,在电力大数据平台上获取电力内部数据;

电力外部数据获取单元200,用于基于Scrapy框架,获取互联网中的电力外部数据,通过网络安全协议将所述电力外部数据迁移至内网;

数据类型转换单元300,用于将所述电力内部数据及所述电力外部数据作为电力规划数据,传输至并行数据库,并将所述电力规划数据转换为预设类型的数据;

数据清洗和修补单元400,用于根据docker镜像,对所述预设类型的数据进行数据清洗和修补,得到目标电力规划数据,并将所述目标电力规划数据发送至数据仓库;

目标数据库表生成单元500,用于根据预设数据类型与预设数据表单规则的对应关系,对所述目标电力规划数据进行处理,得到目标数据库表并存储至所述数据仓库。

可以理解的是,本实施例中的电力规划数据采集装置的功能单元100-500分别用于执行步骤S10-S50,具体地:

S10、根据预设的时间颗粒度,在电力大数据平台上获取电力内部数据;

需要说明的是,电力规划数据可归类为电力内部数据和电力外部数据,其中,电力内部数据可以通过电网内部的电力大数据平台上进行采集,该电力大数据平台存储的内部数据包括:各区级、市级和省级的历史负荷数据、电量数据、电源出力数据、高峰时刻数据等。

在本实施例中,预设的时间颗粒度可以根据该电力内部数据的类别设置或根据电力大数据平台的更新频率进行设置,还可以自行设置。

在本实施例中,电力大数据平台具体为百聆数据平台,通过JDBC对接协议或ODBC对接协议与电力大数据平台对接,经过对接后,根据预设的数据采集指令和预设的时间颗粒度从电力大数据平台采集相关的电力内部数据,通过在电力大数据平台上根据时间颗粒度采集内部数据的方式节省了采集时间且能够及时采集到数据。

在本实施例中,因不同的数据更新时间、更新频率不同,为了避免采集到旧数据,在通过JDBC对接协议或ODBC对接协议与电力大数据平台对接后,并利用CDC(Change DataCapture,变化数据采集)数据采集方式采集电力大数据平台中的内部数据。

其中,通过CDC技术识别电力大数据平台中预设时间段(24小时或其他时间段)内发生变化的数据,并根据数据对应的时间颗粒度进行数据采集。

在本实施例中,CDC数据采集方式包括时间戳方法、快照方法、触发器方式、日志方式中的任一种。

在本实施例中,数据库采用的是并行数据库,通过将数据存储在并行数据库中,便于内部数据的后续快速调用和处理,提高了数据的可用性。其中,该并行数据库为了充分利用各结点处理能力,采用高速网络连接,以使传输成本相对较低;在当有某结点空闲时,可将负载较大的结点的任务通过高速网传给空闲结点处理。

其中,并行数据库的中N个结点并不平等,其中,只有一个节点与用户接口,负责接受用户请求,输出处理结果,确定执行方案;而其余节点具有执行操作和彼此通信能力。

S20、基于Scrapy框架,获取互联网中的电力外部数据,通过网络安全协议将所述电力外部数据迁移至内网;

需要说明的是,电力外部数据包括省/市天气历史数据、省及地市人口数据、省及地市经济数据、用地数据、节假日数据、电价、其他地区/省/市/国家类比数据、全国及全省电力电源数据等数据。

电力外部数据存储于发布其数据的互联网内,且不同的外部数据存储的网站不同,由于部分网站存在没有数据采集接口或相关的数据访问机制,为了能够采集外部数据,本发明通过Scrapy框架的屏幕抓取功能,快速抓取互联网存储的外部数据。

进一步地,为了保证数据的准确性,在采集互联网内实时性不高的电力外部数据时,采集电力外部数据相对于其他数据准确性高的报告或规划,并将报告或规划通过电网内部网络安全协议导入内网中。

在本实施例中,利用CDC数据采集方式采集所述电力大数据平台中的内部数据的步骤之后还包括:通过kettle工具对内部数据进行抽取、转换并在传输至并行数据库。

其中,kettle工具在出去内部数据后,对内部数据进行的转换操作包括数据清洗和数据转换,在数据清洗中过滤不完整的数据、错误的数据以及重复的数据,并在数据转换时进行不一致的数据转换、数据粒度的转换,以及一些商务规则的计算。具体地:

(1)不一致数据转换:这个过程是一个整合的过程,将内部数据中相同类型的数据统一,比如同一个区级的历史负荷数据在一年前的编码是XX0001,而在两年前的编码是YY0001,这样在抽取过来之后统一转换成一个编码。

(2)数据粒度的转换:电力大数据平台中一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据。一般情况下,会将内部数据按照数据仓库粒度进行聚合。

(3)商务规则的计算:不同的内部数据有不同的计算规则、不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在通过kettle工具将这些数据指标计算好了之后存储在数据仓库中,以供分析使用。

S30、将所述电力内部数据及所述电力外部数据作为电力规划数据,传输至并行数据库,并将所述电力规划数据转换为预设类型的数据;

可以理解的是,采集的电力内部数据和电力外部数据由于来源不同,使用的分类方式、命名也不同,不利于后续处理。通过预设数据类型对电力内部数据和电力外部数据进行分类,从而便于采集管理。

在本实施例中,预设数据类型包括元数据类型、主数据类型和交易数据类型。

其中,预设数据类型的定义如下:

元数据类型:用于描述数据及其环境的结构化信息,便于查找、理解、使用和管理数据,例如关于省市地区编码;

主数据类型:用于定义企业核心业务对象,如电网内部各变电站信息、专变用户信息等,与交易流水信息不同,主数据一旦被记录到数据库中,需要经常对其进行维护,从而确保其时效性和准确性。同时,主数据类型还包括关系数据类型,用以描述主数据类型之间的关系,如专变用户和变电站关系等;

交易数据类型:用于记录业务事件,描述在某一个时间点上业务系统发生的行为,如用电量数据、历史负荷数据、省市天气历史数据。

S40、根据docker镜像,对所述预设类型的数据进行数据清洗和修补,得到目标电力规划数据,并将所述目标电力规划数据发送至数据仓库;

需要说明的是,由于采集的电力规划数据可能会出现不完整、随机性、存在噪声污染以及数据不一致的脏数据,从而导致数据质量不高,无法直接进行数据处理,因此,需要对采集的数据进行数据清洗和修补。由于数据清洗和修补的应用多样,其支持的应用环境、需要的接口、运行需求往往不同,难以管理和移植,为了便于管理、移植和防止应用冲突,本发明将数据清洗应用和数据修补应用部署到docker容器中,即将这两个应用以及依赖包到一个可移植的镜像中,且容器是完全使用沙箱机制,相互之间不会有任何接口,保证了应用的正常运行。

本实施例中,在kubernetes平台上部署docker镜像,以docker镜像创建docker容器,再以docker容器部署数据清洗应用和数据修补应用,将并行数据库接入kubernetes平台,通过数据清洗应用和数据修补应用分别对电力规划数据进行数据清洗和修补,再将数据清洗和修补后的电力规划数据加载至数据仓库中。

进一步地,本实施例中数据清洗操作中的一致性处理包括:根据每个变量的合理取值范围和相互关系检测采集的电力规划数据是否符合要求,若采集的电力规划数据超出取值范围、逻辑不合理或者与其他数据相互矛盾,则确定该数据为不符合要求的数据,应对该数据进行核对和纠正。

在数据清洗时,可以通过噪声识别的方式识别电力规划数据中的噪声,并进行去噪处理;同时,数据清洗还包括清除电力规划数据中的指标分类无关的数据以及重复或错误的数据,并根据电力规划数据的指标分类对获取的数据进行重新整合,使其与该指标分类具有更高的相关性。

数据修补操作包括:识别数据属性中的缺失值,对缺失值采用删除或插补的方式进行修复;识别数据集中存在不合理的值,将该值确定为异常值,并根据实际情况对数据进行删除、插补或修正。

数据修补操作时,可通过两个量识别缺失值,其中,一个量是变量角度,即判断电力规划数据中每个变量中是否包含缺失值;另一个量是数据行角度,即判断电力规划数据的每行数据中是否包含缺失值。同时,可以使用isnull函数识别缺失值。

在本实施例中,缺失值插补的方法包括:均值/中位数/众数插补、固定值插补、邻近插补和插值法中的一种或多种组合。

其中,均值/中位数/众数插补根据缺失值对应的属性值的类型,采用属性值取值的平均值/中位数/众数进行插补;固定值插补采用常量替换缺失值;邻近值插补对带有缺失值的变量,根据已有数据和与其相关的其他变量的数据建立拟合模型来预测缺失的属性值进行插补;插值法利用已知的数据建立插值函数进行插补,该插值函数包括代表缺失值的函数遍历得到的函数值,通过求出的函数值作为近似值替代。

在本实施例中,数据仓库为greenplum分布式数据库或OLAP数据库。

需要说明的是,数据仓库为能够提供数据存储、挖掘以及查询功能的数据存储结构。

S50、根据预设数据类型与预设数据表单规则的对应关系,对所述目标电力规划数据进行处理,得到目标数据库表并存储至所述数据仓库。

在本实施例中,在根据预设数据类型对应的预设数据表单规则的对应关系对数据仓库中的电力规划数据进行处理从而生成相应的数据库表进行存储之前包括:获取电力规划数据的功能、业务,获取功能、业务对应的数据表单规则。

根据数据表单规则处理相应的电力规划数据,从而形成相应的数据库表,并将数据库表存储到数据仓库中,保证了的数据的整齐性和一致性,便于后续电力规划时对数据的使用。其中,数据仓库以列式存储的方式进行数据存储,其按照特定分布算法将多行数据的每一列存储到不同节点中。

第三方面:

在某一个示例性的实施例中,还提供了一种智能终端,包括:一个或多个处理器;存储器,与所述处理器耦接,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上任一项实施例所述的电力规划数据采集方法。

处理器用于控制该计算机终端设备的整体操作,以完成上述的电力规划数据采集方法的全部或部分步骤。存储器用于存储各种类型的数据以支持在该计算机终端设备的操作,这些数据例如可以包括用于在该计算机终端设备上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。

计算机终端设备可以被一个或多个应用专用集成电路(ApplicationSpecific1ntegrated Circuit,简称AS1C)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行如上述任一项实施例所述的电力规划数据采集方法,并达到如上述方法一致的技术效果。

在某一个示例性的实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现如上述任一项实施例所述的电力规划数据采集方法的步骤。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以通过一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号