一种多源电力数据融合的分布式采集系统及方法技术方案

技术编号:26259433 阅读:33 留言:0更新日期:2020-11-06 17:54
本发明专利技术提出了一种多源电力数据融合的分布式采集系统及其方法,包括主节点、工作节点、规则数据库、任务队列和持久化数据库,所述主节点查询所述任务队列状态,并通过任务调度器调度采集任务给所述工作节点;所述工作节点领取采集任务并执行;所述任务队列用来存储任务列表;所述规则数据库用来保存采集规则;所述持久化数据库保存采集的数据并进行持久化。本发明专利技术所采用的分布式采集系统和方法可以实现对多个电力数据的快速采集,有效减轻云端的压力,保证海量数据的快速采集与存储,能够保证数据采集过程中的持久化,将为数据融合快速采集到更加完整可用的电力数据。

【技术实现步骤摘要】
一种多源电力数据融合的分布式采集系统及方法
本专利技术属于数据采集
,尤其涉及一种多源电力数据融合的分布式采集系统及方法。
技术介绍
电力数据融合最关键的作用在于将电力系统运行的现实情况在数字层面真实呈现,可实现从数据层面了解电力系统相关环节的实际运行情况再到深度挖掘的数据分层次应用,进而以数字化驱动电力系统精益化运营,提高对经营全貌的感知、分析和管控能力。然而随着电力物联网的发展,电力系统各个环节的数据进一步激增,呈现出数据体量大、数据类型多、数据源头多等特点,因此对于多源头海量异构数据的采集将是数据融合阶段需要解决的关键问题。传统的数据采集技术一般是通过爬虫获取数据,Scrapy是一个为了爬取网站数据、提取结构性数据而编写的应用框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片。Scrapy使用了Twisted异步网络框架来处理网络通讯,可以加快下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种数据采集需求。scrapy最大的问题就是无法实现分布式多源数据的采集,且规则定义不够灵活,代码无法复用。
技术实现思路
针对上述问题,一方面本专利技术提出了一种多源电力数据融合的分布式采集系统,包括主节点、工作节点、规则数据库、任务队列和持久化数据库,其特征在于:所述主节点查询所述任务队列状态,并通过任务调度器调度采集任务给所述工作节点;所述工作节点领取采集任务并执行;所述任务队列用来存储任务列表;所述规则数据库用来保存采集规则;所述持久化数据库保存采集的数据并进行持久化。所述任务队列包含待执行任务队列、执行中任务队列、成功任务队列和失败任务队列。所述采集规则包括采集类型、根据不同的采集类型对应的采集参数和解析规则。所述持久化数据库存储结构化数据和非结构化数据。所述结构化数据存储到MongoDB,所述非结构化数据存储到S3。所述工作节点的配置文件里面配置了主节点的服务通信地址,所述工作节点启动时会通过所述服务通信地址向主节点注册,注册的信息包括所述工作节点的通信地址、心跳间隔、任务配额。所述工作节点注册成功后会定期向主节点发送心跳,向主节点汇报自己的状态。所述主节点待所述工作节点心跳包到来时,观察所述工作节点是否还有任务分配的余地,如果所述工作节点还能接收n个任务,任务调度器从待执行任务队列中取至多n个任务分配给所述工作节点,分配成功后,主节点把该n个任务从待执行队列移到执行中队列。另一方面,本专利技术提出了一种多源电力数据融合的分布式采集方法,其由上面的一种多源电力数据融合的分布式采集系统实现,包括如下步骤:步骤1:根据不同的采集类型创建不同的采集规则,保存到规则数据库,一个采集规则创建一个采集任务;步骤2:将采集任务加入到任务队列中;步骤3:主节点查询任务队列状态,并调度采集任务给工作节点。步骤4:所述工作节点执行采集任务;步骤5:将采集的数据保持并持久化到数据库中。本专利技术的有益效果在于:本专利技术所采用的分布式采集技术可以实现对多源电力数据的快速采集,通过分布式采集的方法,将有效减轻云端的压力,保证海量数据的快速采集与存储,通过分布式采集方法能够保证数据采集过程中的持久化,本方法将为数据融合快速采集到更加完整可用的电力数据。附图说明图1是现有技术中Scrapy应用框架图;图2是本专利技术的一种多源电力数据融合的分布式采集系统框图。具体实施方式下面结合附图,对实施例作详细说明。传统的采集程序,一般主要是用来采集网页数据,且是单节点单进程的。比如常用的Scrapy应用框架,如图1所示,其主要包括了以下组件:引擎(Scrapy):用来处理整个系统的数据流处理,触发事务(框架核心)。调度器(Scheduler):用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回。可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是什么,同时去除重复的网址。下载器(Downloader):用于下载网页内容,并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)。爬虫(Spiders):爬虫是主要干活的,用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。项目管道(Pipeline):负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。下载器中间件(DownloaderMiddlewares):位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应。爬虫中间件(SpiderMiddlewares):介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出。调度中间件(SchedulerMiddewares):介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。采集程序一般通过HTTP协议获取页面数据,再利用HTML解析技术,提取需要的数据持久化到对应存储。一般一个网站对应一个采集程序,多个网站,由于规则不同,就需要写多个采集程序。单节点采集程序在网站很少且结果集小的情况下,能满足基本需求。但是在需要采集大量网站,且每个网站的结果集很大的情况下,就会严重影响采集效率,耗时很长。采集多个网站的过程中,单节点采集程序需要实现完整的数据采集流程,包括发起请求、任务调度、下载、规则解析和数据持久化。然而,一般采集不同的网站,最常见的是页面解析规则不一样,其他流程基本上都是一样的,不同的网站都需要编写完整的采集程序,繁琐且浪费时间。前面谈到,传统采集程序一般都是利用HTTP请求采集网页数据,采集种类比较单一,但在现实的生活中,数据存储的形式多种多样,比如关系数据库、时序数据库、RESTFul接口,消息队列等,如果要采集这些程序,则传统采集程序无法满足需求。本专利技术构建了一种多源电力数据融合的分布式采集系统,如图2所示,主要包括主节点(MasterNode),工作节点(WorkerNode),规则数据库,任务队列(TaskQueue),持久化数据库五个组件。根据不同的采集类型创建不同的采集规则,保存到规则数据库,添加完采集规则后就创建了一个采集任务,将采集任务加入到任务队列中,由主节点进行调度,工作节点负责执行采集任务,采集后的数据持久化到数据库中。主节点(MasterNode):主节点启动后会连接Redis查询任务队列状态,主节点维持了四个状态的任务队列:待执行任务队列、执行中任务队列、成功任务队列和失败任务队列。主节点内部有一个任务调度器,主节点等工作节点心跳包到来的时候,观察工本文档来自技高网...

【技术保护点】
1.一种多源电力数据融合的分布式采集系统,包括主节点、工作节点、规则数据库、任务队列和持久化数据库,其特征在于:所述主节点查询所述任务队列状态,并通过任务调度器调度采集任务给所述工作节点;所述工作节点领取采集任务并执行;所述任务队列用来存储任务列表;所述规则数据库用来保存采集规则;所述持久化数据库保存采集的数据并进行持久化。/n

【技术特征摘要】
1.一种多源电力数据融合的分布式采集系统,包括主节点、工作节点、规则数据库、任务队列和持久化数据库,其特征在于:所述主节点查询所述任务队列状态,并通过任务调度器调度采集任务给所述工作节点;所述工作节点领取采集任务并执行;所述任务队列用来存储任务列表;所述规则数据库用来保存采集规则;所述持久化数据库保存采集的数据并进行持久化。


2.根据权利要求1所述的一种多源电力数据融合的分布式采集系统,其特征在于:所述任务队列包含待执行任务队列、执行中任务队列、成功任务队列和失败任务队列。


3.根据权利要求1所述的一种多源电力数据融合的分布式采集系统,其特征在于:所述采集规则包括采集类型、根据不同的采集类型对应的采集参数和解析规则。


4.根据权利要求1所述的一种多源电力数据融合的分布式采集系统,其特征在于:所述持久化数据库存储结构化数据和非结构化数据。


5.根据权利要求4所述的一种多源电力数据融合的分布式采集系统,其特征在于:所述结构化数据存储到MongoDB,所述非结构化数据存储到S3。


6.根据权利要求1所述的一种多源电力数据融合的分布式采集系统,其特征在于:所述工作节点的配置文件里...

【专利技术属性】
技术研发人员:李建彬张彦朝朱昊
申请(专利权)人:华北电力大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1