CN113064920A - 基于Flink的实时计算方法、装置、计算机设备及存储介质 - Google Patents
基于Flink的实时计算方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113064920A CN113064920A CN202110222901.5A CN202110222901A CN113064920A CN 113064920 A CN113064920 A CN 113064920A CN 202110222901 A CN202110222901 A CN 202110222901A CN 113064920 A CN113064920 A CN 113064920A
- Authority
- CN
- China
- Prior art keywords
- data
- real
- time
- target
- calculation
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 213
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000004806 packaging method and process Methods 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000004590 computer program Methods 0.000 claims description 26
- 238000007781 pre-processing Methods 0.000 claims description 13
- 238000001914 filtration Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 19
- 230000001419 dependent effect Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 3
- 230000035484 reaction time Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Flink的实时计算方法、装置、计算机设备及存储介质,该方法包括:获取实时数据,根据实时数据以及预设规则生成待处理的目标数据,实时数据包括实时数据的生成时间,对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数,根据待处理的目标数据以及目标计算参数生成待计算数据,按照预设计算规则对待计算数据进行计算处理,并将得到的计算结果发送至目标节点,本发明通过在实时计算过程中,支持计算参数的动态更新,且不需要调整任务或重启任务,增加了实时计算过程的灵活性,保证了服务的持续性和稳定性,使得计算依赖的实时数据支持容灾,不丢失,在保证数据正确性的同时,保证了数据的完整性。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种基于Flink的实时计算方法、装置、计算机设备及存储介质。
背景技术
Flink是一个流式计算引擎,通常意义上来讲,数据流入后,就需要及时的进行计算和输出,这也是它的主要意义所在。但是,一方面,Flink在计算过程中大多依赖的数据是输入的数据,或者结合一些静态配置参数,当这些参数发生变化,可能需要调整任务,重启任务。另一方面,当业务上对于计算结果的输出有正确性和完整性的要求的时候,通常意义上的计算方案要么会抛弃错误的数据不做输出,要么就输出错误的数据,无法做到两方面的同时满足。
因此,亟需提出一种新的实时计算方法,以解决上述问题。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种基于Flink的实时计算方法、装置、计算机设备以及存储介质,以克服现有技术中存在的计算过程中计算参数发生变化时可能需要调整任务或重启任务以及不能同时满足数据的正确性和完整性等问题。
为解决上述一个或多个技术问题,本发明采用的技术方案是:
第一方面,提供了一种基于Flink的实时计算方法,该方法包括如下步骤:
获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间;
对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数;
根据所述待处理的目标数据以及所述目标计算参数生成待计算数据;
按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点。
进一步的,所述获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据包括:
获取实时数据,对所述实时数据进行预处理,生成预设格式的数据;
根据所述生成时间满足预设时间间隔的所述预设格式的数据生成待处理的目标数据。
进一步的,所述预设格式包括MAP格式,所述获取实时数据,对所述实时数据进行预处理,生成预设格式的数据包括:
获取实时数据,对所述实时数据进行序列化处理,生成JSON数据,所述JSON数据包括从所述JSON数据中抽取预设字段生成的目标键;
将所述JSON数据组装成MAP格式的数据。
进一步的,所述将所述JSON数据组装成MAP格式的数据包括:
对所述JSON数据进行过滤处理,将过滤后的JSON数据组装成MAP格式的数据。
进一步的,所述根据所述待处理的目标数据以及所述目标计算参数生成待计算数据包括:
验证所述目标计算参数是否合法,若是,则根据所述待处理的目标数据以及所述目标计算参数生成待计算数据,否则,则将所述目标数据缓存至预设文件系统。
进一步的,所述验证所述目标计算参数是否合法包括:
对所述目标计算参数的生成时间以及所述目标计算参数中的预设字段进行验证。
进一步的,当所述目标计算参数合法时,所述根据所述待处理的目标数据以及所述目标计算参数生成待计算数据包括:
查询所述预设文件系统是否存在缓存的目标数据,若存在,将所述缓存的目标数据与所述目标计算参数进行合并生成待计算数据,否则,根据所述待处理的目标数据以及所述目标计算参数生成待计算数据。
第二方面,提供了一种基于Flink的实时计算装置,所述装置包括:
第一生成模块,用于获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间;
参数封装模块,用于对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数;
第二生成模块,用于根据所述待处理的目标数据以及所述目标计算参数生成待计算数据;
数据计算模块,用于按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点。
第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间;
对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数;
根据所述待处理的目标数据以及所述目标计算参数生成待计算数据;
按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间;
对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数;
根据所述待处理的目标数据以及所述目标计算参数生成待计算数据;
按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的基于Flink的实时计算方法、装置、计算机设备及存储介质,通过获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间,对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数,根据所述待处理的目标数据以及所述目标计算参数生成待计算数据,按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点,通过在实时计算过程中,从预设数据库获取计算参数,支持计算参数的动态更新,且不需要调整任务或重启任务,增加了实时计算过程的灵活性,保证了服务的持续性和稳定性;
进一步的,本发明实施例提供的基于Flink的实时计算方法、装置、计算机设备及存储介质,通过验证所述目标计算参数是否合法,若是,则根据所述待处理的目标数据以及所述目标计算参数生成待计算数据,否则,则将所述目标数据缓存至预设文件系统,实现在实时计算过程中,使得计算依赖的实时数据支持容灾,不丢失,在保证数据正确性的同时,保证了数据的完整性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的基于Flink的实时计算系统的架构图;
图2是根据一示例性实施例示出的基于Flink的实时计算方法的流程图;
图3是根据一示例性实施例示出的基于Flink的实时计算装置的结构示意图;
图4是根据一示例性实施例示出的计算机设备的内部结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术所述,现有技术中的实时计算方案中,一方面,计算所依赖的计算参数不能支持动态更新,当计算参数发生变化时,通常需要重新调整计算任务或重启计算任务;另一方面,不能同时保证数据的完整性和正确性。
为解决上述问题,本发明实施例中创造性的提出了一种基于Flink的实时计算方法,该方法通过Flink任务在实时计算过程中定时从预设数据库获取相关计算参数,用以后续计算,实现在不重启Flink任务的情况下,支持计算参数的动态更新,保证了服务的持续性和稳定性。通过在实时计算过程中,当遇到问题(如目标计算参数不合法)无法计算时,将这部分实时数据通过写入缓存,问题恢复后,会将实时数据取出进行计算并输出,保证输出数据不遗漏,不丢失,实现计算依赖的实时数据支持容灾,不丢失。
为实现上述方法,本发明实施例中还提供了一种基于Flink的实时计算系统,参照图1所示,该系统至少包括:
Kafka模块,Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据,Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。
Flink模块,Flink任务用于处理实时数据的封装,计算参数的定时获取,结合实时数据与计算参数的运算,以及对应数据的按顺序输出。其中,Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink可以以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。
Hadoop分布式文件系统(HDFS),是指被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统(Distributed File System)。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
Hive,用于存储输入和输出的数据。通过将输入和输出的数据进行Hive存储,可以做到对计算结果进行量化统计,对一些有疑问的计算结果,还原当时数据场景,进行分析和修复,这种机制有利于全方位评价和优化实时任务,使得计算结果可量化、计算过程可追溯。
数据库,包括关系型数据库管理系统(MySQL),用于存储计算参数等数据。
进一步参照图1所示,上述系统执行实时计算的过程如下:
Flink任务在实时计算过程中会定时从MySQL数据库中获取相关计算参数数据,用以后续计算。同时,Flink任务会判断相关配置是否合法,若不合法,会立即将实时接收到的数据以文件形式存入HDFS中,当发现相关配置合法之后,会从HDFS文件中读取数据,快速进行Flink计算,输出给用户,完成缺失数据补救。文件读取完毕后,删除相关文件,在此恢复过程中,正常数据输出不会断。MySQL的计算参数是由一个定时任务进行更新的。Flink运算结果会输出至Kafka,客户接入对应topic即可实时获取数据。
这里需要说明的是,本发明实施例中,kafka的输出,还可以写至Hive中,后续可以定时任务,做每日抛送的结果数据与竞品进行比较,以邮件形式反馈给相关人员,以便及时发现与竞品的差异。当发现有明显差异时,根据比较结果,针对性的选择一些时间戳的数据,从之前存入Hive的原始实时数据中,还原当时场景,进行分析改进。
图2是根据一示例性实施例示出的基于Flink的实时计算方法的流程图,参照图2所示,该方法包括如下步骤:
S1:获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间;
具体的,本发明实施例中,实时数据为多源数据,以保证当某个数据源出问题时,不影响整体输出。实时数据接入Kafka,Kafka的输出到Hive数据库和Flink任务。为了方便进行数据抽取,在获取实时数据时,同时获取该实时数据的生成时间,并将该生成时间作为水印。
具体的,通过Flink任务从kafka获取实时数据时,可以设置以再均衡(Rebalance)的方式往下一个节点发送数据。其中,再均衡(Rebalance)机制指的是将一个Topic下的多个队列(或称之为分区),在同一个消费者组(consumer group)下的多个消费者实例(consumer instance)之间进行重新分配。本发明实施例中,采用Rebalance的方式是为了解决当有某个数据源,数据发送异常导致后续计算等待的情况,即相当于把接收到的数据均匀分配在多个并行度上,防止后续计算任务堵塞。
具体的,为了实现实时数据的容灾,还可以设置在Kafka层面,Flink任务启动时,数据从上次停止的地方继续往下获取,即当由于Flink任务或者Flink平台层面出现问题导致任务停止时,实时数据不会丢失,会缓存在kafka中,当任务正常启动,则继续往下消费。
这里需要说明的是,本发明实施例中,“水印”的概念是Flink中的概念,可以理解为时间间隔的具体参考字段。本申请的应用场景包括公募基金实时估值,这里所说的“市场时间”是指这些实时数据的“行情时间”或者“交易所时间”。例如,针对股票实时行情数据,这里的市场时间就是这只股票的交易所时间戳。
S2:对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数。
具体的,计算参数通常根据业务的具体需求需要周期性进行更新,以公募基金实时估值为例,由于估值的准确度依赖参数的合理性,所以,需要每日更新一次参数。本发明实施例中,采用预设数据库作为存储实时计算过程中依赖的计算参数的介质,以便可以定时或不定时的对计算参数进行更新,实现在不调整Flink任务或重启Flink任务的情况下,实现计算参数的动态配置。具体实施时,可以设置定时任务定时从预设数据库中获取相关的计算参数,将其组装成预设数据格式为后续计算做准备。例如,可以设置此操作每10分钟定时执行,即每10分钟从预设数据库中获取计算参数,这里不对具体的时间间隔进行限定,用户可以根据实际需求进行设置。
这里需要说明的是,本发明实施例中,预设数据库包括但不限于MySQL、Redis以及基于ZooKeeper的订阅发布系统等,具体设置时,可以根据用户实际需求进行选择。例如,当数据量比较大,对配置反应时间要求不是很高时,可以采用MySQL数据库;当对配置反应时间要求较高时,可以采用Redis;当配置数据量比较小,需要实时配置反应时间的可以采用基于ZooKeeper的订阅发布系统。
S3:根据所述待处理的目标数据以及所述目标计算参数生成待计算数据。
具体的,将从上述步骤S1获取的目标数据与从上述步骤S2获取的目标计算参数进行合并处理,整合成待计算数据,以供后续计算。
S4:按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点。
具体的,依赖待计算数据按照预设规则进行相应的计算,将计算结果输出给目标节点,如下游kafka等。
以键值对结构数据为例,具体计算时,针对每一个key,计算公式如下:
其中,A、B为实时行情数据,α、β、γ、δ、ε为计算依赖参数。
作为一种较优的实施方式,本发明实施例中,所述获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据包括:
获取实时数据,对所述实时数据进行预处理,生成预设格式的数据;
根据所述生成时间满足预设时间间隔的所述预设格式的数据生成待处理的目标数据。
具体的,为了方便后续进行计算,需要将获取到的实时数据转换为计算平台可以处理的统一预设格式,因而,在获取到实时数据后,对其进行预处理,将其转换为预设格式的数据。另外,可以应业务需要,预先设置时间间隔,从预设格式的数据中抽取生成时间满足预设时间间隔的数据作为待处理的目标数据。具体实施时,假设应业务需要,设置预设时间间隔为10秒,即以10秒间隔的滚动窗口,以实时数据的生成时间(以市场时间为例)作为参考时间,每10秒做一次Reduce操作,该操作是将这10秒钟内收集到的所有实时数据,筛选成1个市场时间为最近的MAP。
作为一种较优的实施方式,本发明实施例中,所述预设格式包括MAP格式,所述获取实时数据,对所述实时数据进行预处理,生成预设格式的数据包括:
获取实时数据,对所述实时数据进行序列化处理,生成JSON数据,所述JSON数据包括从所述JSON数据中抽取预设字段生成的目标键;
将所述JSON数据组装成MAP格式的数据。
具体的,将kafka中接收到的字符串(即实时数据)序列化为JSON数据,这里的JSON数据包括键值对结构数据,具体实施时,从原始JSON数据中抽取相关字段合成目标键(key),然后将JSON数据组装为MAP格式的数据,以备后续使用。从业务角度来说,MAP中存放的是key为基金代码,value为当前拿到的市场行情时间最新的行情数据。将此数据往后继续执行。
具体的,后续计算时,为了使下游有序的接收数据,可以按照MAP格式的数据中的目标键(key)和并行度做取模操作。使相同key的数据写入topic的同一个分区中,从而确保下游在接收数据时,同一key,收到数据有时间顺序。
作为一种较优的实施方式,本发明实施例中,所述将所述JSON数据组装成MAP格式的数据包括:
对所述JSON数据进行过滤处理,将过滤后的JSON数据组装成MAP格式的数据。
具体的,为了提高计算效率,减少不必要的计算,本发明实施例中,在生成JSON数据后,还可以先对其进行初步筛选,过滤掉暂时不需要处理的数据,然后将需要处理的JSON数据组装成MAP格式的数据,以备后续使用。
作为一种较优的实施方式,本发明实施例中,所述根据所述待处理的目标数据以及所述目标计算参数生成待计算数据包括:
验证所述目标计算参数是否合法,若是,则根据所述待处理的目标数据以及所述目标计算参数生成待计算数据,否则,则将所述目标数据缓存至预设文件系统。
具体的,在生成待计算数据时,会首先验证目标计算参数的合法性,当目标计算参数的合法时,根据上述步骤获取到的待处理的目标数据以及该合法的目标计算参数生成待计算数据,当目标计算参数的不合法时,说明该计算遇到了问题,无法进行计算,此时将目标数据先缓存至预设文件系统,暂停后续计算。作为一种较优的示例,可以将这部分实时数据通过HDFS接口写入磁盘,问题恢复后,再将实时数据取出进行计算并输出,这样设置,可以尽可能的做到输出数据不遗漏,不丢失,从而保证数据满足正确性的同时,能够满足完整性。
作为一种较优的实施方式,本发明实施例中,所述验证所述目标计算参数是否合法包括:
对所述目标计算参数的生成时间以及所述目标计算参数中的预设字段进行验证。
具体的,关于计算参数的合法性校验的过程,可以根据具体业务进行设置。例如,合法性验证可以包括如下:
1、获取的计算参数必须是当天的数据;
2、计算依赖参数记录中有“合法性”字段,该字段用于记录该条计算依赖参数是否合法。在进行合法性验证时,该字段必须为合法。该字段是由上游算法任务检查得出的。
作为一种较优的实施方式,本发明实施例中,当所述目标计算参数合法时,所述根据所述待处理的目标数据以及所述目标计算参数生成待计算数据包括:
查询所述预设文件系统是否存在缓存的目标数据,若存在,将所述缓存的目标数据与所述目标计算参数进行合并生成待计算数据,否则,根据所述待处理的目标数据以及所述目标计算参数生成待计算数据。
具体的,在将待处理的目标数据以及目标计算参数数据合并起来,整合成待计算数据过程中,会判断计算参数是否合法,若合法且预设文件系统(如HDFS文件系统)中有缓存文件,则会读取对应文件和当前合法的计算参数合并,并向后抛送,继续执行,若合法且预设文件系统中没有缓存文件,则正常将上述步骤获取的目标数据与当前合法的计算参数合并起来,整合成待计算数据。具体实施时,由于读取缓存文件可能非常大,可以采取分批读取、整合和下发(把数据传递到下一步操作)的优化过程。
图3是根据一示例性实施例示出的基于Flink的实时计算装置的结构示意图,参照图3所示,该装置包括:
第一生成模块,用于获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间;
参数封装模块,用于对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数;
第二生成模块,用于根据所述待处理的目标数据以及所述目标计算参数生成待计算数据;
数据计算模块,用于按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点。
作为一种较优的实施方式,本发明实施例中,所述第一生成模块包括:
预处理单元,用于获取实时数据,对所述实时数据进行预处理,生成预设格式的数据;
数据抽取单元,用于根据所述生成时间满足预设时间间隔的所述预设格式的数据生成待处理的目标数据。
作为一种较优的实施方式,本发明实施例中,所述预处理单元具体用于:
获取实时数据,对所述实时数据进行序列化处理,生成JSON数据,所述JSON数据包括从所述JSON数据中抽取预设字段生成的目标键;
将所述JSON数据组装成MAP格式的数据。
作为一种较优的实施方式,本发明实施例中,所述第一生成模块还包括:
数据过滤单元,用于对所述JSON数据进行过滤处理;
所述预处理单元还用于将过滤后的JSON数据组装成MAP格式的数据。
作为一种较优的实施方式,本发明实施例中,所述第二生成模块包括:
数据验证单元,用于验证所述目标计算参数是否合法;
数据生成单元,用于根据所述待处理的目标数据以及所述目标计算参数生成待计算数据;
数据缓存单元,用于将所述目标数据缓存至预设文件系统。
作为一种较优的实施方式,本发明实施例中,所述数据验证单元具体用于:
对所述目标计算参数的生成时间以及所述目标计算参数中的预设字段进行验证。
作为一种较优的实施方式,本发明实施例中,所述数据生成单元具体用于:
查询所述预设文件系统是否存在缓存的目标数据,若存在,将所述缓存的目标数据与所述目标计算参数进行合并生成待计算数据,否则,根据所述待处理的目标数据以及所述目标计算参数生成待计算数据。
图4是根据一示例性实施例示出的计算机设备的内部结构示意图,参照图4所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种执行计划的优化方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
作为一种较优的实施方式,本发明实施例中,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间;
对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数;
根据所述待处理的目标数据以及所述目标计算参数生成待计算数据;
按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
获取实时数据,对所述实时数据进行预处理,生成预设格式的数据;
根据所述生成时间满足预设时间间隔的所述预设格式的数据生成待处理的目标数据。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
获取实时数据,对所述实时数据进行序列化处理,生成JSON数据,所述JSON数据包括从所述JSON数据中抽取预设字段生成的目标键;
将所述JSON数据组装成MAP格式的数据。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
对所述JSON数据进行过滤处理,将过滤后的JSON数据组装成MAP格式的数据。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
验证所述目标计算参数是否合法,若是,则根据所述待处理的目标数据以及所述目标计算参数生成待计算数据,否则,则将所述目标数据缓存至预设文件系统。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
对所述目标计算参数的生成时间以及所述目标计算参数中的预设字段进行验证。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
查询所述预设文件系统是否存在缓存的目标数据,若存在,将所述缓存的目标数据与所述目标计算参数进行合并生成待计算数据,否则,根据所述待处理的目标数据以及所述目标计算参数生成待计算数据。
本发明实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间;
对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数;
根据所述待处理的目标数据以及所述目标计算参数生成待计算数据;
按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
获取实时数据,对所述实时数据进行预处理,生成预设格式的数据;
根据所述生成时间满足预设时间间隔的所述预设格式的数据生成待处理的目标数据。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
获取实时数据,对所述实时数据进行序列化处理,生成JSON数据,所述JSON数据包括从所述JSON数据中抽取预设字段生成的目标键;
将所述JSON数据组装成MAP格式的数据。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
对所述JSON数据进行过滤处理,将过滤后的JSON数据组装成MAP格式的数据。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
验证所述目标计算参数是否合法,若是,则根据所述待处理的目标数据以及所述目标计算参数生成待计算数据,否则,则将所述目标数据缓存至预设文件系统。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
对所述目标计算参数的生成时间以及所述目标计算参数中的预设字段进行验证。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
查询所述预设文件系统是否存在缓存的目标数据,若存在,将所述缓存的目标数据与所述目标计算参数进行合并生成待计算数据,否则,根据所述待处理的目标数据以及所述目标计算参数生成待计算数据。
综上所述,本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的基于Flink的实时计算方法、装置、计算机设备及存储介质,通过获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间,对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数,根据所述待处理的目标数据以及所述目标计算参数生成待计算数据,按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点,通过在实时计算过程中,从预设数据库获取计算参数,支持计算参数的动态更新,且不需要调整任务或重启任务,增加了实时计算过程的灵活性,保证了服务的持续性和稳定性;
进一步的,本发明实施例提供的基于Flink的实时计算方法、装置、计算机设备及存储介质,通过验证所述目标计算参数是否合法,若是,则根据所述待处理的目标数据以及所述目标计算参数生成待计算数据,否则,则将所述目标数据缓存至预设文件系统,实现在实时计算过程中,使得计算依赖的实时数据支持容灾,不丢失,在保证数据正确性的同时,保证了数据的完整性。
需要说明的是:上述实施例提供的基于Flink的实时计算装置在触发实时计算业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于Flink的实时计算装置与基于Flink的实时计算方法实施例属于同一构思,即该装置是基于该基于Flink的实时计算方法的,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Flink的实时计算方法,其特征在于,所述方法包括如下步骤:
获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间;
对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数;
根据所述待处理的目标数据以及所述目标计算参数生成待计算数据;
按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点。
2.根据权利要求1所述的基于Flink的实时计算方法,其特征在于,所述获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据包括:
获取实时数据,对所述实时数据进行预处理,生成预设格式的数据;
根据所述生成时间满足预设时间间隔的所述预设格式的数据生成待处理的目标数据。
3.根据权利要求2所述的基于Flink的实时计算方法,其特征在于,所述预设格式包括MAP格式,所述获取实时数据,对所述实时数据进行预处理,生成预设格式的数据包括:
获取实时数据,对所述实时数据进行序列化处理,生成JSON数据,所述JSON数据包括从所述JSON数据中抽取预设字段生成的目标键;
将所述JSON数据组装成MAP格式的数据。
4.根据权利要求3所述的基于Flink的实时计算方法,其特征在于,所述将所述JSON数据组装成MAP格式的数据包括:
对所述JSON数据进行过滤处理,将过滤后的JSON数据组装成MAP格式的数据。
5.根据权利要求1至4任一所述的基于Flink的实时计算方法,其特征在于,所述根据所述待处理的目标数据以及所述目标计算参数生成待计算数据包括:
验证所述目标计算参数是否合法,若是,则根据所述待处理的目标数据以及所述目标计算参数生成待计算数据,否则,则将所述目标数据缓存至预设文件系统。
6.根据权利要求5所述的基于Flink的实时计算方法,其特征在于,所述验证所述目标计算参数是否合法包括:
对所述目标计算参数的生成时间以及所述目标计算参数中的预设字段进行验证。
7.根据权利要求5所述的基于Flink的实时计算方法,其特征在于,当所述目标计算参数合法时,所述根据所述待处理的目标数据以及所述目标计算参数生成待计算数据包括:
查询所述预设文件系统是否存在缓存的目标数据,若存在,将所述缓存的目标数据与所述目标计算参数进行合并生成待计算数据,否则,根据所述待处理的目标数据以及所述目标计算参数生成待计算数据。
8.一种基于Flink的实时计算装置,其特征在于,所述装置包括:
第一生成模块,用于获取实时数据,根据所述实时数据以及预设规则生成待处理的目标数据,所述实时数据包括所述实时数据的生成时间;
参数封装模块,用于对从预设数据库获取到的计算参数进行封装处理,生成预设数据格式的目标计算参数;
第二生成模块,用于根据所述待处理的目标数据以及所述目标计算参数生成待计算数据;
数据计算模块,用于按照预设计算规则对所述待计算数据进行计算处理,并将得到的计算结果发送至目标节点。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110222901.5A CN113064920A (zh) | 2021-02-26 | 2021-02-26 | 基于Flink的实时计算方法、装置、计算机设备及存储介质 |
CA3150487A CA3150487A1 (en) | 2021-02-26 | 2022-02-28 | Flink-based real-time computation method, device, computer apparatus, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110222901.5A CN113064920A (zh) | 2021-02-26 | 2021-02-26 | 基于Flink的实时计算方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113064920A true CN113064920A (zh) | 2021-07-02 |
Family
ID=76559199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110222901.5A Pending CN113064920A (zh) | 2021-02-26 | 2021-02-26 | 基于Flink的实时计算方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113064920A (zh) |
CA (1) | CA3150487A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114371884A (zh) * | 2021-12-31 | 2022-04-19 | 南京星云数字技术有限公司 | Flink计算任务的处理方法、装置、设备和存储介质 |
CN116166709A (zh) * | 2022-11-17 | 2023-05-26 | 北京白龙马云行科技有限公司 | 时长校正方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106980509A (zh) * | 2017-04-05 | 2017-07-25 | 智恒科技股份有限公司 | 计算总线的计算方法和装置 |
CN110647575A (zh) * | 2018-06-08 | 2020-01-03 | 成都信息工程大学 | 基于分布式的异构处理框架构建方法及系统 |
CN111291054A (zh) * | 2020-02-21 | 2020-06-16 | 苏宁云计算有限公司 | 一种数据处理方法、装置、计算机设备和存储介质 |
-
2021
- 2021-02-26 CN CN202110222901.5A patent/CN113064920A/zh active Pending
-
2022
- 2022-02-28 CA CA3150487A patent/CA3150487A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106980509A (zh) * | 2017-04-05 | 2017-07-25 | 智恒科技股份有限公司 | 计算总线的计算方法和装置 |
CN110647575A (zh) * | 2018-06-08 | 2020-01-03 | 成都信息工程大学 | 基于分布式的异构处理框架构建方法及系统 |
CN111291054A (zh) * | 2020-02-21 | 2020-06-16 | 苏宁云计算有限公司 | 一种数据处理方法、装置、计算机设备和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114371884A (zh) * | 2021-12-31 | 2022-04-19 | 南京星云数字技术有限公司 | Flink计算任务的处理方法、装置、设备和存储介质 |
CN116166709A (zh) * | 2022-11-17 | 2023-05-26 | 北京白龙马云行科技有限公司 | 时长校正方法、装置、电子设备和存储介质 |
CN116166709B (zh) * | 2022-11-17 | 2023-10-13 | 北京白龙马云行科技有限公司 | 时长校正方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CA3150487A1 (en) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625452B (zh) | 流量回放方法和系统 | |
CN110750592B (zh) | 数据同步的方法、装置和终端设备 | |
CN113064920A (zh) | 基于Flink的实时计算方法、装置、计算机设备及存储介质 | |
CN108874642A (zh) | Sql性能监控方法、装置、计算机设备及存储介质 | |
CN111694828A (zh) | 数据处理方法、设备、系统及存储介质 | |
CN103577251A (zh) | 基于事件的互联网计算处理系统及方法 | |
CN111966943A (zh) | 流式数据分发方法和系统 | |
CN115442373A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN112084179A (zh) | 一种数据处理的方法、装置、设备及存储介质 | |
CN110727700A (zh) | 多源流式数据整合成事务型流数据的方法及系统 | |
CN113703929B (zh) | 一种任务调度方法、系统、计算设备和存储介质 | |
CN112799644A (zh) | 一种排行榜系统及生成排行榜的方法 | |
CN113407551A (zh) | 数据一致性确定方法、装置、设备及存储介质 | |
CN110580307A (zh) | 一种快速统计的处理方法及装置 | |
CN115658745A (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN114996033A (zh) | 工程数据管理方法、系统、终端及存储介质 | |
CN114371884A (zh) | Flink计算任务的处理方法、装置、设备和存储介质 | |
CN114564286A (zh) | 一种规则引擎告警方法及规则引擎告警系统 | |
CN113342748A (zh) | 日志数据处理方法和装置、分布式计算系统以及存储介质 | |
US10671505B2 (en) | System and method for monitoring service | |
US9235445B2 (en) | Process mapping parallel computing | |
CN112835605A (zh) | 区块链版本灰度升级验证方法、装置及系统 | |
US11989661B1 (en) | Dynamic rules for rules engines | |
US20240098036A1 (en) | Staggered payload relayer for pipelining digital payloads across network services | |
US9063826B2 (en) | Process mapping in parallel computing |
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: 20210702 |