您的当前位置:首页正文

一种基于Spark的数据实时处理可视化的方法[发明专利]

2022-03-30 来源:步旅网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 112347379 A(43)申请公布日 2021.02.09

(21)申请号 202011193233.X(22)申请日 2020.10.30

(71)申请人 银盛支付服务股份有限公司

地址 518000 广东省深圳市龙华区民治街

道新区大道997号远景家园五楼501(72)发明人 谢小威 

(74)专利代理机构 深圳市深可信专利代理有限

公司 44599

代理人 刘昌刚(51)Int.Cl.

G06F 16/9538(2019.01)G06F 16/215(2019.01)G06F 16/23(2019.01)

权利要求书1页 说明书3页 附图1页

(54)发明名称

一种基于Spark的数据实时处理可视化的方法

(57)摘要

本发明提供了一种基于Spark的数据实时处理可视化的方法,包括:Kafka实时推送Oracle中的源数据至Spark程序,Spark程序监听Kafka,并实时消费Kafka推送的数据,Spark程序将数据存入到mongoDB数据库,Websocket推送mongoDB数据库中的数据至前端界面,通过Echart框架将前端中的实时数据在客户端进行动态化的图表展示。主动推送数据解决了轮询所带来的资源浪费问题,提升了对数据查询操作的可行性;并且数据的实时可视化显示使数据更加直观,方便了查看数据。CN 112347379 ACN 112347379 A

权 利 要 求 书

1/1页

1.一种基于Spark的数据实时处理可视化的方法,其特征在于:所述方法包括以下的步骤:

S1、Kafka实时推送Oracle中的源数据至Spark程序;S2、Spark程序监听Kafka,并实时消费Kafka推送的数据;S3、Spark程序将数据存入到mongoDB数据库;S4、Websocket推送mongoDB数据库中的数据至前端;S5、通过Echart框架将前端的实时数据在客户端进行动态化的图表展示。2.如权利要求1所述的一种基于Spark的数据实时处理可视化的方法,其特征在于:所述步骤S2包括以下步骤:

S21、Spark程序获取Kafka实时推送的更新的数据;S22、Spark程序逐条消费Kafka推送的数据;S23、Spark程序将最后更新时间标签封装到字段。

3.如权利要求1所述的一种基于Spark的数据实时处理可视化的方法,其特征在于:所述步骤S21中Kafka实时推送的更新的数据包括但不限于商户表、线上订单表、线下流水表、风险核查单表和风险商户表。

4.如权利要求1所述的一种基于Spark的数据实时处理可视化的方法,其特征在于:所述步骤S22包括以下步骤:

S221、Spark程序每拿到一条数据就进行清洗和去除重复数据;S222、Spark程序对数据进行一次汇总聚合。

5.如权利要求1所述的一种基于Spark的数据实时处理可视化的方法,其特征在于:所述步骤S3包括以下步骤:

S31、Spark程序将汇总的数据以json格式存入到mongoDB数据库;S31、Spark程序将最后更新时间标签插入到mongoDB数据库。

6.如权利要求1所述的一种基于Spark的数据实时处理可视化的方法,其特征在于:所述步骤S4包括以下步骤:

S41、通过Websocket协议与服务器进行一次握手,在浏览器和服务器之间生成一条数据通道;

S42、服务器实时将mongoDB数据库中更新的数据推送到前端界面。

7.如权利要求1所述的一种基于Spark的数据实时处理可视化的方法,其特征在于:所述步骤S5中的客户端利用Node.js进行开发。

8.如权利要求7所述的一种基于Spark的数据实时处理可视化的方法,其特征在于:所述客户端利用Node.js的单线程和异步式I/O进行开发。

2

CN 112347379 A

说 明 书

一种基于Spark的数据实时处理可视化的方法

1/3页

技术领域

[0001]本发明涉及数据处理技术领域,具体的,本发明涉及一种基于Spark的数据实时处理可视化的方法。

背景技术

[0002]无现金时代大背景下,在第三方支付公司入网商户的数量和以及经第三方支付平台的交易笔数日趋增多,尤其是日交易笔数,已经达到千万级。在海量的商户信息和交易数据前,业务人员需要从多个维度对商户、代理商和分公司进行实时监督和管理,比如入网商户的合规率以及风险交易比例,当风险比率达到设定的阈值时,要对代理商或者分公司进行巡检排查,以达到控制风险交易,管控风险商户的目的。

[0003]目前的交易管理系统只做到了对大部分业务数据T+1的统计,业务人员在第二天才能看到代理商和分公司的合规交易信息,而且统计结果是以数字的形态静态展示在客户端界面上的,数据量大,字段多,不直观,难以让业务人员快速准确的做出判断,不得不依赖于大量数据的检索,很大程度上加重了业务人员的工作负担,也影响了业务人员的工作效率。现有技术中有利用Ajax对数据做轮询,但是采用这种方法即使是在数据无更新的时候也会做查询操作,数据量大的情况下,会造成大量的资源浪费,在当今大数据的时代下,无法满足实际需求。

发明内容

[0004]为了克服现有技术的不足,本发明提供了一种基于Spark的数据实时处理可视化的方法,通过主动推送数据避免轮询所带来的资源浪费,以解决上述的技术问题。[0005]本发明解决其技术问题所采用的技术方法是:一种基于Spark的数据实时处理可视化的方法,其改进之处在于:包括S1、Kafka实时推送Oracle中的源数据至Spark程序;S2、Spark程序监听Kafka,并实时消费Kafka推送的数据;S3、Spark程序将数据存入到mongoDB数据库;S4、Websocket推送mongoDB数据库中的数据至前端;S5、通过Echart框架将前端的实时数据在客户端进行动态化的图表展示。[0006]在上述方法中,步骤S2包括以下步骤:[0007]S21、Spark程序获取Kafka实时推送的更新的数据;[0008]S22、Spark程序逐条消费Kafka推送的数据;[0009]S23、Spark程序将最后更新时间标签封装到字段。[0010]在上述方法中,步骤S21中Kafka实时推送的更新的数据包括但不限于商户表、线上订单表、线下流水表、风险核查单表和风险商户表。[0011]在上述方法中,步骤S22包括以下步骤:[0012]S221、Spark程序每拿到一条数据就进行清洗和去除重复数据;[0013]S222、Spark程序对数据进行一次汇总聚合。[0014]在上述方法中,步骤S3包括以下步骤:

3

CN 112347379 A[0015]

说 明 书

2/3页

S31、Spark程序将汇总的数据以json格式存入到mongoDB数据库;

[0016]S31、Spark程序将最后更新时间标签插入到mongoDB数据库。[0017]在上述方法中,步骤S4包括以下步骤:[0018]S41、通过Websocket协议与服务器进行一次握手,在浏览器和服务器之间生成一条数据通道;[0019]S42、服务器实时将mongoDB数据库中更新的数据推送到前端界面。[0020]在上述方法中,步骤S5中的客户端利用Node.js进行开发。[0021]在上述方法中,客户端利用Node.js的单线程和异步式I/O进行开发。[0022]本发明的有益效果是:本发明的方法利用Kafka实时推送Oracle中的源数据至Spark程序,利用Spark程序对数据进行实时聚合,数据汇总后主动推送到mongoDB数据库,由Websocket将mongoDB数据库中的数据实时推送到前端,利用Echart对前端的实时数据在客户端可视化显示,主动推送数据解决了轮询所带来的资源浪费问题,提升了对数据查询操作的可行性;并且数据的实时可视化显示使数据更加直观,方便查看数据。附图说明

[0023]附图1为本发明的流程图

[0024]附图2为图1中步骤S2的具体流程示意图

具体实施方式

[0025]下面结合附图和实施例对本发明进一步说明。[0026]以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。另外,专利中涉及到的所有联接/连接关系,并非单指构件直接相接,而是指可根据具体实施情况,通过添加或减少联接辅件,来组成更优的联接结构。本发明创造中的各个技术特征,在不互相矛盾冲突的前提下可以交互组合。[0027]参照图1,本发明的方法包括:交易系统、运营管理系统、风控系统等产生的数据都存在于各个业务系统的Oracle数据库中,Kafka实时推送Oracle中的源数据至Spark程序;Spark程序监听Kafka,并实时消费Kafka推送的数据;然后Spark程序将汇总的数据以json格式存入到mongoDB数据库,并将最后更新时间标签(last-time-up)插入到mongoDB数据库;Websocket推送mongoDB数据库中的数据至浏览器(前端界面),具体的,通过Websocket协议与服务器进行一次握手,在浏览器和服务器之间生成一条数据通道,使得服务器能实时将有更新的mongoDB数据库中的数据推送到浏览器(前端界面),并且不需要每次发送数据都需要发送请求,能很大程度地减少网络带宽的消耗;最后通过Echart框架,将推送到前端的实时数据在客户端进行动态化的图表展示,所述客户端由Node.js开发,具体的,客户端是利用Node.js的单线程、异步式I/O进行开发。利用Kafka实时推送Oracle中的源数据至Spark程序,Spark程序对数据进行实时聚合,数据汇总后主动推送到mongoDB数据库,由Websocket将mongoDB数据库中的数据实时推送到浏览器(前端界面),最后利用Echart对前

4

CN 112347379 A

说 明 书

3/3页

端的实时数据在客户端可视化显示,主动推送数据解决了轮询所带来的资源浪费问题,提升了对数据查询操作的可行性。[0028]参照图2,Spark程序监听Kafka,并实时消费Kafka推送的数据,具体通过以下步骤实现:Spark程序获取Kafak实时推送的更新的数据,Spark程序逐条消费Kafka推送的数据,Spark程序每拿到一条数据就对数据进行一次清洗和去除重复数据,然后进行汇总聚合,保证数据聚合统计的准确性,并且将最后更新时间标签封装到字段。

[0029]本发明的方法利用Kafka实时推送Oracle中的源数据至Spark程序,利用Spark程序对数据进行实时聚合,数据汇总后主动推送到mongoDB数据库,由Websocket将mongoDB数据库中的数据实时推送到浏览器(前端界面),利用Echart对前端的实时数据在客户端可视化显示。主动推送数据解决了轮询所带来的资源浪费问题,提升了对数据查询操作的可行性;并且数据的实时可视化显示使数据更加直观,方便了查看数据。[0030]以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

5

CN 112347379 A

说 明 书 附 图

1/1页

图1

图2

6

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