基于大数据的发票数据实时聚合装置的制作方法

文档序号:14990668发布日期:2018-07-20 22:09阅读:303来源:国知局

本发明涉及金融领域,特别是涉及一种基于大数据的发票数据实时聚合装置。



背景技术:

电子发票是信息时代的产物,同普通发票一样,采用税务局统一发放的形式给商家使用,发票号码采用全国统一编码,采用统一防伪技术,分配给商家,在电子发票上附有电子税局的签名机制。

随着电子发票数量的增长,电子发票数据分析可以得出消费者消费习惯、产品销售情况等信息,如何进行电子发票数据进行分析是当前需要解决的技术问题。



技术实现要素:

本发明实施例提供一种基于大数据的发票数据实时聚合装置,能够进行电子发票数据进行分析。

本发明实施例采用如下技术方案:

一种基于大数据的发票数据实时聚合装置,包括:

数据采集模块、数据处理模块、数据聚合模块、数据维度展现模块;

所述数据采集模块采集电子发票数据处理任务,根据所述数据处理任务采集对应的目标数据;

所述数据处理模块对所述目标数据进行预处理,得到预处理数据;

所述数据聚合模块对所述预处理数据进行聚合,得到结果数据;

所述数据维度展现模块展现所述结果数据。

可选的,还包括:数据缓存模块,所述数据缓存模块将所述目标数据缓存之内存中。

可选的,还包括:结果数据存储模块,所述结果数据存储模块将所述结果数据存储至mysql数据库中。

可选的,所述数据采集模块应用flume采集所述电子发票数据处理任务。

可选的,所述数据处理模块采用spark对所述目标数据进行预处理,得到所述预处理数据。

可选的,所述数据聚合模块采用spark对所述预处理数据进行聚合,得到所述结果数据。

可选的,所述数据维度展现模块应用spring-mvc框架结合echarts展现所述结果数据。

本发明实施例的基于大数据的发票数据实时聚合装置,数据采集模块采集电子发票数据处理任务,根据数据处理任务采集对应的目标数据,数据处理模块对目标数据进行预处理,得到预处理数据,数据聚合模块对预处理数据进行聚合,得到结果数据,数据维度展现模块展现结果数据,从而实现对电子发票数据的处理分析。

附图说明

图1示意性示出了本发明一实施例的基于大数据的发票数据实时聚合装置结构示意图之一;

图2示意性示出了本发明一实施例的基于大数据的发票数据实时聚合装置结构示意图之二。

具体实施方式

以下对本发明的实施例进行详细说明,但是本发明可以由权利要求限定和覆盖的多种不同方式实施。

如图1所示,本发明实施例提供一种基于大数据的发票数据实时聚合装置,包括:数据采集模块11、数据处理模块12、数据聚合模块13、数据维度展现模块14;

数据采集模块11采集电子发票数据处理任务,根据数据处理任务采集对应的目标数据;

数据处理模块12对目标数据进行预处理,得到预处理数据;

数据聚合模块13对预处理数据进行聚合,得到结果数据;

数据维度展现模块14展现结果数据。

在一个实施例中,如图2所示,该装置还包括:数据缓存模块15,数据缓存模块将目标数据缓存之内存中。

在一个实施例中,如图2所示,该装置还包括:结果数据存储模块16,结果数据存储模块将结果数据存储至mysql数据库中。

在一个实施例中,数据采集模块11应用flume采集电子发票数据处理任务。

在一个实施例中,数据处理模块12采用spark对目标数据进行预处理,得到预处理数据。

在一个实施例中,数据聚合模块13采用spark对预处理数据进行聚合,得到结果数据。

在一个实施例中,数据维度展现模块14应用spring-mvc框架结合echarts展现结果数据。

本发明实施例中,flume主要负责数据采集模块,kafka主要负责数据缓存模块(将数据缓存在内存中)、spark负责数据预处理以及实时聚合计算、mysql负责存储结果数据,echarts负责web层的图表展示。

本发明实施例中,flume(分布式数据采集工具)中采集的数据主要来自于rabitmq(数据消息队列)消息队列中,主动去消费队列中的数据,队列中的数据包括原始数据,flume主要负责采集这些数据到kafka队列中,其中flume扮演一个kafka的生产者;kafka(分布式消息队列)在整个项目中主要负责将原始数据缓存在一个topic中,作为spark(分布式内存计算引擎)的数据源;spark作为一个最重要的消费者来消费kafka中缓存的原始数据,使用sparkstreaming(java版本)对缓存中的实时数据在基础数据的基础上做统计操作,例如,统计行业分布情况等,并且展示分布图;mysql(关系型数据库)是本项目中的存储层,其中表的设计是比较关键的部分,其中主要分主表和结果表,主键关联方便查询。echarts(图形化展示工具)为展示层,主要实时从mysql查询数据展示在页面中,包括柱状图,环形图,折线图,地图,滚动数据(数字滚动实时递增)。

本发明实施例中,数据源可以在rabitmq消息队列中,采用了一个别人的中间件使用flume将消息队列中的数据采集到我们负责缓存的kafka中,并对数据进行去重等预处理操作。

本发明实施例中对kafka(分布式消息队列)数据重复消费和数据丢失解决:记录offset,下一个groupconsumer(组内消费者)可以接着记录的offset位置继续消费。其中,offset记录方案:每次消费时更新每个topic+partition(主题分区)位置的offset在内存中,map<key,value>,key=topic+′-′+partition,value=offset,当调用关闭consumer(消费者)线程时,把上面map(一种缓存数据的k-v存储的集合)的offset数据记录到文件中。下一次启动consumer,需要读取上一次的offset信息,方法是以当前的topic+partition为key,从上次的map中去寻找offset。然后使用consumer.seek()(消费者的一个方法)方法指定到上次的offset位置。

本发明实施例应用spark消费kafka对列中的数据,并对各个指标和维度进行实时的计算聚合操作,将计算好的结果数据放置在预先设计好的mysql数据库中,利用spring-mvc框架结合echarts进行前端数据图表的展示。

本发明实施例可以实现将电子发票以图表的形式进行实时聚合计算,实时掌握发票流动、时间地域分布等,通过某些维度,对企业运营以及产品的输出带来决策引导。

如下就本发明实施例中发票数据的时间地域做详细介绍:mysql中会存储根据时间地域维度使用spark(分布式内存计算引擎)计算好的实时数据,例如:数量展示柱状图,地区分布地图,以颜色深浅为例,颜色越深表示该地区数据量越大;mysql中会存储一天中当前时刻的统计数量,展示一天中24个小时每个小时的统计,从中观察变化趋势。

本发明实施例中spark实时计算详解如下:

sparkstreaming(实时计算框架)是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是sparkcore,即将sparkstreaming的输入数据按照batchsize(如1秒)分成一段一段的数据(discretizedstream),每一段数据都转换成spark中的rdd(resilientdistributeddataset),然后将sparkstreaming中对dstream的transformation操作变为针对spark中对rdd的transformation操作,将rdd经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行叠加或者存储到外部设备(mysql)。

本发明实施例对电子发票数据进行处理,从而可以从用户的日常消费中看到用户活动的地域、时间、以及全国范围内,人们的消费习惯,为数据挖掘以及分析提供可靠的方向。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1