CN111930812A - 基于flink的实时聚合报表方法、电子设备及可读存储介质 - Google Patents
基于flink的实时聚合报表方法、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111930812A CN111930812A CN202010707366.8A CN202010707366A CN111930812A CN 111930812 A CN111930812 A CN 111930812A CN 202010707366 A CN202010707366 A CN 202010707366A CN 111930812 A CN111930812 A CN 111930812A
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 37
- 230000002776 aggregation Effects 0.000 claims description 9
- 238000004220 aggregation Methods 0.000 claims description 9
- 230000004931 aggregating effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 4
- 238000006116 polymerization reaction Methods 0.000 claims description 4
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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的实时聚合报表方法、电子设备及可读存储介质。
背景技术
现有技术中,对于实时数据的需求越来越多,多个独立的实时任务会造成很大的集群资源的浪费,付出较高的开发运维成本,因此需要一个统一的实时数据仓库来提高任务扩展性,节约集群资源。
对于企业运营需要使用的业务日、月、年报,目前可使用的技术有:(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任一项所述的方法。
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 true CN111930812A (zh) | 2020-11-13 |
CN111930812B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632090A (zh) * | 2020-12-11 | 2021-04-09 | 福建升腾资讯有限公司 | 阿米巴系统核算报表性能优化方法、装置、设备和介质 |
Citations (6)
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 |
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的实时计算方法及系统 |
-
2020
- 2020-07-20 CN CN202010707366.8A patent/CN111930812B/zh active Active
Patent Citations (6)
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 |
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的实时计算方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632090A (zh) * | 2020-12-11 | 2021-04-09 | 福建升腾资讯有限公司 | 阿米巴系统核算报表性能优化方法、装置、设备和介质 |
CN112632090B (zh) * | 2020-12-11 | 2023-03-10 | 福建升腾资讯有限公司 | 阿米巴系统核算报表性能优化方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111930812B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755452B2 (en) | Log data collection method based on log data generated by container in application container environment, log data collection device, storage medium, and log data collection system | |
CN105468626B (zh) | 数据处理方法及系统 | |
CN110287228B (zh) | 基于电网调度域设备监测实时数据采集的实现方法 | |
CN112507029A (zh) | 数据处理系统及数据实时处理方法 | |
CN106850258A (zh) | 一种日志管理系统、方法及装置 | |
CN107346270B (zh) | 基于实时计算的基数估计的方法和系统 | |
CN111352903A (zh) | 日志管理平台、日志管理方法、介质以及电子设备 | |
CN110209674A (zh) | 一种工业环境粉尘监控微信小程序的云端数据库统计方法及装置 | |
CN101997701B (zh) | 数据处理方法及装置 | |
CN111930812A (zh) | 基于flink的实时聚合报表方法、电子设备及可读存储介质 | |
CN115588244A (zh) | 一种车联网大数据实时分析方法、装置、设备及介质 | |
CN115034927A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
WO2017114180A1 (zh) | 调整组件逻辑线程数量的方法及装置 | |
CN111049898A (zh) | 一种实现计算集群资源跨域架构的方法及系统 | |
CN111125209A (zh) | 一种支持多元异构类型数据的接入配置系统 | |
CN111241101A (zh) | 一种分布式水利rtu数据采集系统及方法 | |
CN107122246B (zh) | 智能数值模拟作业管理与反馈方法 | |
CN115237989A (zh) | 一种矿山数据采集系统 | |
CN111538575B (zh) | 一种资源调度系统、方法、装置、设备及介质 | |
CN115391361A (zh) | 一种基于分布式数据库的实时数据处理方法及其装置 | |
CN111382199A (zh) | 一种数据库同步复制的方法和装置 | |
CN113850662A (zh) | 一种舆情预警处理系统及方法 | |
CN111652616B (zh) | 交易数据实时监控方法及装置 | |
CN112307099A (zh) | 一种基于Sparkstreaming实时处理大批量数据的方法 | |
CN112825165A (zh) | 项目质量管理的方法和装置 |
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 |