CN111930812B - 基于flink的实时聚合报表方法、电子设备及可读存储介质 - Google Patents

基于flink的实时聚合报表方法、电子设备及可读存储介质 Download PDF

Info

Publication number
CN111930812B
CN111930812B CN202010707366.8A CN202010707366A CN111930812B CN 111930812 B CN111930812 B CN 111930812B CN 202010707366 A CN202010707366 A CN 202010707366A CN 111930812 B CN111930812 B CN 111930812B
Authority
CN
China
Prior art keywords
data
report
flink
time
real
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010707366.8A
Other languages
English (en)
Other versions
CN111930812A (zh
Inventor
余丽玲
刘跃红
管正爽
曹浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yinsheng Payment Service Co Ltd
Original Assignee
Yinsheng Payment Service Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yinsheng Payment Service Co Ltd filed Critical Yinsheng Payment Service Co Ltd
Priority to CN202010707366.8A priority Critical patent/CN111930812B/zh
Publication of CN111930812A publication Critical patent/CN111930812A/zh
Application granted granted Critical
Publication of CN111930812B publication Critical patent/CN111930812B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于flink的实时聚合报表方法、电子设备及可读存储介质,涉及大数据技术领域,该方法包括以下的步骤:S1、初始化报表数据;S2、实时同步数据库的明细数据;S3、日报表数据的实时处理;S4、月报表数据的实时处理;S5、年报表的实时处理;本发明的有益效果是:能够实时响应运营日、月、年报表数据请求,满足高并发场景使用。

Description

基于flink的实时聚合报表方法、电子设备及可读存储介质
技术领域
本发明涉及大数据技术领域,更具体的说,本发明涉及一种基于flink的实时聚合报表方法、电子设备及可读存储介质。
背景技术
现有技术中,对于实时数据的需求越来越多,多个独立的实时任务会造成很大的集群资源的浪费,付出较高的开发运维成本,因此需要一个统一的实时数据仓库来提高任务扩展性,节约集群资源。
对于企业运营需要使用的业务日、月、年报,目前可使用的技术有:(1)采用日常的跑批处理机制,利用Shell脚本与传统型数据库交互即可实现;(2)使用以Hadoop为代表的大数据离线处理机制实现。
上述两种方式均存在缺陷:第一种方式,实现简单,对大数据量的跑批处理会短时间内增加传统型型数据库的I/O压力,甚至耗尽数据库资源,出现宕机;第二种方式,使用了大数据的Hadoop技术,可分解短时间的跑批处理压力,但报表的生成时效性较低,且若报表生成后数据有变动,则不支持即时处理,需要重新生成数据方可解决;同时,对已生成的报表若需要调整,则需重新开发。
发明内容
为了克服现有技术的不足,本发明提供一种基于flink的实时聚合报表方法、电子设备及可读存储介质,能够实时响应运营日、月、年报表数据请求。
第一方面,本发明提供了一种基于flink的实时聚合报表方法,其改进之处在于,该方法包括以下的步骤:
S1、初始化报表数据,初始化日报表、月报表以及年报表的数据,并保存在MongoDB数据库对应的明细表中;
S2、实时同步数据库的明细数据,定时拉取明细表中的数据,将需要的字段数据发送到Kafka;
S3、日报表数据的实时处理,通过flink实时聚合Kafka上的数据,调整聚合的时间窗口,将聚合处理后的数据存储到MongoDB数据库的日报表中;
在flink中将新增、删除以及更新的数据分成不同的stream流进行处理,再将处理的结果sink到相应的日报表中;
S4、月报表数据的实时处理,在将数据落地到日报表之前会将所有的更新、删除的数据转换成增加的数据,在月报表数据处理时在flink消费Kafka数据只有增加数据,将时间窗口内具体的数据直接累加到已有的值中,最后落地到MongoDB数据库相应的月报表中;
S5、年报表的实时处理,在将数据落地到月报表之前将所有的月报表数据发送到kafka,在年报表数据处理时flink消费kafka数据时只有增加数据,将时间窗口内聚合的数据直接累加到已有的值中,最后落地到mongodb数据库相应的年报表中。
进一步的,所述的步骤S2中,通过定时程序定时拉取明细表的数据。
进一步的,所述的步骤S2中,根据业务需求将需要的字段数据发送到Kafka。
进一步的,所述的步骤S3中,经过聚合处理后的数据占明细表数据的5%以下。
进一步的,所述的步骤S3中,在flink中通过OutputTag结合SpitStream,将新增、删除以及更新的数据分成不同的stream流进行处理。
进一步的,所述的步骤S3中,在flink中将新增、删除以及更新的数据分成不同的stream流进行处理之前,还包括以下的步骤:
将删除的累计聚合操作转换成新增数据进行处理;
对于更新的聚合字段需要单独进行处理,在设定有过滤条件下,且已知每条聚合数据不超过设定值的情况下,重新聚合此数据并更新到日报表中。
进一步的,所述的步骤S5之后还具有步骤:
S6、对外提供报表的接口,对外提供日报表、月报表以及年报表的接口。
第二方面,本发明还公开了一种电子设备,其特改进之处在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面所述的方法。
第三方面,本发明还提供了一种可读存储介质,其改进之处在于,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面所述的方法。
本发明的有益效果是:本发明的基于flink的实时聚合报表方法,可以实时响应运营日、月、年报表数据请求,并满足高并发场景使用;可根据需求动态调整排序规则以及报表所需字段;另外,可快速生成指定的运营日、月、年报表并支持异步下载。
附图说明
图1为本发明的一种基于flink的实时聚合报表方法的流程示意图。
图2为本发明的一种基于flink的实时聚合报表方法的详细流程图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。另外,专利中涉及到的所有联接/连接关系,并非单指构件直接相接,而是指可根据具体实施情况,通过添加或减少联接辅件,来组成更优的联接结构。本发明创造中的各个技术特征,在不互相矛盾冲突的前提下可以交互组合。
参照图1、图2所示,本发明揭示了一种基于flink的实时聚合报表方法,该方法由电子设备执行,该电子设备可以为服务器,也可以为终端设备;本实施例中,该电子设备包括处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行本发明的基于flink的实时聚合报表方法。
在本实施例中,通过该实时聚合报表方法,实时响应运营日、月、年报表数据请求,并满足高并发场景使用。该实时聚合报表方法包括以下的步骤:
S1、初始化报表数据,初始化日报表、月报表以及年报表的数据,并保存在MongoDB数据库对应的明细表中;
S2、实时同步数据库的明细数据,定时拉取明细表中的数据,将需要的字段数据发送到Kafka;本实施例中,可以通过定时程序定时拉取明细表的数据,同时,根据业务需求将需要的字段数据发送到Kafka;
业务需求需根据实际需求进行设定,本发明以下面的示例进行说明,例如代理商报表table1需要以下六个字段:代理商号a、代理商名称b、代理商所属省市c、交易手续费d、代理费率e、交易金额f。代理商报表所依赖的原表为一个存储了上百个字段的明细表table2,上方定时程序定时拉取明细数据时,只需要将明细数据中的上方六个字段组成json串发送到kafka上。
S3、日报表数据的实时处理,通过flink实时聚合Kafka上的数据,调整聚合的时间窗口,将聚合处理后的数据存储到MongoDB数据库的日报表中;经过聚合处理后的数据占明细表数据的5%以下;
在flink中将新增、删除以及更新的数据分成不同的stream流进行处理,再将处理的结果sink到相应的日报表中;本实施例中,在flink中通过OutputTag结合SpitStream,将新增、删除以及更新的数据分成不同的stream流进行处理;
数据在一个时间窗口完成后才会将数据sink落地到数据库或者文本。可以根据业务实时性要求调整时间窗口。例如对于代理商的报表的实时性要求如果不是特别高,这时可以将聚合的时间窗口调大一些,这样可以减少和数据库的交互,对于实时性要求比较高的交易报表则可以将时间窗口调整小一些。
另外,在本实施例中,在flink中将新增、删除以及更新的数据分成不同的stream流进行处理之前,还包括以下的步骤:
将删除的累计聚合操作转换成新增数据进行处理;
对于更新的聚合字段需要单独进行处理,在设定有过滤条件下,且已知每条聚合数据不超过设定值的情况下,重新聚合此数据并更新到日报表中。
更进一步的,在本实施例中,设定的过滤条件为:以上方代理商报表所需的字段为例:代理商号a、代理商名称b、代理商所属省市c、交易手续费d、代理费率e、交易金额f、交易日期g。如果时间窗口内频繁更新某个代理商的交易金额,这个时候代理商号a、代理商名称b、代理商所属省市c、交易手续费d、代理费率e、交易日期g是知道的,这个时候只要聚合交易金额然后update更新这条数据。如果金额是增加值直接将时间窗口内flink聚合的值累加到原来的值上。基于此,本发明的实时聚合报表方法,能够实时快速生成指定的运营日、月以及年报表;
S4、月报表数据的实时处理,在将数据落地到日报表之前会将所有的更新、删除的数据转换成增加的数据,在月报表数据处理时在flink消费Kafka数据只有增加数据,将时间窗口内具体的数据直接累加到已有的值中,最后落地到MongoDB数据库相应的月报表中;
S5、年报表的实时处理,在将数据落地到月报表之前将所有的月报表数据发送到kafka,在年报表数据处理时flink消费kafka数据时只有增加数据,将时间窗口内聚合的数据直接累加到已有的值中,最后落地到mongodb数据库相应的年报表中;
S6、对外提供报表的接口,对外提供日报表、月报表以及年报表的接口,以便于实现异步下载。
另外,本发明还提供了一种可读存储介质,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上所述的基于flink的实时聚合报表方法。
通过上述的基于flink的实时聚合报表方法,可以实时响应运营日、月、年报表数据请求,并满足高并发场景使用;可根据需求动态调整排序规则以及报表所需字段;可横向扩展物理资源解决因业务增长过快导致的资源瓶颈问题;另外,可快速生成指定的运营日、月、年报表并支持异步下载。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (9)

1.一种基于flink的实时聚合报表方法,其特征在于,该方法包括以下的步骤:
S1、初始化报表数据,初始化日报表、月报表以及年报表的数据,并保存在MongoDB数据库对应的明细表中;
S2、实时同步数据库的明细数据,定时拉取明细表中的数据,将需要的字段数据发送到Kafka;
S3、日报表数据的实时处理,通过flink实时聚合Kafka上的数据,调整聚合的时间窗口,将聚合处理后的数据存储到MongoDB数据库的日报表中;
在flink中将新增、删除以及更新的数据分成不同的stream流进行处理,再将处理的结果sink到相应的日报表中;
S4、月报表数据的实时处理,在将数据落地到日报表之前会将所有的更新、删除的数据转换成增加的数据,在月报表数据处理时在flink消费Kafka数据只有增加数据,将时间窗口内具体的数据直接累加到已有的值中,最后落地到MongoDB数据库相应的月报表中;
S5、年报表的实时处理,在将数据落地到月报表之前将所有的月报表数据发送到kafka,在年报表数据处理时flink消费kafka数据时只有增加数据,将时间窗口内聚合的数据直接累加到已有的值中,最后落地到mongodb数据库相应的年报表中。
2.根据权利要求1所述的一种基于flink的实时聚合报表方法,其特征在于:所述的步骤S2中,通过定时程序定时拉取明细表的数据。
3.根据权利要求1所述的一种基于flink的实时聚合报表方法,其特征在于:所述的步骤S2中,根据业务需求将需要的字段数据发送到Kafka。
4.根据权利要求1所述的一种基于flink的实时聚合报表方法,其特征在于:所述的步骤S3中,经过聚合处理后的数据占明细表数据的5%以下。
5.根据权利要求1所述的一种基于flink的实时聚合报表方法,其特征在于:所述的步骤S3中,在flink中通过OutputTag结合SpitStream,将新增、删除以及更新的数据分成不同的stream流进行处理。
6.根据权利要求1所述的一种基于flink的实时聚合报表方法,其特征在于:所述的步骤S3中,在flink中将新增、删除以及更新的数据分成不同的stream流进行处理之前,还包括以下的步骤:
将删除的累计聚合操作转换成新增数据进行处理;
对于更新的聚合字段需要单独进行处理,在设定有过滤条件下,且已知每条聚合数据不超过设定值的情况下,重新聚合此数据并更新到日报表中。
7.根据权利要求1所述的一种基于flink的实时聚合报表方法,其特征在于:所述的步骤S5之后还具有步骤:
S6、对外提供报表的接口,对外提供日报表、月报表以及年报表的接口。
8.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1-7任一项所述的方法。
9.一种可读存储介质,其特征在于,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1-7任一项所述的方法。
CN202010707366.8A 2020-07-20 2020-07-20 基于flink的实时聚合报表方法、电子设备及可读存储介质 Active CN111930812B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010707366.8A CN111930812B (zh) 2020-07-20 2020-07-20 基于flink的实时聚合报表方法、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010707366.8A CN111930812B (zh) 2020-07-20 2020-07-20 基于flink的实时聚合报表方法、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN111930812A CN111930812A (zh) 2020-11-13
CN111930812B true CN111930812B (zh) 2024-05-03

Family

ID=73315144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010707366.8A Active CN111930812B (zh) 2020-07-20 2020-07-20 基于flink的实时聚合报表方法、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN111930812B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632090B (zh) * 2020-12-11 2023-03-10 福建升腾资讯有限公司 阿米巴系统核算报表性能优化方法、装置、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068978A (zh) * 2015-08-07 2015-11-18 北京思特奇信息技术股份有限公司 一种基于数据库的日月报自动化稽核方法和系统
CN107908672A (zh) * 2017-10-24 2018-04-13 深圳前海微众银行股份有限公司 基于Hadoop平台的应用报表实现方法、设备及存储介质
CN109710731A (zh) * 2018-11-19 2019-05-03 北京计算机技术及应用研究所 一种基于Flink的数据流多向处理系统
CN111177193A (zh) * 2019-12-13 2020-05-19 航天信息股份有限公司 一种基于Flink的日志流式处理方法及系统
CN111382150A (zh) * 2020-03-19 2020-07-07 交通银行股份有限公司 一种基于Flink的实时计算方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110313969A1 (en) * 2010-06-17 2011-12-22 Gowda Timma Ramu Updating historic data and real-time data in reports

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068978A (zh) * 2015-08-07 2015-11-18 北京思特奇信息技术股份有限公司 一种基于数据库的日月报自动化稽核方法和系统
CN107908672A (zh) * 2017-10-24 2018-04-13 深圳前海微众银行股份有限公司 基于Hadoop平台的应用报表实现方法、设备及存储介质
CN109710731A (zh) * 2018-11-19 2019-05-03 北京计算机技术及应用研究所 一种基于Flink的数据流多向处理系统
CN111177193A (zh) * 2019-12-13 2020-05-19 航天信息股份有限公司 一种基于Flink的日志流式处理方法及系统
CN111382150A (zh) * 2020-03-19 2020-07-07 交通银行股份有限公司 一种基于Flink的实时计算方法及系统

Also Published As

Publication number Publication date
CN111930812A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN101873334B (zh) 一种状态驱动的可执行业务流程执行方法
CN111277639B (zh) 一种保持数据一致性的方法和装置
CN111651510A (zh) 数据处理方法、装置、电子设备和计算机可读存储介质
CN107885881A (zh) 业务数据实时上报、获取方法、装置、设备及其存储介质
WO2019047441A1 (zh) 一种通信优化方法及系统
CN112507029A (zh) 数据处理系统及数据实时处理方法
CN111930812B (zh) 基于flink的实时聚合报表方法、电子设备及可读存储介质
CN109151056B (zh) 基于Canal的消息推送方法和系统
CN109039817A (zh) 一种用于流量监控的信息处理方法和装置
CN110287266A (zh) 一种分布式系统及数据处理方法
CN105208004B (zh) 一种基于obd设备的数据入库方法
CN112286957A (zh) 基于结构化查询语言的bi系统的api应用方法及系统
CN101997701B (zh) 数据处理方法及装置
CN106649377A (zh) 一种图像处理系统及图像处理的方法
CN112040431B (zh) 一种营销短信管控系统及其方法
CN112099937A (zh) 一种资源治理方法和装置
CN109829094A (zh) 分布式爬虫系统
CN101694661B (zh) 一种统计报表生成方法、装置和统计服务器
CN113190558A (zh) 一种数据加工方法和系统
CN110377411B (zh) 一种面向分布式云的工作流任务调度方法和系统
CN107133040A (zh) 一种标准产品业务装置及业务模块扩展置换方法
CN107016128A (zh) 一种数据处理方法及装置
CN109522469B (zh) 一种分布式爬虫的调度管理方法
CN111104122A (zh) 一种xml业务逻辑映射到java业务逻辑的方法
CN106951636A (zh) 一种基于AutoCAD的电力通信静态资源自动识别方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant