CN111124650A - 一种流式数据处理方法及装置 - Google Patents
一种流式数据处理方法及装置 Download PDFInfo
- Publication number
- CN111124650A CN111124650A CN201911369508.8A CN201911369508A CN111124650A CN 111124650 A CN111124650 A CN 111124650A CN 201911369508 A CN201911369508 A CN 201911369508A CN 111124650 A CN111124650 A CN 111124650A
- Authority
- CN
- China
- Prior art keywords
- data
- batch
- target
- time
- time period
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 230000000295 complement effect Effects 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000002159 abnormal effect Effects 0.000 abstract description 8
- 238000007405 data analysis Methods 0.000 abstract description 6
- 238000005192 partition Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种流式数据处理方法和装置,在流式计算***进入正常状态时,通过主程序对实时数据进行处理,并且记录处理的实时数据对应的时间段,然后可以利用补数程序对实时数据对应的时间段进行扫描确定其对应的需要处理的历史数据的目标批次数据,然后对其进行处理。实现了历史数据处理与实时数据处理分开处理,资源隔离,防止互相抢占计算资源或者异常传播。从而实现了对历史数据的有效处理,提升了数据分析的准确性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种流式计算***的流式数据处理方法及装置。
背景技术
在云计算环境下,数据量增长较快,对各类数据的挖掘和分析可以为业务***带来有益的价值数据。大数据分析场景需要进行数据统计,即从多重维度出具统计结果,为后续提供更加清晰简洁的分析视图或度量指标。其中,基于流式计算的数据处理引擎可以从消息中间件(例如,Kafka)中获取一段时间的准实时数据进行计算。Spark的SparkStreaming正是目前流式计算中一种广泛使用的计算引擎。
但是,基于SparkStreaming的应用版本在版本升级或异常时会导致无法正常处理数据,而这段时间内的数据就会积累,在应用版本恢复后,就会存在历史数据,在现有处理方式中无法实现对这一部分数据的有效处理,使得数据处理结果不准确,影响后续对数据分析的准确性。
发明内容
针对于上述问题,本发明提供一种流式数据处理方法及装置,实现了对历史数据的有效处理,提升了数据分析的准确性。
为了实现上述目的,本发明提供了如下技术方案:
一种流式数据处理方法,所述方法应用于流式计算***,所述流式计算***包括主程序和补数程序,当执行所述主程序时,对实时数据进行处理,当执行所述补数程序时对历史数据进行处理,该方法包括:
响应于所述主程序启动,记录所述主程序处理的所有实时数据对应的时间段,所述主程序启动表征所述流式计算***进入正常数据处理状态;
通过所述补数程序对所述实时数据对应的时间段进行扫描,确定补数时间段;
对所述补数时间段内的数据进行批次拆分,得到目标批次;
依据每个批次的数据在消息中间件的消息偏移量,计算所述目标批次对应的批次时间段内的目标消息偏移量;
根据所述目标消息偏移量确定目标历史数据,控制所述补数程序对所述目标历史数据进行处理,得到第一数据处理结果;
根据所述主程序对实时数据处理得到的第二数据处理结果和所述第一数据处理结果,生成数据流式处理结果。
可选地,所述记录所述主程序处理的所有实时数据对应的时间段,包括:
控制所述主程序运行,使得所述主程序查找上一次成功处理的数据的批次时间,并记录再次启动时实时数据对应的处理时间段内每个批次的数据的起始消息和结束消息在消息中间件的消息偏移量;
将所述消息偏移量存储到预创建的数据表。
可选地,所述通过所述补数程序对所述历史数据对应的时间段进行扫描,确定补数时间段,包括:
获取所述历史数据对应的时间段的各个批次数据对应的处理时间;
判断相邻两个批次的处理时间是否超过预设时间阈值,如果是,且下一批次的数据不在目标状态,将所述相邻两个批次的时间段确定为补数时间段;所述目标状态为补数中或者补数完成。
可选地,所述根据所述目标消息偏移量确定目标历史数据,控制所述补数程序对所述目标历史数据进行处理,得到第一数据处理结果,包括:
若所述目标频次包括多个批次数据,则控制所述补数程序启动多线程并发处理模式,对所述目标历史数据进行处理,得到第一数据处理结果。
可选地,所述对所述补数时间段内的数据进行批次拆分,得到目标批次,包括:
对所述补数时间段内的数据进行批次拆分,得到目标批次;
获取各个所述目标批次对应的批次时间段,使得执行所述补数程序在所述批次时间段内对与之对应的目标批次的数据进行处理。
一种流式数据处理装置,所述装置应用于流式计算***,所述流式计算***包括主程序和补数程序,当执行所述主程序时,对实时数据进行处理,当执行所述补数程序时对历史数据进行处理,该装置包括:
获取单元,用于响应于所述主程序启动,记录所述主程序处理的所有实时数据对应的时间段,所述主程序启动表征所述流式计算***进入正常数据处理状态;
扫描单元,用于通过所述补数程序对所述实时数据对应的时间段进行扫描,确定补数时间段;
拆分单元,用于对所述补数时间段内的数据进行批次拆分,得到目标批次;
计算单元,用于依据每个批次的数据在消息中间件的消息偏移量,计算所述目标批次对应的批次时间段内的目标消息偏移量;
控制单元,用于根据所述目标消息偏移量确定目标历史数据,控制所述补数程序对所述目标历史数据进行处理,得到第一数据处理结果;
生成单元,用于根据所述主程序对实时数据处理得到的第二数据处理结果和所述第一数据处理结果,生成数据流式处理结果。
可选地,所述获取单元包括:
第一控制子单元,用于控制所述主程序运行,使得所述主程序查找上一次成功处理的数据的批次时间,并记录再次启动时实时数据对应的处理时间段内每个批次的数据的起始消息和结束消息在消息中间件的消息偏移量;
存储子单元,用于将所述消息偏移量存储到预创建的数据表。
可选地,所述扫描单元包括:
第一获取子单元,用于获取所述历史数据对应的时间段的各个批次数据对应的处理时间;
判断子单元,用于判断相邻两个批次的处理时间是否超过预设时间阈值,如果是,且下一批次的数据不在目标状态,将所述相邻两个批次的时间段确定为补数时间段;所述目标状态为补数中或者补数完成。
可选地,所述控制单元具体用于:
若所述目标频次包括多个批次数据,则控制所述补数程序启动多线程并发处理模式,对所述目标历史数据进行处理,得到第一数据处理结果。
可选地,所述拆分单元包括:
拆分子单元,用于对所述补数时间段内的数据进行批次拆分,得到目标批次;
第二获取子单元,用于获取各个所述目标批次对应的批次时间段,使得执行所述补数程序在所述批次时间段内对与之对应的目标批次的数据进行处理。
相较于现有技术,本发明提供了一种流式数据处理方法和装置,在流式计算***进入正常状态时,通过主程序对实时数据进行处理;并且记录处理的实时数据对应的时间段,然后可以利用补数程序对实时数据对应的时间段进行扫描确定其对应的需要处理的历史数据的目标批次数据,然后对其进行处理。实现了历史数据处理与实时数据处理分开处理,资源隔离,防止互相抢占计算资源或者异常传播。从而实现了对历史数据的有效处理,提升了数据分析的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种流式数据处理方法的流程示意图;
图2为本发明实施例提供一种流式数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
为了便于对本发明实施例的理解,现将本发明实施例中用到的术语进行解释。
Spark:是一种为处理大规模数据而设计的计算引擎。
流式计算:是对数据流进行实时计算。
SparkStreaming是基于Spark的流式计算引擎。
Kafka:是一种分布式消息中间件。
Topic:是消息中间件中使用一个类别属性来划分数据。
分区:是Topic中数据分割的更小单元。
本发明实施例提供了一种流式数据处理方法,该方法应用于流式计算***,在本发明中的流式计算***区别于现有技术中的只有一套程序执行流式计算,其包括主程序和补数程序,当执行所述主程序时,对实时数据进行处理,当执行所述补数程序时对历史数据进行处理,参见图1,该方法可以包括以下步骤:
S101、响应于所述主程序启动,记录所述主程序处理的所有实时数据对应的时间段。
所述主程序启动表征所述流式计算***进入正常数据处理状态。以SparkStreaming为例,其是基于Spark的流式计算引擎。当基于SparkStreaming的应用版本在版本升级或者异常时会导致无法正常处理数据,这时则无法启动主程序。在恢复后会通过启动主程序,来查找最后一次对数据处理成功的批次时间。
具体的,通过启动主程序查询存储库中最后通过流式计算入库数据的批次时间A,将该批次时间作为主程序最后一次处理成功的批次,在时间A到主程序启动时间B之间的间隔都作为历史数据所在时间段,记为历史数据对应的时间段。
将批次时间A在数据库中的下一批处理批次属性更改成后启动时间B的批次,例如,最后入库数据的批次时间为当天9:00,主程序启动时间为10:00,则9:00到10:00之间的数据都视为历史数据。
S102、通过所述补数程序对所述实时数据对应的时间段进行扫描,确定补数时间段。
在本申请实施例中可以通过控制所述主程序运行,使得所述主程序在实时数据对应的处理时间段内记录每个批次的数据的起始消息和结束消息在消息中间件的消息偏移量;将所述消息偏移量存储到预创建的数据表。
该过程可以包括:
主程序记录每个批次的起始消息和结束消息在Kafka中的偏移量,存储到数据表Table1中。需要区分不同Kafka的不同Topic下不同分区。记录信息包含批次时间、Kafka集群标识、Topic、分区编号、起始消息的偏移量、结束消息的偏移量、批次状态、下一个处理批次。主程序支持多个Kafka数据的联合处理,且每个Kafka的Topic名称以及分区数量都可以不同。其中下一个批处理批次属性在本批次***时不维护,在下一个批次启动时通过更新维护。
控制补数程序运行,对实时数据对应的时间段进行扫描,确定补数时间段。即获取所述历史数据对应的时间段的各个批次数据对应的处理时间;判断相邻两个批次的处理时间是否超过预设时间阈值,如果是,且下一批次的数据不在目标状态,将所述相邻两个批次的时间段确定为补数时间段;所述目标状态为补数中或者补数完成。
S103、对所述补数时间段内的数据进行批次拆分,得到目标批次;
S104、依据每个批次的数据在消息中间件的消息偏移量,计算所述目标批次对应的批次时间段内的目标消息偏移量;
S105、根据所述目标消息偏移量确定目标历史数据,控制所述补数程序对所述目标历史数据进行处理,得到第一数据处理结果。
需要说明的,在处理过程中对所述补数时间段内的数据进行批次拆分,得到目标批次;获取各个所述目标批次对应的批次时间段,使得执行所述补数程序在所述批次时间段内对与之对应的目标批次的数据进行处理。若所述目标频次包括多个批次数据,则控制所述补数程序启动多线程并发处理模式,对所述目标历史数据进行处理,得到第一数据处理结果。
具体的,补数程序获取需要处理的历史数据时间段即确定补数时间段。通过控制补数程序定时扫描数据表Table1,检查每个批次的时间T1与下一个批次处理时间T2相差是否超过一定时间(例如2分钟),且下一批次状态不是补数中或者补数完成。如果是,则认为T1-T2时间段内的历史数据需要处理,进入该时间段内历史数据的补数处理,如果多个批次均满足条件,则启动多线程并发处理多个历史数据时间段。单个历史数据时间段启动补数处理,方法为:获取开始时间T1和结束时间T2,根据补数程序的批次间隔(例如10s),逐个划分批次时间段,例如T1为09:00,T2为10:00,则批次依次为09:00:00-09:00:10,09:00:10-09:00:20,09:00:20-09:00:20,…。轮询每个批次,在每个批次内部进行如下处理。
举例说明:
获取批次的开始时间和结束时间,轮询多个kafka服务器下各topic的多分区,调用Kafka接口获取该时间段内消息的起始偏移量offset1和结束偏移量offset2。如果为本时间段第一个批次,则获取批次时间A的结束偏移量offset_A,如果offset_A小于offset1,则offset1=offset_A;如果为本时间段最后一个批次,则获取主程序启动时间B批次的开始偏移量offset_B,如果offset_B大于offset2,则offset2=offset_B;
从Kafka中读取offset1到offset2的数据,进行业务逻辑处理,如果历史数据在业务逻辑上与准实时数据有差异,在本部分也需要调整。
S106、根据所述主程序对实时数据处理得到的第二数据处理结果和所述第一数据处理结果,生成数据流式处理结果。
在本发明中流式计算***中的启动程序分为两部分。第一部分处理准实时数据,称为主程序。第二部分处理历史数据,称为补数程序。两大程序有独立启动方法,分别分配不同的Spark资源,独立启动和维护,防止互相抢占计算资源或者异常传播。主程序启动后主动查找最后一次处理成功的批次时间,在每个批次处理时都记录起始消息和结束消息在Kafka中的偏移量,补数程序定时扫描需要处理的历史数据时间段,针对每个批次计算开始和结束的消息偏移量,并从Kafka中精准消费这段范围内的消息进行业务处理。
从而在本发明实施例中可以对流式计算***异常时产生的未处理的历史数据进行处理,即整个流式计算***处理后的数据为主程序对实时数据处理得到的第二数据处理结果和补数程序对历史数据进行处理后得到的第一数据处理结果。实现了准确处理消息中间件中的历史数据,同时不影响正常准实时数据的处理。并且,计算历史数据时间段的起始时间采用查询存储库结果,更加准确;历史数据处理与准实时数据处理分开处理,隔离资源,防止互相抢占计算资源或者异常传播;历史数据处理的批次时间准确,不会造成统计错误;支持历史数据处理逻辑与准实时处理逻辑存在差异。
对应的,在本发明实施例还提供了一种流式数据处理装置,该装置应用于流式计算***,所述流式计算***包括主程序和补数程序,当执行所述主程序时,对实时数据进行处理,当执行所述补数程序时对历史数据进行处理。
该装置包括:
获取单元10,用于响应于所述主程序启动,记录所述主程序处理的所有实时数据对应的时间段,所述主程序启动表征所述流式计算***进入正常数据处理状态;
扫描单元20,用于通过所述补数程序对所述实时数据对应的时间段进行扫描,确定补数时间段;
拆分单元30,用于对所述补数时间段内的数据进行批次拆分,得到目标批次;
计算单元40,用于依据每个批次的数据在消息中间件的消息偏移量,计算所述目标批次对应的批次时间段内的目标消息偏移量;
控制单元50,用于根据所述目标消息偏移量确定目标历史数据,控制所述补数程序对所述目标历史数据进行处理,得到第一数据处理结果;
生成单元60,用于根据所述主程序对实时数据处理得到的第二数据处理结果和所述第一数据处理结果,生成数据流式处理结果。
在上述实施例的基础上,所述获取单元包括:
第一控制子单元,用于控制所述主程序运行,使得所述主程序查找上一次成功处理的数据的批次时间,并记录再次启动时实时数据对应的处理时间段内每个批次的数据的起始消息和结束消息在消息中间件的消息偏移量;
存储子单元,用于将所述消息偏移量存储到预创建的数据表。
在上述实施例的基础上,所述扫描单元包括:
第一获取子单元,用于获取所述历史数据对应的时间段的各个批次数据对应的处理时间;
判断子单元,用于判断相邻两个批次的处理时间是否超过预设时间阈值,如果是,且下一批次的数据不在目标状态,将所述相邻两个批次的时间段确定为补数时间段;所述目标状态为补数中或者补数完成。
在上述实施例的基础上,所述控制单元具体用于:
若所述目标频次包括多个批次数据,则控制所述补数程序启动多线程并发处理模式,对所述目标历史数据进行处理,得到第一数据处理结果。
在上述实施例的基础上,所述拆分单元包括:
拆分子单元,用于对所述补数时间段内的数据进行批次拆分,得到目标批次;
第二获取子单元,用于获取各个所述目标批次对应的批次时间段,使得执行所述补数程序在所述批次时间段内对与之对应的目标批次的数据进行处理。
本发明提供了一种流式数据处理装置,在流式计算***进入正常状态时,通过主程序对实时数据进行处理;并且记录处理的实时数据对应的时间段,然后可以利用补数程序对实时数据对应的时间段进行扫描确定其对应的需要处理的历史数据的目标批次数据,然后对其进行处理。实现了历史数据处理与实时数据处理分开处理,资源隔离,防止互相抢占计算资源或者异常传播。从而实现了对历史数据的有效处理,提升了数据分析的准确性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种流式数据处理方法,其特征在于,所述方法应用于流式计算***,所述流式计算***包括主程序和补数程序,当执行所述主程序时,对实时数据进行处理,当执行所述补数程序时对历史数据进行处理,该方法包括:
响应于所述主程序启动,记录所述主程序处理的所有实时数据对应的时间段,所述主程序启动表征所述流式计算***进入正常数据处理状态;
通过所述补数程序对所述实时数据对应的时间段进行扫描,确定补数时间段;
对所述补数时间段内的数据进行批次拆分,得到目标批次;
依据每个批次的数据在消息中间件的消息偏移量,计算所述目标批次对应的批次时间段内的目标消息偏移量;
根据所述目标消息偏移量确定目标历史数据,控制所述补数程序对所述目标历史数据进行处理,得到第一数据处理结果;
根据所述主程序对实时数据处理得到的第二数据处理结果和所述第一数据处理结果,生成数据流式处理结果。
2.根据权利要求1所述的方法,其特征在于,所述记录所述主程序处理的所有实时数据对应的时间段,包括:
控制所述主程序运行,使得所述主程序查找上一次成功处理的数据的批次时间,并记录再次启动时实时数据对应的处理时间段内每个批次的数据的起始消息和结束消息在消息中间件的消息偏移量;
将所述消息偏移量存储到预创建的数据表。
3.根据权利要求1所述的方法,其特征在于,所述通过所述补数程序对所述历史数据对应的时间段进行扫描,确定补数时间段,包括:
获取所述历史数据对应的时间段的各个批次数据对应的处理时间;
判断相邻两个批次的处理时间是否超过预设时间阈值,如果是,且下一批次的数据不在目标状态,将所述相邻两个批次的时间段确定为补数时间段;所述目标状态为补数中或者补数完成。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标消息偏移量确定目标历史数据,控制所述补数程序对所述目标历史数据进行处理,得到第一数据处理结果,包括:
若所述目标频次包括多个批次数据,则控制所述补数程序启动多线程并发处理模式,对所述目标历史数据进行处理,得到第一数据处理结果。
5.根据权利要求1所述的方法,其特征在于,所述对所述补数时间段内的数据进行批次拆分,得到目标批次,包括:
对所述补数时间段内的数据进行批次拆分,得到目标批次;
获取各个所述目标批次对应的批次时间段,使得执行所述补数程序在所述批次时间段内对与之对应的目标批次的数据进行处理。
6.一种流式数据处理装置,其特征在于,所述装置应用于流式计算***,所述流式计算***包括主程序和补数程序,当执行所述主程序时,对实时数据进行处理,当执行所述补数程序时对历史数据进行处理,该装置包括:
获取单元,用于响应于所述主程序启动,记录所述主程序处理的所有实时数据对应的时间段,所述主程序启动表征所述流式计算***进入正常数据处理状态;
扫描单元,用于通过所述补数程序对所述实时数据对应的时间段进行扫描,确定补数时间段;
拆分单元,用于对所述补数时间段内的数据进行批次拆分,得到目标批次;
计算单元,用于依据每个批次的数据在消息中间件的消息偏移量,计算所述目标批次对应的批次时间段内的目标消息偏移量;
控制单元,用于根据所述目标消息偏移量确定目标历史数据,控制所述补数程序对所述目标历史数据进行处理,得到第一数据处理结果;
生成单元,用于根据所述主程序对实时数据处理得到的第二数据处理结果和所述第一数据处理结果,生成数据流式处理结果。
7.根据权利要求6所述的装置,其特征在于,所述获取单元包括:
第一控制子单元,用于控制所述主程序运行,使得所述主程序查找上一次成功处理的数据的批次时间,并记录再次启动时实时数据对应的处理时间段内每个批次的数据的起始消息和结束消息在消息中间件的消息偏移量;
存储子单元,用于将所述消息偏移量存储到预创建的数据表。
8.根据权利要求6所述的装置,其特征在于,所述扫描单元包括:
第一获取子单元,用于获取所述历史数据对应的时间段的各个批次数据对应的处理时间;
判断子单元,用于判断相邻两个批次的处理时间是否超过预设时间阈值,如果是,且下一批次的数据不在目标状态,将所述相邻两个批次的时间段确定为补数时间段;所述目标状态为补数中或者补数完成。
9.根据权利要求8所述的装置,其特征在于,所述控制单元具体用于:
若所述目标频次包括多个批次数据,则控制所述补数程序启动多线程并发处理模式,对所述目标历史数据进行处理,得到第一数据处理结果。
10.根据权利要求6所述的装置,其特征在于,所述拆分单元包括:
拆分子单元,用于对所述补数时间段内的数据进行批次拆分,得到目标批次;
第二获取子单元,用于获取各个所述目标批次对应的批次时间段,使得执行所述补数程序在所述批次时间段内对与之对应的目标批次的数据进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911369508.8A CN111124650B (zh) | 2019-12-26 | 2019-12-26 | 一种流式数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911369508.8A CN111124650B (zh) | 2019-12-26 | 2019-12-26 | 一种流式数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124650A true CN111124650A (zh) | 2020-05-08 |
CN111124650B CN111124650B (zh) | 2023-10-24 |
Family
ID=70503407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911369508.8A Active CN111124650B (zh) | 2019-12-26 | 2019-12-26 | 一种流式数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124650B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094241A (zh) * | 2021-05-07 | 2021-07-09 | 北京京东振世信息技术有限公司 | 一种实时程序准确性的确定方法、装置、设备及存储介质 |
CN113515374A (zh) * | 2021-05-18 | 2021-10-19 | 中国工商银行股份有限公司 | 数据处理方法及装置、电子设备和计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776855A (zh) * | 2016-11-29 | 2017-05-31 | 上海轻维软件有限公司 | 基于Spark Streaming读取Kafka数据的处理方法 |
CN107870763A (zh) * | 2017-11-27 | 2018-04-03 | 深圳市华成峰科技有限公司 | 用于创建海量数据实时分拣***的方法及其装置 |
CN108108126A (zh) * | 2017-12-15 | 2018-06-01 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置及设备 |
CN108509299A (zh) * | 2018-03-29 | 2018-09-07 | 努比亚技术有限公司 | 消息处理方法、设备及计算机可读存储介质 |
CN109634784A (zh) * | 2018-12-24 | 2019-04-16 | 康成投资(中国)有限公司 | Spark应用程序控制方法及控制装置 |
US20190182188A1 (en) * | 2017-12-13 | 2019-06-13 | Chicago Mercantile Exchange Inc. | Streaming Platform Reader |
CN110490229A (zh) * | 2019-07-16 | 2019-11-22 | 昆明理工大学 | 一种基于spark和聚类算法的电能表检定误差诊断方法 |
-
2019
- 2019-12-26 CN CN201911369508.8A patent/CN111124650B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776855A (zh) * | 2016-11-29 | 2017-05-31 | 上海轻维软件有限公司 | 基于Spark Streaming读取Kafka数据的处理方法 |
CN107870763A (zh) * | 2017-11-27 | 2018-04-03 | 深圳市华成峰科技有限公司 | 用于创建海量数据实时分拣***的方法及其装置 |
US20190182188A1 (en) * | 2017-12-13 | 2019-06-13 | Chicago Mercantile Exchange Inc. | Streaming Platform Reader |
CN108108126A (zh) * | 2017-12-15 | 2018-06-01 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置及设备 |
CN108509299A (zh) * | 2018-03-29 | 2018-09-07 | 努比亚技术有限公司 | 消息处理方法、设备及计算机可读存储介质 |
CN109634784A (zh) * | 2018-12-24 | 2019-04-16 | 康成投资(中国)有限公司 | Spark应用程序控制方法及控制装置 |
CN110490229A (zh) * | 2019-07-16 | 2019-11-22 | 昆明理工大学 | 一种基于spark和聚类算法的电能表检定误差诊断方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094241A (zh) * | 2021-05-07 | 2021-07-09 | 北京京东振世信息技术有限公司 | 一种实时程序准确性的确定方法、装置、设备及存储介质 |
CN113094241B (zh) * | 2021-05-07 | 2023-09-05 | 北京京东振世信息技术有限公司 | 一种实时程序准确性的确定方法、装置、设备及存储介质 |
CN113515374A (zh) * | 2021-05-18 | 2021-10-19 | 中国工商银行股份有限公司 | 数据处理方法及装置、电子设备和计算机可读存储介质 |
CN113515374B (zh) * | 2021-05-18 | 2024-02-27 | 中国工商银行股份有限公司 | 数据处理方法及装置、电子设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111124650B (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111274095B (zh) | 日志数据处理方法、装置、设备及计算机可读存储介质 | |
CN109634970B (zh) | 表数据同步方法、设备、存储介质及装置 | |
CN107748790B (zh) | 一种线上服务***、数据加载方法、装置及设备 | |
CN112073393B (zh) | 基于云计算和用户行为分析的流量检测方法 | |
CN107688626B (zh) | 慢查询日志处理方法、装置及电子设备 | |
CN112434039A (zh) | 数据的存储方法、装置、存储介质以及电子装置 | |
EP4068118A1 (en) | Information pushing system, method and apparatus, device and storage medium | |
JP2020057416A (ja) | 分散データベースにおけるデータブロックを処理する方法およびデバイス | |
CN111124650A (zh) | 一种流式数据处理方法及装置 | |
CN114791927A (zh) | 一种数据分析方法和装置 | |
CN113918438A (zh) | 服务器异常的检测方法、装置、服务器及存储介质 | |
CN110442439B (zh) | 任务进程处理方法、装置和计算机设备 | |
CN104317820B (zh) | 报表的统计方法和装置 | |
CN111124891A (zh) | 接入状态的检测方法和装置、存储介质及电子装置 | |
CN116132630A (zh) | 一种视频处理方法、装置、设备及存储介质 | |
CN111291127B (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
CN114996080A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN112764988A (zh) | 一种数据分段采集方法及装置 | |
CN109982143B (zh) | 一种确定视频播放时延的方法、装置、介质及设备 | |
CN106777010B (zh) | 日志的提供方法、装置以及日志的获取方法、装置和*** | |
CN117951144A (zh) | 数据同步校验方法及装置、电子设备、存储介质 | |
CN114936212B (zh) | 一种审计数据同步处理方法和装置 | |
CN114969186A (zh) | 自动化测试方法、装置及计算机存储介质 | |
CN116501644A (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 |