CN115795242A - 一种基于Flink流式计算引擎实现海量数据近实时处理的方法 - Google Patents
一种基于Flink流式计算引擎实现海量数据近实时处理的方法 Download PDFInfo
- Publication number
- CN115795242A CN115795242A CN202310084833.XA CN202310084833A CN115795242A CN 115795242 A CN115795242 A CN 115795242A CN 202310084833 A CN202310084833 A CN 202310084833A CN 115795242 A CN115795242 A CN 115795242A
- Authority
- CN
- China
- Prior art keywords
- state
- time
- processing
- distributed
- data
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 60
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000004364 calculation method Methods 0.000 title claims abstract description 19
- 230000036962 time dependent Effects 0.000 claims abstract 2
- 238000005192 partition Methods 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 230000001186 cumulative effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 abstract description 23
- 238000013461 design Methods 0.000 abstract description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Flink流式计算引擎实现海量数据近实时处理的方法,包括设置实时流数据的参数;构建自定义程序;接入实时流数据,采用UDF函数进行数据处理,并将处理结果写入至集群的分布式系统状态;在调度系统中启动自定义的定时任务,将分布式系统状态中的处理结果保存至分布式文件系统,再通过时效性间隔时间和自定义程序,将处理结果输出至下游存储系统中。本发明基于内存的分布式状态和内存的计算,适用于超大数据量的实时处理;本发明通过自定义的数据实效性,具有更高的自由度;本发明对下游系统存储介质没有强依赖,预先可配置,灵活性高;本发明的设计高度抽象灵活,适用于多种数据处理场景,具有广泛的适用范围。
Description
技术领域
本发明属于大数据技术领域,具体涉及一种基于Flink流式计算引擎实现海量数据近实时处理的方法。
背景技术
大数据的数据处理主要分为离线数据处理和实时数据处理。离线数据处理一般都是采用T+1的处理方式,即每天零时处理前一天的数据,因而不能够满足数据实效性。实时数据处理需要在数据流中实时对数据进行加工处理,然后输出到目标系统,但是面对超大数据量的时候,高并发结果输出对目标系统压力太大,不仅增加下游业务系统的查询数据的压力,也对下游系统有较高的要求。
因此,本发明提供了一种基于Flink流式计算引擎实现海量数据近实时处理的方法,解决现有离线数据处理的实效性差、以及实时数据处理的高并发写入影响下游查询性能的技术问题。
发明内容
本发明要解决的技术问题是:提供一种基于Flink流式计算引擎实现海量数据近实时处理的方法,以解决上述技术问题。
为实现上述目的,本发明采用的技术方案如下:
一种基于Flink流式计算引擎实现海量数据近实时处理的方法,包括以下步骤:
步骤1、设置实时流数据的时效性间隔时间、分布式快照的保存点地址、以及实时流数据输出的下游储存系统;
步骤2、基于Flink流式计算引擎,读取分布式快照的保存点,在下游储存系统中构建自定义程序;
步骤3、通过数据源连接器接入实时流数据,将实时流数据反序列化为JsonNode对象再进行hash分区,采用UDF函数对各hash分区内的JsonNode对象进行处理,并将处理结果写入至集群的分布式系统状态;
步骤4、在调度系统中启动自定义的定时任务,定期通过Flink流式计算引擎的保存点,将分布式系统状态中的处理结果保存至分布式文件系统,再通过时效性间隔时间和自定义程序,将处理结果输出至下游存储系统中。
进一步地,所述步骤2包括:步骤21、根据Flink流式计算引擎中状态模块的状态处理接口,主函数中加载分布式快照的保存点地址,并读取所述保存点的内容,形成一个键控状态流;步骤22、加载键控状态读取函数,使用open函数中初始化键控状态流的状态、使用readKey函数中读取键控状态流中的状态数据;步骤23、将键控状态流反序列化到下游储存系统中。
进一步地,所述键控状态流的状态包括状态的名字和类型。
进一步地,所述步骤3中,基于数据流中的Schema 信息,将所述实时流数据反序列化为JsonNode对象。
进一步地,所述步骤3中,基于key值对所述JsonNode对象进行hash分区,每个分区中JsonNode对象的key值相同。
进一步地,所述UDF函数的数据处理包括但不限于求和、求累计数量、求均值。
进一步地,所述处理结果写入集群的分布式系统状态的逻辑包括:采用UDF函数的open函数初始化分布式状态;采用UDF函数的process方法将处理结果写入分布式状态,所述分布式状态包括状态的名称和类型。
进一步地,所述分布式快照的保存点地址为分布式文件系统的地址。
进一步地,所述实时流数据为json格式的数据。
与现有技术相比,本发明具有以下有益效果:
本发明基于内存的分布式状态和内存的计算,适用于超大数据量的实时处理;本发明通过自定义的数据实效性,具有更高的自由度;本发明对下游系统存储介质没有强依赖,预先可配置,具有更灵活的用户使用需求;本发明的设计高度抽象灵活,适用于多种数据处理场景,具有广泛的适用范围。
附图说明
图1为本发明的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
术语解释:
Flink是一个分布式系统;
Hadoop是一个由Apache基金会所开发的分布式系统基础架构;
ReadKey为Flink框架中读取分布式状态的一个内置的方法,可以读取保存在分布式状态的数据;
UDF函数即为Flink提供的用户自定义的接口;
open函数是Flink算子自带的初始化函数,用于用户初始化Flink算子;
process方法是Flink算提供的处理接口,用于用户实现自己的逻辑处理。
Schema是数据库对象的集合。
如图1所示,本发明提供的一种基于Flink流式计算引擎实现海量数据近实时处理的方法,包括以下步骤:
步骤1、设置实时流数据的参数:设置实时流数据的时效性间隔时间、分布式快照的保存点(savepoint)地址、以及实时流数据输出的下游储存系统;
步骤2、构建自定义程序:基于Flink流式计算引擎,读取分布式快照的保存点(savepoint),在下游储存系统中构建自定义程序;
步骤3、通过数据源连接器(source connector)接入实时流数据(source),将实时流数据反序列化为JsonNode对象再进行hash分区,采用UDF函数对各hash分区内的JsonNode对象进行处理,并将处理结果写入至集群的分布式系统状态(分布式state);
步骤4、在调度系统中启动自定义的定时任务,定期通过Flink流式计算引擎的保存点(savepoint),将分布式系统状态中的处理结果保存至Hadoop分布式文件系统,再通过时效性间隔时间和自定义程序,将处理结果输出至下游存储系统中。
本发明基于内存的分布式状态和内存的计算,适用于超大数据量的实时处理;本发明通过自定义的数据实效性,具有更高的自由度;本发明对下游系统存储介质没有强依赖,预先可配置,具有更灵活的用户使用需求;本发明的设计高度抽象灵活,适用于多种数据处理场景,具有广泛的适用范围。
在所述步骤1中,所述实时流数据的时效性间隔时间可设定为10秒、20秒、30秒、1分钟或10分钟等,所述分布式快照的保存点地址为Hadoop分布式文件系统的地址。
在所述步骤3中,所述实时流数据为json格式的数据。
在部分实施例中,所述步骤2包括:步骤21、根据Flink流式计算引擎中状态模块(state模块)的状态进程接口(state process api),主函数(main函数)中加载分布式快照的保存点(savepoint)地址,并读取所述保存点(savepoint)的内容,形成一个键控状态流(Keyed State流);步骤22、加载键控状态读取函数(KeyedStateReadeFunction.),使用open函数中初始化键控状态流(Keyed State流)的状态(state)、使用readKey函数中读取键控状态流中的状态(state)数据;步骤23、将键控状态流反序列化到下游储存系统中。所述键控状态流的状态包括状态的名字和类型。
在部分实施例中,基于数据流中的Schema 信息,将所述实时流数据反序列化为JsonNode对象。
在部分实施例中,基于key值对所述JsonNode对象进行hash分区,每个分区中JsonNode对象的key值相同。
在部分实施例中,所述UDF函数的数据处理包括但不限于求和、求累计数量、求均值。
在部分实施例中,所述处理结果写入集群的分布式系统状态的逻辑包括:采用UDF函数的open函数初始化分布式状态(分布式state);采用UDF函数的process方法将处理结果写入分布式状态,所述分布式状态(分布式state)包括状态(state)的名称和类型。
最后应说明的是:以上各实施例仅仅为本发明的较优实施例用以说明本发明的技术方案,而非对其限制,当然更不是限制本发明的专利范围;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围;也就是说,但凡在本发明的主体设计思想和精神上作出的毫无实质意义的改动或润色,其所解决的技术问题仍然与本发明一致的,均应当包含在本发明的保护范围之内;另外,将本发明的技术方案直接或间接的运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种基于Flink流式计算引擎实现海量数据近实时处理的方法,其特征在于,包括以下步骤:
步骤1、设置实时流数据的时效性间隔时间、分布式快照的保存点地址、以及实时流数据输出的下游储存系统;
步骤2、基于Flink流式计算引擎,读取分布式快照的保存点,在下游储存系统中构建自定义程序;
步骤3、通过数据源连接器接入实时流数据,将实时流数据反序列化为JsonNode对象再进行hash分区,采用UDF函数对各hash分区内的JsonNode对象进行处理,并将处理结果写入至集群的分布式系统状态;
步骤4、在调度系统中启动自定义的定时任务,定期通过Flink流式计算引擎的保存点,将分布式系统状态中的处理结果保存至分布式文件系统,再通过时效性间隔时间和自定义程序,将处理结果输出至下游存储系统中。
2.根据权利要求1所述的一种基于Flink流式计算引擎实现海量数据近实时处理的方法,其特征在于,所述步骤2包括:步骤21、根据Flink流式计算引擎中状态模块的状态处理接口,主函数中加载分布式快照的保存点地址,并读取所述保存点的内容,形成一个键控状态流;步骤22、加载键控状态读取函数,使用open函数中初始化键控状态流的状态、使用readKey函数中读取键控状态流中的状态数据;步骤23、将键控状态流反序列化到下游储存系统中。
3.根据权利要求2所述的一种基于Flink流式计算引擎实现海量数据近实时处理的方法,其特征在于,所述键控状态流的状态包括状态的名字和类型。
4.根据权利要求1所述的一种基于Flink流式计算引擎实现海量数据近实时处理的方法,其特征在于,所述步骤3中,基于数据流中的Schema 信息,将所述实时流数据反序列化为JsonNode对象。
5.根据权利要求1所述的一种基于Flink流式计算引擎实现海量数据近实时处理的方法,其特征在于,所述步骤3中,基于key值对所述JsonNode对象进行hash分区,每个分区中JsonNode对象的key值相同。
6.根据权利要求1所述的一种基于Flink流式计算引擎实现海量数据近实时处理的方法,其特征在于,所述UDF函数的数据处理包括但不限于求和、求累计数量、求均值。
7.根据权利要求1所述的一种基于Flink流式计算引擎实现海量数据近实时处理的方法,其特征在于,所述处理结果写入集群的分布式系统状态的逻辑包括:采用UDF函数的open函数初始化分布式状态;采用UDF函数的process方法将处理结果写入分布式状态,所述分布式状态包括状态的名称和类型。
8.根据权利要求1所述的一种基于Flink流式计算引擎实现海量数据近实时处理的方法,其特征在于,所述分布式快照的保存点地址为分布式文件系统的地址。
9.根据权利要求1所述的一种基于Flink流式计算引擎实现海量数据近实时处理的方法,其特征在于,所述实时流数据为json格式的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084833.XA CN115795242A (zh) | 2023-02-09 | 2023-02-09 | 一种基于Flink流式计算引擎实现海量数据近实时处理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084833.XA CN115795242A (zh) | 2023-02-09 | 2023-02-09 | 一种基于Flink流式计算引擎实现海量数据近实时处理的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115795242A true CN115795242A (zh) | 2023-03-14 |
Family
ID=85430571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310084833.XA Pending CN115795242A (zh) | 2023-02-09 | 2023-02-09 | 一种基于Flink流式计算引擎实现海量数据近实时处理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795242A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704518A (zh) * | 2019-08-26 | 2020-01-17 | 苏宁云计算有限公司 | 基于Flink引擎的业务数据处理方法及装置 |
CN110908641A (zh) * | 2019-11-27 | 2020-03-24 | 中国建设银行股份有限公司 | 基于可视化的流计算平台、方法、设备和存储介质 |
CN111752545A (zh) * | 2020-06-25 | 2020-10-09 | 武汉众邦银行股份有限公司 | 一种支持数据重放的流计算方法 |
CN112287007A (zh) * | 2020-10-30 | 2021-01-29 | 常州微亿智造科技有限公司 | 基于Flink SQL引擎的工业生产数据实时处理方法、系统 |
CN114238415A (zh) * | 2021-12-24 | 2022-03-25 | 四川新网银行股份有限公司 | 基于Flink的实时规则引擎控制方法、系统及介质 |
CN114327678A (zh) * | 2021-12-29 | 2022-04-12 | 中电福富信息科技有限公司 | 一种支持多引擎的实时数据处理系统及方法 |
-
2023
- 2023-02-09 CN CN202310084833.XA patent/CN115795242A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704518A (zh) * | 2019-08-26 | 2020-01-17 | 苏宁云计算有限公司 | 基于Flink引擎的业务数据处理方法及装置 |
CN110908641A (zh) * | 2019-11-27 | 2020-03-24 | 中国建设银行股份有限公司 | 基于可视化的流计算平台、方法、设备和存储介质 |
CN111752545A (zh) * | 2020-06-25 | 2020-10-09 | 武汉众邦银行股份有限公司 | 一种支持数据重放的流计算方法 |
CN112287007A (zh) * | 2020-10-30 | 2021-01-29 | 常州微亿智造科技有限公司 | 基于Flink SQL引擎的工业生产数据实时处理方法、系统 |
CN114238415A (zh) * | 2021-12-24 | 2022-03-25 | 四川新网银行股份有限公司 | 基于Flink的实时规则引擎控制方法、系统及介质 |
CN114327678A (zh) * | 2021-12-29 | 2022-04-12 | 中电福富信息科技有限公司 | 一种支持多引擎的实时数据处理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021091489A1 (en) | Method and apparatus for storing time series data, and server and storage medium thereof | |
CN112579602B (zh) | 多版本数据存储方法、装置、计算机设备及存储介质 | |
CN104639658A (zh) | 一种以文件系统挂载访问对象存储的实现方法 | |
CN105956068A (zh) | 基于分布式数据库的网页url去重方法 | |
CN109918382A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN110781197B (zh) | 一种hive离线同步校验方法、装置及电子设备 | |
CN105405070A (zh) | 一种分布式内存电网系统构建方法 | |
CN108089825B (zh) | 一种基于分布式集群的存储系统 | |
CN109241023A (zh) | 分布式存储系统数据存储方法、装置、系统及存储介质 | |
CN114327280B (zh) | 一种基于冷热分离存储的消息存储方法及系统 | |
CN113364877B (zh) | 数据处理方法、装置、电子设备和介质 | |
CN113468226A (zh) | 一种业务处理方法、装置、电子设备和存储介质 | |
CN103414762A (zh) | 云备份方法和装置 | |
CN109862090A (zh) | 一种高安全度分布式云存储系统 | |
CN109902059A (zh) | 一种cpu与gpu之间的数据传输方法 | |
CN114706836B (zh) | 一种基于机载嵌入式数据库的数据生命周期管理方法 | |
CN105302489A (zh) | 一种异构多核远程嵌入式存储器系统与方法 | |
CN115795242A (zh) | 一种基于Flink流式计算引擎实现海量数据近实时处理的方法 | |
CN110019043B (zh) | 一种区块链数据存储方法 | |
CN113434489B (zh) | 一种实时数据库在线扩容方法、系统、设备及存储介质 | |
CN108234552B (zh) | 一种数据存储方法及装置 | |
CN115858471A (zh) | 业务数据变更记录方法、装置、计算机设备及介质 | |
CN113051091A (zh) | 一种进程级缓存数据同步方法和装置 | |
CN112148795B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN116756247B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230314 |