一种电力信息大数据的采集和存储方法
技术领域
本发明属于电力信息大数据采集存储领域。涉及一种电力信息大数据采集存储方法,解决电力信息大数据采集和存储过程的问题。
背景技术
信息技术的飞速发展以及广泛应用,使得电力生产企业、交易部门及用户使用物联网和互联网积累了大量的数据。随着数据库应用的规模、范围不断地扩大,电力管理部门及相关企业利用计算机管理事务能力的增强,产生了庞大的大规模数据集,将如此庞大的数据集采集并存储到服务器上是非常复杂的。原本很多数据采集算法在数据集规模较小时尚能取得不错的采集效果,但是针对大规模数据集,计算量太大以至于不能在可接受的时间内获得很好的结果。
电力系统是指由发电、输电、变电、配电和用电等环节共同组成的电能生产与消费系统。为实现电能的生产和供销,同时保证电网安全稳定运行,电力系统在各个环节和不同层次分别配置了相应的信息与控制系统,这些系统由各种采集传感器、监测设备、通信设备、安全保护装置、自动控制装置以及监控自动化、调度自动化系统组成,并采集、传输和存储海量数据。电力大数据是以业务趋势预测、数据价值挖掘为目标,利用数据集成管理、数据存储、数据计算、分析挖掘等方面核心关键技术,实现面向典型业务场景的模式创新及应用提升。电力大数据涉及到发电、输电、变电、配电、用电、调度各环节,是跨单位、跨专业、跨业务的数据分析与挖掘,以及数据可视化。电力大数据通过信息化服务平台,驱动电力价值链的改变,从传统的以电力生产为核心,最终落到以人为中心的根本任务上,而让数据创造价值的理念,可以推动电力从传统的高耗能、高排放、低效率的粗放式发展,转向新型的低能耗、低排放、高效率的可持续发展。
电力大数据超过了传统技术数据处理技术能力,为了获得数据中的价值,必须建立新支撑体系以进行电力大数据的管理和应用,这需要大规模并行处理的数据管理及处理能力。云计算技术能够通过网络将分散的信息资源,包括计算、存储、软件等,集中起来形成共享的资源池,并以动态按需和可度量的方式向用户提供服务,实现大规模计算的信息处理方式。云计算为大数据处理提供丰富的计算和存储资源,动态按需地分配调整,为电力大数据建设与应用提供IT资源。电力大数据的技术研究以云计算为基础,建立具有电力行业特点的电力云计算数据中心,研究适合电力大数据的价值规律、应用场景的大数据系统框架、数据分析方法是电力大数据的发展方向。电力大数据的内在价值规律体现在更大范围内的最大限度共享和创造新的价值。电力大数据的应用价值根本体现在其共享及价值外延,总的来说:电力大数据价值=数据原始应用价值+数据共享应用衍射价值。
目前具有电力大数据特征的典型业务如用电信息采集系统,电力用户基数大,每天产生的数据量庞大,导致业务系统在统计分析业务上出现了响应缓慢,用户等待时间较长的问题,基于电力大数据的交易系统产生的海量信息,使用传统的数据库已经无法完成数据的扩展和分析功能。为了更好地了解行业动态,如何有效地解决海量的网络媒体数据的采集,存储,数据量的激增导致数据检索操作速度缓慢。
发明内容
本发明的目的,就是要解决基于电力大数据的采集、存储以及分析,提高效率。
本发明的技术方案如下:
本发明对于电力相关的数据,主要电力结构化数据和非结构化数据两种情况。目前电力市场统一交易平台上的数据属于结构化数据,底层的DB数据库一般为Oracle、DB2、SQL Server、MySQL等,通过Sqoop API工具自定义数据表中的字段和属性,把结构化的数据表抽取到基于Hadoop架构的分布式数据仓库Hive中,底层为分布式文件系统HDFS,支持数据表的亿条级别记录存储扩展,基于HQL查询语言,支持部分SQL查询语言;电力非结构化的数据一般为互联网的客户端,Web、App、电力传感器等采集的网页信息,包括文本、图片、音频、视频、JSP动态数据等,通过Nutch工具定义正则表达式,把电力市场交易相关的经济指标、环境气象、社会统计、电力政策等方面的网页爬取到本地服务器,从网络客户端爬取的信息数据一般为数值、符号、文本等形式,都以文档的形式存储到基于Hadoop架构的分布式数据库HBase中。
一、电力大数据分类
1.业务层面,电力大数据大致分为三类:一是电力企业管理数据,如协同办公、财务、物资等数据;二是电网运行和设备检测、监测数据,如电网及设备运行状态数据;三是电力企业运营数据,如电力交易、用电客户、电费、电量等方面的数据。
2.时间层面,电网大数据大致分为二类:一是实时/准实时数据,主要是调度自动化系统、电网广域监测系统、用电采集、雷电监测数据、故障录波数据、微机保护、状态监测等与智能电网运行直接相关的数据,这类应用的特点是实时性较强,有些每秒都有数据传输,可靠性要求较高,与计费相关的数据对安全性有特殊要求,体现了电网系统的特点。二是非实时数据,主要指ERP、一体化平台、协同办公等企业经营管理方面的数据,这类应用的特点是没有实时要求,但有的传输量较大,具有随机性和突发性。
3.数据存储结构,电网大数据大致分为三类:一是结构化数据,可以用二维表结构来逻辑表达实现的数据,主要存储在关系数据库中,目前电网企业系统中的大部分数据是这种形式;二是半结构化数据,具有一定结构,但语义不够确定,典型的如HTML网页、邮件、档案等;三是非结构化数据,数据,杂乱无章,很难按照一个概念去进行抽取,无规律性。主要包括视频监控、图形图像处理等产生的数据,今后非结构化数据在智能电网数据中的比重将越来越大。非结构化数据不方便用数据库二维逻辑表来存储和展示的数据。
二、大数据采集处理
数据采集主要应用多源异构数据采集技术。针对电力结构化数据和非结构化数据两种情况,目前电力市场统一交易平台上的数据属于结构化数据,底层的DB数据库一般为Oracle、DB2、SQL Server、MySQL等,通过Sqoop API工具自定义数据表中的字段和属性,把结构化的数据表抽取到基于Hadoop架构的分布式数据仓库Hive中,底层为分布式文件系统HDFS,支持数据表的亿条级别(Billion)记录存储扩展,基于HQL查询语言,支持部分SQL查询语言;非结构化的数据一般为互联网的客户端(Web、App、电力传感器等)采集的网页信息,包括文本、图片、音频、视频、JSP动态数据等,通过Nutch工具定义正则表达式,把电力市场交易相关的经济指标、环境气象、社会统计、电力政策等方面的网页爬取到本地服务器,从网络客户端爬取的信息数据一般为数值、符号、文本等形式,都以文档的形式存储到基于Hadoop架构的分布式数据库HBase中。
三、数据存储管理
电力交易的结构化和非结构化的大数据经过抽取后,都以文件形式存储在分布式文件系统HDFS中。其中,结构化的大数据存储在分布式数据仓库Hive中,从网络客户端得到的非结构化数据存储在分布式数据库HBase中,以列族为组织形式,一个列族里的所有列成员都将最终存储在同一个HDFS文件中,而不同的列族有着各自对应的HDFS文件。存储在HDFS上的文档支持超大文件,它通常为数百GB、甚至数百TB大小的文件。虽然采集端本身有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作。也可以在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百兆,甚至千兆级别,对于结构化的数据来说,以行存储的方式存储在数据库表中,而对于非结构的数据,则以列存储的方式存储数据,在数据预处理过程需要统一数据存储方式,以分布式数据库作为存储的技术基础,完全能够胜任统一电力市场交易的数据存储,为下一步数据分析提供数据基础。
HDFS是一个高容错性的分布式文件系统,适合部署在廉价的机器上,能够提供高吞吐量的数据访问,适合大规模数据集上的应用。电力市场大量的非结构化数据可以存储在分布式文件系统HDFS上,供分析使用。
HDFS系统由Client、NameNode、DataNode构成。
(1)Client通过与NameNode和DataNode交互访问HDFS中的文件。提供了一个类似POSIX文件系统的接口供用户调用。
(2)NameNode是整个文件系统管理者,负载管理HDFS的目录树和相关的文件元数据信息,负责监控各个DataNode的健康状态,一旦发现DataNode挂掉,则将该DataNode移出HDFS并重新备份上面的数据,保证系统的高容错性。
(3)DataNode负责实际的数据存储,并将数据信息定期汇报给NameNode。DataNode以固定大小的block块为基本单位组织文件内容,默认情况下block大小为64M。当客户端上传一个大的文件到HDFS上时,文件会被分割成若干个block,分别存储在不同的DataNode。同时为了数据局的可靠性会将每个block写到若干个不同的DataNode上,这种文件切割后存储的过程对用户是透明的。四、数据统计与分析
数据统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。统计与分析这部分的主要特点和挑战是分析涉及的数据量大,其对系统资源,特别是I/O会有极大的占用。华中电力市场交易涉及的原始信息覆盖范围广泛,发布频度高,能够满足电力市场的需求,以此为基础开展深入、系统的分析,可以揭示市场运行状态、规律和趋势,发现市场风险,指导市场成员有策略、有效率地参与市场交易。研究构建电力市场大数据通道的关键技术,提出构建大数据统一采集存储的方案,按全国统一电力市场建设要求,实现技术支撑平台、信息服务平台、调度及财务等业务系统问数据的横纵向传输需求。
如图1所示,本发明的整体流程模型建立如下:
1、数据采集
电力市场的大数据采集流程图如图2所示。主要针对电力结构化数据和非结构化数据两种情况,目前电力市场统一交易平台上的数据属于结构化数据,底层的DB数据库一般为Oracle、DB2、SQL Server、MySQL等,通过Sqoop API工具自定义数据表中的字段和属性,把结构化的数据表抽取到基于Hadoop架构的分布式数据仓库Hive中,底层为分布式文件系统HDFS,支持数据表的亿条级别(Billion)记录存储扩展,基于HQL查询语言,支持部分SQL查询语言;华中电力非结构化的数据一般为互联网的客户端(Web、App、电力传感器等)采集的网页信息,包括文本、图片、音频、视频、JSP动态数据等,通过Nutch工具定义正则表达式,把电力市场交易相关的经济指标、环境气象、社会统计、电力政策等方面的网页爬取到本地服务器,从网络客户端爬取的信息数据一般为数值、符号、文本等形式,都以文档的形式存储到基于Hadoop架构的分布式数据库HBase中。
对电力市场大数据的非结构化数据采集,需要定义爬虫字段变量格式如下:
各字段变量的解释如下:
#Name:爬虫名称,queue是任务队列,所有的爬虫共用同一个任务队列,从中取出一个任务项进行运行,每个任务项是一个要下载网页的URL。
#Result:是一个队列,将下载的网页中包含的URL放入该队列中。
#Inittime:仅为以后扩展用。
#Downloadway:下载的网页存放路径。
#Configfile:配置文件,存放网页的URL和下载下后的路径。
#Maxnum:每个爬虫的最大下载量,当下载了一定数量的网页后,爬虫生命周期结束(dead)。
定义的爬虫字段变量一般应用于网页采集程序(Python,Perl,Java等),基于分布式MapReduce框架,采集的网页信息存储在HBase中,按照定义正则表达式抽取有用数据保存在HBase和Hive中,用于数据分析。
2、数据存储管理
电力交易的结构化和非结构化的大数据经过抽取后,都以文件形式存储在分布式文件系统HDFS中。其中,Oracle、DB2、SQL Server、MySQL等结构化的大数据存储在分布式数据仓库Hive中,从网络客户端得到的非结构化数据存储在分布式数据库HBase中,以列族为组织形式,一个列族里的所有列成员都将最终存储在同一个HDFS文件中,而不同的列族有着各自对应的HDFS文件。存储在HDFS上的文档支持超大文件,它通常为数百GB、甚至数百TB大小的文件。
HBase解决传统数据库无法解决的可伸缩性问题。它自底向上进行构建,能够简单地通过增加节点来达到线性扩展。HBase不是关系型数据库,不支持SQL。但在特定的问题空间里,它能完成传统数据库不能做的功能,即在廉价硬件构成的集群上管理超大规模的稀疏表。
3、数据分析
数据统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。
统计与分析这部分的主要特点和挑战是分析涉及的数据量大,其对系统资源,特别是I/O会有极大的占用。华中电力市场交易涉及的原始信息覆盖范围广泛,发布频度高,能够满足电力市场的需求,以此为基础开展深入、系统的分析,可以揭示市场运行状态、规律和趋势,发现市场风险,指导市场成员有策略、有效率地参与市场交易。研究构建电力市场大数据通道的关键技术,提出构建大数据统一采集存储的方案,按全国统一电力市场建设要求,实现技术支撑平台、信息服务平台、调度及财务等业务系统间数据的横纵向传输需求。
本发明的有益效果在于:本发明提出了一种电力信息大数据的采集存储方法,能够很好的解决由于电力用户基数大,信息量大,业务系统响应速度慢,用户等待耗时长的问题。同时,针对基与电力数据的的交易系统产生的海量信息,本方法比传统数据库能更好地完成数据的扩展和分析功能。并且能够采集、存储并处理海量网络媒体数据,更好地了解行业动态,在操作过程中,本方法的存储方法具有高效地查询功能,在数据量激增的同时能够快速完成检索。
附图说明
图1是本发明的整体流程示意图。
图2是本发明的数据采集流程示意图。
图3是本发明的具体实施例中华中电力市场大数据采集存储框架。
图4是本发明的具体实施例中华中电力数据转换器体系结构。
图5是本发明的具体实施例中大数据综合存储过程示意图。
图6是本发明的具体实施例中基于Hadoop和HBase的存储方案架构图。
图7是本发明的具体实施例中StoreFile的分裂过程示意图。
具体实施方式
本实例以华中电力市场的电力大数据的采集存储为例。
华中电力市场大数据采集存储框架如图3所示。
1.信息分类
华中电力市场大数据中,数据源主要分为两类:电网数据源和政府社会公共信息源。电网数据源称为内部数据源,一般为结构化数据,采用传统的数据库存储方式;政府社会公共信息源称为外部数据源,一般为非结构化数据,采用分布式数据库存储方式。
华中电力市场综合信息包括:提供华中电网电力市场中的原数据库中记录的各类原始数据(如交易计划数据、每日的电力曲线、检修计划、电煤价格等);提供在原始数据基础上经过分析技术加工后的数据(如电力电量负荷预测、阻塞情况、电力电量供需平衡、计划执行、电煤价格走势等)。
电网数据源包括交易中心掌握的信息、电网掌握的信息、电厂掌握的信息以及大用户掌握的信息。其中交易中心作为信息发布者,所掌握的信息较全面,与交易相关的数据交易中心均能获得;电厂、电网与大用户掌握的信息大部分都能够由交易中心提供,但有部分信息是他们各自掌握的私有信息(各自参与交易而获得的数据,例如报价策略);而公众掌握的信息为公开的信息(部分交易结果的公布,宏观总量数据)。
政府社会公共信息源包括政府财经、产业发展、企业经营、环境气象与宏观政策等数据。这类信息是从电网外部获得。其具体包含如下:
政府财经类:地区GDP,居民消费价格指数(CPI),生产者物价指数(PPI)。
产业发展:产业生产总值增长率,产业结构。
企业经营:盈利能力,偿债能力,发展能力。
环境气象:气温,降水,自然灾害等。
2.大数据采集处理
网页、电力生产传感器、电力仿真数据等为非结构化/半结构化的数据,使用Nutch网络爬虫,结合Python程序语言,根据电力数据结构定义统一数据表格式,即列族存储格式,定义电力数据爬虫字段,正则表达式,对非结构化(网页、XML文档、脚本等)数据进行采集抽取。
对华中电力市场大数据的非结构化数据采集,需要定义爬虫字段变量格式。
3.数据转换器
华中电力市场大数据从电力交易市场及网络上获取后,需要对其进行转化。华中电力市场的转换器以软件jar包的方式嵌入在HBase和Hive之间,基于Hadoop HDFS之上,通过MapReduce框架为华中电力市场交易统一平台提供技术支撑和大数据分析服务。
1)华中电力市场大数据转换器体系结构
数据转换器用到ETL技术,ETL中三个字母分别代表的是Extract、Transform、Load,即抽取、转换、加载。
(1)数据抽取:从源数据源系统抽取目的数据源系统需要的数据。
(2)数据转换:将从源数据源获取的数据按照业务需求,转换成目的数据源要求的形式,并对错误、不一致的数据进行清洗和加工。
(3)数据加载:将转换后的数据装载到目的数据源。
ETL原本是作为构建数据仓库的一个环节,负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。现在也越来越多地将ETL应用于一般信息系统中数据的迁移、交换和同步。华中电力市场大数据的数据转换器体系结构如图4所示。
4.华中电力市场大数据存储架构
由于HBase底层数据都是以Bytes数组来存储,电力市场大数据非结构化的对象可以较为容易的转化为Bytes数组存入HBase数据库。而对于电力市场交易大数据结构化的数据也可通过转化为Bytes数组进行存储。电力市场大数据的综合存储过程如图5所示。
基于Hadoop和HBase的华中电网大数据综合存储方案架构如图6所示。Zookeeper作为集群协调工具,在其中存储了ROOT表的地址和Master的地址,Region Server也会注册到Zookeeper中,使得Master可随时感知到各Region Server的健康状态。Client包含着访问HBase的接口并且维护着一些cache来加快对HBase的访问,如Region的位置信息等。Master负责Region Server的负载均衡,为Region Server分配Region;并且能够发现失效的Region Server并重新分配其上的Region。Region Server维护Master分配给它的Region,处理对这些Region的I/O请求,负责切分在运行过程中变得过大的Region。
2)华中电力市场大数据HBase存储服务
作为HBase的存储核心部分,Store由内存存储区域(MemStore)和存储在HDFS上的StoreFile两部分组成。MemStore是排序内存缓冲区(Sorted Memory Buffer),数据在存入HBase时先存入MemStore,当MemStore数据满了以后会形成一个StoreFile,而StoreFile文件数量增长到一定阈值会触发Compact合并操作,将多个StoreFile合并成一个StoreFile,合并过程中会进行版本合并和数据的删除。
随着数据的存入,会逐渐形成越来越大的StoreFile,当单个StoreFile文件的大小超过某一阈值后,会触发分裂(Split)操作,同时把当前Region分裂为2个Region,父Region会下线,新形成的2个子Region会被Master分配到相应的Region Server上,使得原有一个Region的压力得以分流到2个Region上。某一个StoreFile的分裂过程如图7所示。
在每一个Region Server中都有一个实现预写日志(WAL)的对象HLog,在数据存入MemStore的同时会写一份数据到HLog中,HLog文件会定期删除已持久化到StoreFile中的数据对应的旧文件并滚动出新的文件。当Region Server意外终止后,Master则通过HLog完成不同Region的Log数据的拆分、重新分配,最终完成数据的恢复。
HDFS适用于大文件的存储但并不是一个通用的文件系统,不能够提供文件单条记录的快速查询。而HBase建立在HDFS之上并且能够提供对大数据表的快速查询。HBase将数据存储在分布式文件系统HDFS的索引StoreFiles上,以便高速查询。