您的当前位置:首页正文

一种基于事件驱动的公文数据采集和处理系统及其方法[发明专利]

2023-04-22 来源:东饰资讯网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 110147362 A(43)申请公布日 2019.08.20

(21)申请号 201910271964.2(22)申请日 2019.04.04

(71)申请人 中电科大数据研究院有限公司

地址 550000 贵州省贵阳市贵阳国家高新

技术产业开发区金阳科技产业园黎阳大厦(72)发明人 马新凡 王鹏 刘福强 李泽松 (74)专利代理机构 贵阳睿腾知识产权代理有限

公司 52114

代理人 谷庆红(51)Int.Cl.

G06F 16/215(2019.01)G06F 16/951(2019.01)G06F 16/9535(2019.01)

权利要求书2页 说明书5页 附图3页

CN 110147362 A(54)发明名称

一种基于事件驱动的公文数据采集和处理系统及其方法(57)摘要

本发明公开了一种基于事件驱动的公文数据采集和处理系统及其方法,属于大数据技术领域,包括:数据采集服务模块,数据清洗服务模块,数据抽取计算服务模块,数据索引服务模块,日志模块;其采集和处理方法包括:分布式数据采集方式中的分布式爬虫抓取发布在网站上的公文数据,发送给数据采集服务模块处理,在通过数据抽取计算服务模块进行抽取计算,然后通过数据索引服务模块入库存放于数据库中,日志模块记录整个采集与处理过程。本发明采用分布式爬虫进行各个公文发布网站进行抓取,有效解决海量多源异构公文数据的采集和处理时效问题。

CN 110147362 A

权 利 要 求 书

1/2页

1.一种基于事件驱动的公文数据采集和处理系统,其特征在于,包括:数据采集服务模块,用于采集多源异构的公文数据进行采集并存储,同时发出清洗指令;

数据清洗服务模块,用于接收数据采集服务模块发出的清洗指令并进行解析,判断清洗需求为增量清洗还是全量清洗,并发出计算消息体;

数据抽取计算服务模块,用于接收数据清洗服务发出的计算消息体并进行分析,对数据进行抽取计算,并给予反馈,同时发送数据索引消息体;

数据索引服务模块,用于接收数据抽取计算服务模块发出数据索引消息体并进行解析,判断是增量入库还是全量入库;

日志模块,用于记录经过上述各个模块对公文数据的采集与处理整个过程。2.根据权利要求1所述的一种基于事件驱动的公文数据采集和处理系统,其特征在于:所述数据采集服务模块采用分布式爬虫对公文数据进行采集。

3.根据权利要求1所述的一种基于事件驱动的公文数据采集和处理系统,其特征在于:所述数据采集模块在采集过程中通过公文数据的标题,URL和发布时间建立唯一索引。

4.根据权利要求1所述的一种基于事件驱动的公文数据采集和处理系统,其特征在于:所述数据采集模块在采集公文数据过程中还生成临时表Crawler TMP,用于存储增量数据。

5.根据权利要求1所述的一种基于事件驱动的公文数据采集和处理系统,其特征在于:所述计算清洗服务模块完成工作后生成临时表Clean TMP用于存储增量清洗的数据。

6.根据权利要求1所述的一种基于事件驱动的公文数据采集和处理系统,其特征在于:所述抽取计算服务模块完成之后会生成Calculate TMP将增量数据进行存储。

7.一种基于权利要求1所述基于事件驱动的公文数据采集和处理方法,其特征在于,包括以下步骤:

S1、数据采集服务模块通过分布式数据采集方式中的分布式爬虫抓取发布在网站上的公文数据,并存储分布式非结构化数据库,再通过标题、URL和发布的时间建立唯一索引,同时对已抓取过的URL进行布隆过滤器记录,并对抓取到的公文数据存储于临时表Crawler TMP中,在分布式爬虫周期性抓取事件结束之后的增加数据所在的数据库和集合消息体或者构建全量数据清洗消息体,形成清洗指令并发送;

S2、数据清洗服务模块接收步骤S1的清洗指令,对清洗指令进行解析,判断清洗需求是全量清洗还是增量清洗;清洗事件完成之后,同时发送相应的计算消息体;

S3、数据抽取计算服务模块接收步骤S2发送的计算消息体进行解析,判断抽取计算是全量计算还是增量计算,最后发送数据索引消息体;

S4、数据索引服务模块接收步骤S3中发送的数据索引服务消息体进行解析,判断是增量入库还是全量入库,存储于Elasticsearch索引数据库中;

S5、将步骤S1-S5过程产生的一系列事件以日志的形式记录存储在日志模块中。8.根据权利要求7所述的一种公文数据采集和处理方法,其特征在于,所述步骤S2中的数据清洗服务模块处理数据具体步骤为:

①、增量清洗:解析数据库和集合消息体清洗指令,触发增量数据清洗服务,增量清洗完成后,将原分布式爬虫数据所在分布式非关系形数据中的临时表Crawler TMP数据删除,同时回复分布式爬虫微服务消息已完成消费;遇到清洗出错,则不删除临时表Crawler TMP

2

CN 110147362 A

权 利 要 求 书

2/2页

中的数据,同时回复分布式爬虫重新发送清洗消息;最后将增量清洗的数据存储在临时表Clean TMP中,最后发送计算消息体给步骤S3;

②、全量清洗,解析全量数据清洗消息体清洗指令,触发全量数据清洗服务,最后把计算消息体发送给步骤S3。

9.根据权利要求8所述的一种公文数据采集和处理方法,其特征在于,所述步骤S3数据抽取计算服务模块处理数据的具体步骤为:

a、抽取计算服务模块收到一条全量抽取计算消息体后,首先对该消息进行消费,触发抽取计算:

如果抽取的字段不涉及到检索服务,则直接发送数据索引消息体,对数据进行索引入库,同时发送反馈消息给数据清洗服务模块;

如果抽取的字段涉及到检索服务,则不发送数据索引消息体,进行抽取计算,直到抽取计算完成之后再发送全量数据数据索引消息体给步骤S4;

b、抽取计算服务模块收到一条增量抽取计算消息体后,首先对该消息进行解析,获取增量数据所在的数据库和集合名称,触发抽取计算;

在抽取计算过程中如果遇到异常,则反馈给数据清洗服务重新发送抽取计算消息,抽取计算服务完成之后会将增量数据进行Calculate TMP存储,并删除步骤①中产生的Clean TMP表,最后发送增量数据索引消息体给步骤S4。

10.根据权利要求9所述的一种公文数据采集和处理方法,其特征在于,所述步骤S4数据索引服务模块中的具体服务步骤为:

A、增量入库,解析消息体中的增量数据所在数据库和集合,在原索引上进行数据插入或者更新,在完成数据索引之后,删除步骤b中产生的临时Calculate TMP。

B、全量入库,解析消息体中的全量数据清洗指令,创建新的索引,对数据进行全量索引。

3

CN 110147362 A

说 明 书

1/5页

一种基于事件驱动的公文数据采集和处理系统及其方法

技术领域

[0001]本发明属于大数据技术领域,尤其涉及一种基于事件驱动的公文数据采集和处理系统及其方法。

背景技术

[0002]21世纪中国大规模信息化,互联网带来了政府信息公开的大变革,越来越d多的政府组织把公开信息通过互联网发布,海量的公文数据如何高效的采集和处理给现有信息系统架构带来了挑战。最近几年微服务架构越来越受欢迎,其利用微小拆分的方式将原有复杂系统进行解耦,带来的业务流程的解放,这种小单元架构模式能够以比较高的配合度完成复杂功能。数据采集中,目前针对互联网数据采集具有短时量大的特点,以定时任务的方式无法及时有效对公文数据进行清洗和计算,另外大量半结构化的文本数据增加了清洗的复杂度,如何做到增量清洗和计算也是目前面临的问题。[0003]综上所述,传统的基于定时任务的数据采集和处理方式已不能满足复杂业务场景下的数据采集和处理,主要面临的问题有:[0004]1、多源异构的互联网爬虫数据具有短时量大的特点,现有采集和处理模式无法快速对数据进行采集和处理。[0005]2、数据采集场景多变,各个处理流程复杂,无法做到无等待情况下的任务执行,导致部分流程出错后,计算和清洗耗费系统资源;[0006]3、公文数据涉及到采集,清洗,抽取和训练等一系列复杂流程,针对部分数据易失效的特点,无法及时更新此对应的业务系统最新数据。发明内容

[0007]本发明的目的在于:针对上述存在的问题,本发明提供一种能够解决公文数据采集和处理中的效率问题和自动化问题的基于事件驱动的公文数据采集和处理系统及其方法。

[0008]为了实现上述目的,本发明采用如下技术方案:[0009]一种基于事件驱动的公文数据采集和处理系统,包括:[0010]数据采集服务模块,用于采集多源异构的公文数据进行采集并存储,同时发出清洗指令;

[0011]数据清洗服务模块,用于接收数据采集服务模块发出的清洗指令并进行解析,判断清洗需求为增量清洗还是全量清洗,并发出计算消息体;[0012]数据抽取计算服务模块,用于接收数据清洗服务发出的计算消息体并进行分析,对数据进行抽取计算,并给予反馈,同时发送数据索引消息体;[0013]数据索引服务模块,用于接收数据抽取计算服务模块发出数据索引消息体并进行解析,判断是增量入库还是全量入库;[0014]日志模块,用于记录经过上述各个模块对公文数据的采集与处理整个过程。

4

CN 110147362 A[0015]

说 明 书

2/5页

进一步的,所述数据采集服务模块采用分布式爬虫对公文数据进行采集。

[0016]进一步的,所述数据采集模块在采集过程中通过公文数据的标题,URL和发布时间建立唯一索引。

[0017]进一步的,所述数据采集模块在采集公文数据过程中还生成临时表Crawler TMP,用于存储增量数据。[0018]进一步的,所述计算清洗服务模块完成工作后生成临时表Clean TMP用于存储增量清洗的数据。

[0019]进一步的,所述抽取计算服务模块完成之后会生成Calculate TMP将增量数据进行存储。

[0020]一种基于事件驱动的公文数据采集和处理方法,包括以下步骤:[0021]S1、数据采集服务模块通过分布式数据采集方式中的分布式爬虫抓取发布在网站上的公文数据,并存储分布式非结构化数据库,再通过标题、URL和发布的时间建立唯一索引,同时对已抓取过的URL进行布隆过滤器记录,并对抓取到的公文数据存储于临时表Crawler TMP中,在分布式爬虫周期性抓取事件结束之后的增加数据所在的数据库和集合消息体或者构建全量数据清洗消息体,形成清洗指令并发送;采用布隆过滤器记录,布隆过滤器可以用于检索一个元素是否在一个集合中,解决大规模重复抓取带来的网络带宽消耗[0022]S2、数据清洗服务模块接收步骤S1的清洗指令,对清洗指令进行解析,判断清洗需求是全量清洗还是增量清洗;清洗事件完成之后,同时发送相应的计算消息体;[0023]S3、数据抽取计算服务模块接收步骤S2发送的计算消息体进行解析,判断抽取计算是全量计算还是增量计算,最后发送数据索引消息体;[0024]S4、数据索引服务模块接收步骤S3中发送的数据索引服务消息体进行解析,判断是增量入库还是全量入库,存储于Elasticsearch索引数据库中;[0025]S5、将步骤S1-S5过程产生的一系列事件以日志的形式记录存储在日志模块中。[0026]进一步的,所述步骤S2中的数据清洗服务模块处理数据具体步骤为:[0027]①、增量清洗:解析数据库和集合消息体清洗指令,触发增量数据清洗服务,增量清洗完成后,将原分布式爬虫数据所在分布式非关系形数据中的临时表Crawler TMP数据删除,同时回复分布式爬虫微服务消息已完成消费;遇到清洗出错,则不删除临时表Crawler TMP中的数据,同时回复分布式爬虫重新发送清洗消息;最后将增量清洗的数据存储在临时表Clean TMP中,最后发送计算消息体给步骤S3;[0028]②、全量清洗,解析全量数据清洗消息体清洗指令,触发全量数据清洗服务,最后把计算消息体发送给步骤S3;[0029]进一步的,所述步骤S3数据抽取计算服务模块处理数据的具体步骤为:[0030]a、抽取计算服务模块收到一条全量抽取计算消息体后,首先对该消息进行消费,触发抽取计算:

[0031]如果抽取的字段不涉及到检索服务,则直接发送数据索引消息体,对数据进行索引入库,同时发送反馈消息给数据清洗服务模块;[0032]如果抽取的字段涉及到检索服务,则不发送数据索引消息体,进行抽取计算,直到抽取计算完成之后再发送全量数据索引消息体给步骤S4;[0033]b、抽取计算服务模块收到一条增量抽取计算消息体后,首先对该消息进行解析,

5

CN 110147362 A

说 明 书

3/5页

获取增量数据所在的数据库和集合名称,触发抽取计算;[0034]在抽取计算过程中如果遇到异常,则反馈给数据清洗服务重新发送抽取计算消息,抽取计算服务完成之后会将增量数据进行Calculate TMP存储,并删除步骤①中产生的Clean TMP表,最后发送增量数据索引消息体给步骤S4。[0035]进一步的,所述步骤S4数据索引服务模块中的具体服务步骤为:[0036]A、增量入库,解析消息体中的增量数据所在数据库和集合,在原索引上进行数据插入或者更新,在完成数据索引之后,删除步骤b中产生的临时Calculate TMP。[0037]B、全量入库,解析消息体中的全量数据清洗指令,创建新的索引,对数据进行全量索引。

[0038]本发明的基本工作原理为:[0039]基于事件驱动,通过互联网爬虫对国内各公文发布网站进行自动抓取,通过利用分布式爬虫,采取公文中的相关字段,文本,图片和附件,利用布隆过滤器做到增量更新;通过利用分布式非结构化数据库MongoDB做到定向去重和海量存储;通过利用分布式消息,解决实时处理和计算的问题;通过利用图数据库和分布式搜索引擎,搜索和展示功能内容。[0040]本发明的有益效果在于:

[0041]1.本发明采用分布式爬虫进行各个公文发布网站进行抓取,有效解决海量多源异构公文数据的采集和处理时效问题。

[0042]2.本发明中及时的清理在文件采集与处理中生成的各种临时数据表格,解决因采集或者处理流程中因未知异常导致系统问题,服务器资源浪费,数据读脏等问题。[0043]3.本发明有效解决公文数据及时有效入库的问题。

附图说明

[0044]图1是本发明中基于事件驱动的公文数据采集和处理系统结构示意图。[0045]图2为本发明中工作流程图。[0046]图3为本发明中详细工作流程图。

具体实施方式

[0047]下面进一步描述本发明的技术方案,但要求保护的范围并不局限于所述。[0048]实施例1:[0049]如图1所示,一种基于事件驱动的公文数据采集和处理系统,包括:[0050]数据采集服务模块,用于采集多源异构的公文数据进行采集并存储,同时发出清洗指令;

[0051]数据清洗服务模块,用于接收数据采集服务模块发出的清洗指令并进行解析,判断清洗需求为增量清洗还是全量清洗,并发出计算消息体;[0052]数据抽取计算服务模块,用于接收数据清洗服务发出的计算消息体并进行分析,对数据进行抽取计算,并给予反馈,同时发送数据索引消息体;[0053]数据索引服务模块,用于接收数据抽取计算服务模块发出数据索引消息体并进行解析,判断是增量入库还是全量入库;[0054]日志模块,用于记录经过上述各个模块对公文数据的采集与处理整个过程。

6

CN 110147362 A[0055][0056]

说 明 书

4/5页

所述数据采集服务模块采用分布式爬虫对公文数据进行采集。所述数据采集模块在采集过程中通过公文数据的标题,URL和发布时间建立唯一

索引。

所述数据采集模块在采集公文数据过程中还生成临时表Crawler TMP,用于存储

增量数据。

[0058]所述计算清洗服务模块完成工作后生成临时表Clean TMP用于存储增量清洗的数据。

[0059]所述抽取计算服务模块完成之后会生成Calculate TMP将增量数据进行存储。[0060]如图2所示,一种基于事件驱动的公文数据采集和处理方法,包括以下步骤:[0061]S1、数据采集服务模块通过分布式数据采集方式中的分布式爬虫抓取发布在网站上的公文数据,并存储分布式非结构化数据库,再通过标题、URL和发布的时间建立唯一索引,同时对已抓取过的URL进行布隆过滤器记录,并对抓取到的公文数据存储于临时表Crawler TMP中,在分布式爬虫周期性抓取事件结束之后的增加数据所在的数据库和集合消息体或者构建全量数据清洗消息体,形成清洗指令并发送;采用布隆过滤器记录,布隆过滤器可以用于检索一个元素是否在一个集合中,解决大规模重复抓取带来的网络带宽消耗。

[0062]S2、数据清洗服务模块接收步骤S1的清洗指令,对清洗指令进行解析,判断清洗需求是全量清洗还是增量清洗;清洗事件完成之后,同时发送相应的计算消息体;[0063]S3、数据抽取计算服务模块接收步骤S2发送的计算消息体进行解析,判断抽取计算是全量计算还是增量计算,最后发送数据索引消息体;[0064]S4、数据索引服务模块接收步骤S3中发送的数据索引服务消息体进行解析,判断是增量入库还是全量入库,存储于Elasticsearch索引数据库中;[0065]S5、将步骤S1-S5过程产生的一系列事件以日志的形式记录存储在日志模块中。[0066]所述步骤S2中的数据清洗服务模块处理数据具体步骤为:[0067]①、增量清洗:解析数据库和集合消息体清洗指令,触发增量数据清洗服务,增量清洗完成后,将原分布式爬虫数据所在分布式非关系形数据中的临时表Crawler TMP数据删除,同时回复分布式爬虫微服务消息已完成消费;遇到清洗出错,则不删除临时表Crawler TMP中的数据,同时回复分布式爬虫重新发送清洗消息;最后将增量清洗的数据存储在临时表Clean TMP中,最后发送计算消息体给步骤S3;[0068]②、全量清洗,解析全量数据清洗消息体清洗指令,触发全量数据清洗服务,最后把计算消息体发送给步骤S3;

[0069]所述步骤S3数据抽取计算服务模块处理数据的具体步骤为:[0070]a、抽取计算服务模块收到一条全量抽取计算消息体后,首先对该消息进行消费,触发抽取计算:

[0071]如果抽取的字段不涉及到检索服务,则直接发送数据索引消息体,对数据进行索引入库,同时发送反馈消息给数据清洗服务模块;[0072]如果抽取的字段涉及到检索服务,则不发送数据索引消息体,进行抽取计算,直到抽取计算完成之后再发送全量数据索引消息体给步骤S4;[0073]b、抽取计算服务模块收到一条增量抽取计算消息体后,首先对该消息进行解析,

[0057]

7

CN 110147362 A

说 明 书

5/5页

获取增量数据所在的数据库和集合名称,触发抽取计算;[0074]在抽取计算过程中如果遇到异常,则反馈给数据清洗服务重新发送抽取计算消息,抽取计算服务完成之后会将增量数据进行Calculate TMP存储,并删除步骤①中产生的Clean TMP表,最后发送增量数据索引消息体给步骤S4。

[0075]所述步骤S4数据索引服务模块中的具体服务步骤为:[0076]A、增量入库,解析消息体中的增量数据所在数据库和集合,在原索引上进行数据插入或者更新,在完成数据索引之后,删除步骤b中产生的临时Calculate TMP。[0077]B、全量入库,解析消息体中的全量数据清洗指令,创建新的索引,对数据进行全量索引。

[0078]本实施例的工作原理为:基于事件驱动,通过互联网爬虫对国内各公文发布网站进行自动抓取,通过利用分布式爬虫,采取公文中的相关字段,文本,图片和附件,利用布隆过滤器做到增量更新;通过利用分布式非结构化数据库MongoDB做到定向去重和海量存储;通过利用分布式消息,解决实时处理和计算的问题;通过利用图数据库和分布式搜索引擎,搜索和展示功能内容。

8

CN 110147362 A

说 明 书 附 图

1/3页

图1

9

CN 110147362 A

说 明 书 附 图

2/3页

图2

10

CN 110147362 A

说 明 书 附 图

3/3页

图3

11

因篇幅问题不能全部显示,请点此查看更多更全内容