CN110297602A - 一种实时数据的处理方法及装置 - Google Patents
一种实时数据的处理方法及装置 Download PDFInfo
- Publication number
- CN110297602A CN110297602A CN201910515532.1A CN201910515532A CN110297602A CN 110297602 A CN110297602 A CN 110297602A CN 201910515532 A CN201910515532 A CN 201910515532A CN 110297602 A CN110297602 A CN 110297602A
- Authority
- CN
- China
- Prior art keywords
- time data
- real time
- data
- cycle
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种实时数据的处理方法及装置。该方法中:判断实时数据的生成时间是否位于当前处理周期对应的允许处理范围(X1,X2]或[X1,X2)内;X1早于该处理周期的起始点,X2早于该处理周期的结束点;如果是,将实时数据存储到第一缓冲队列;当生成时间不小于X2时,将实时数据存到第二缓冲队列;待当前处理周期结束,将第一缓冲队列的实时数据存入当前处理周期对应的数据分区,清空第一缓冲队列,将第二缓冲队列的实时数据复制至第一缓冲队列,进入下一处理周期。本发明实施例提供的实时数据的处理方法,可以避免在对实时数据按照数据分区进行处理的阶段中发生处理顺序混乱的现象。
Description
技术领域
本发明涉及数据存储技术领域,特别是涉及一种实时数据的处理方法及装置。
背景技术
实时数据是指对数据的生成、收集以及处理,均具有较高的时效性要求的数据。由于实时数据的数据量通常较为庞大,且对实时数据的处理过程通常较为复杂,因此,每生成一条实时数据,就实时地对该条实时数据进行收集和处理,并不容易实现。针对这一问题,现有技术将对实时数据的处理过程分为两个阶段。在第一阶段,按处理周期存储实时数据,每一处理周期对应一个用于存储实时数据的数据分区,具体的,将在每个处理周期里收集到的实时数据存储到对应的数据分区中。在第二阶段,按照数据分区所对应的处理周期的先后顺序,对实时数据进行处理。
然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
第一阶段中,由于数据传输路径不稳定等因素的影响,对实时数据进行收集时,存在时间上的延迟,且每条实时数据的延迟时间是不一定的。这可能使得生成时间较早的实时数据,因延迟到达而被收集到较为靠后的处理周期对应的数据分区中。这样,在第二阶段中,该条实时数据被处理的时间就会被延迟,而生成时间比该实时数据晚的实时数据被处理的时间,反而早于该实时数据被处理的时间。
因此,在延迟到达的实时数据也可以被有效处理的前提下,如何避免在对实时数据按照数据分区进行处理的阶段中,发生处理顺序混乱的现象,是一个亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种实时数据的处理方法及装置,以避免在对实时数据按照数据分区对进行处理的阶段中,发生处理顺序混乱的现象。具体技术方案如下:
一种实时数据的处理方法,所述实时数据被按照预定的处理周期进行存储,每一处理周期对应一个用于存储实时数据的数据分区;所述方法包括:
当收集到每一条实时数据时,确定该实时数据的生成时间;
判断所述生成时间是否位于当前处理周期对应的允许处理范围内;其中,任一处理周期对应的允许处理范围为(X1,X2]或[X1,X2),X1为该处理周期的起始点之前预设时长的时间点,X2为该处理周期的结束点之前预设时长的时间点,该处理周期的下一个处理周期对应的允许处理范围的X1的值等于该处理周期对应的允许处理范围的X2的值;
当判断结果为是时,将该实时数据存储到第一缓冲队列中;
当判断结果为否时,判断所述生成时间是否不小于当前处理周期对应的允许处理范围的X2;如果是,将该实时数据存储到第二缓冲队列中;
当检测到当前处理周期结束时,将所述第一缓冲队列中的实时数据,均存入当前处理周期对应的数据分区中,清空所述第一缓冲队列,并将所述第二缓冲队列中的实时数据复制至所述第一缓冲队列中,进入下一个处理周期。
可选地,所述方法还包括:
当所述生成时间不大于当前处理周期对应的允许处理范围的X1时,将该实时数据丢弃。
可选地,所述当收集到每一条实时数据时,确定该实时数据的生成时间,包括:
当收集到每一条实时数据时,确定该实时数据的日志生成时间,将所确定的日志生成时间作为该实时数据的生成时间。
可选地,所述实时数据,包括:视频点播服务类型的实时数据。
一种实时数据的处理装置,所述实时数据被按照预定的处理周期进行存储,每一处理周期对应一个用于存储实时数据的数据分区;所述装置包括:
确定模块,用于当收集到每一条实时数据时,确定该实时数据的生成时间;
第一判断模块,用于判断所述生成时间是否位于当前处理周期对应的允许处理范围内;
第一存储模块,用于在所述判断模块的判断结果为是时,将该实时数据存储到第一缓冲队列中;其中,任一处理周期对应的允许处理范围为(X1,X2]或[X1,X2),X1为该处理周期的起始点之前预设时长的时间点,X2为该处理周期的结束点之前预设时长的时间点,该处理周期的下一个处理周期对应的允许处理范围的X1的值等于该处理周期对应的允许处理范围的X2的值;
第二判断模块,用于在所述第一判断模块的判断结果为否时,判断所述生成时间是否不小于当前处理周期对应的允许处理范围的X2;
第二存储模块,用于在所述第二判断模块的判断结果为是时,将该实时数据存储到第二缓冲队列中;
第三存储模块,用于当检测到当前处理周期结束时,将所述第一缓冲队列中的实时数据,均存入当前处理周期对应的数据分区中,清空所述第一缓冲队列,并将所述第二缓冲队列中的实时数据复制至所述第一缓冲队列中,进入下一个处理周期。
可选地,所述装置还包括:丢弃模块;
所述丢弃模块,用于在所述生成时间不大于当前处理周期对应的允许处理范围的X1时,将该实时数据丢弃。
可选地,所述确定模块,具体用于:
当收集到每一条实时数据时,确定该实时数据的日志生成时间,将所确定的日志生成时间作为该实时数据的生成时间。
可选地,所述实时数据,包括:视频点播服务类型的实时数据。
一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的实时数据的处理方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的实时数据的处理方法。
在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的实时数据的处理方法。
本发明实施例提供的实时数据的处理方法中,以实时数据的生成时间为判断准则来将实时数据存储到相应的数据分区中,使得在前处理周期对应数据分区的各个实时数据的生成时间,早于在后处理周期对应数据分区中各个实时数据的生成时间;并且,设置了起止点均比处理周期早预设时长的允许处理范围,以及第二缓存队列的数据到第一缓存队列的数据转存,这样,为实时数据传输预留可接受的延迟时间,保证发生延迟的实时数据不丢失且放置到合适的数据分区中。可见,通过本方案,可以保证在延迟到达的实时数据也可以被有效处理的前提下,避免在对实时数据按照数据分区进行处理的阶段中,发生处理顺序混乱的现象。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种实时数据的处理方法的流程图;
图2为图1所示的一种实时数据的处理方法中,各个处理周期与该处理周期对应的允许处理范围在时间上的先后关系的示意图;
图3为本发明实施例提供的一种实时数据的处理装置的结构示意图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为了在对实时数据按照数据分区对进行处理的阶段中,避免发生处理顺序混乱的现象,本发明实施例提供了一种实时数据的处理方法及装置。
本发明实施例提供的一种实时数据的处理方法的执行主体,可以为一种实时数据的处理装置,该装置可以用于电子设备中。在具体应用中,该电子设备可以为服务器,也可以为终端设备,在具体应用中,该终端设备可以为移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备,或个人数字助理等。
本发明实施例中,实时数据被按照预定的处理周期进行存储,每一处理周期对应一个用于存储实时数据的数据分区。其中,在每个处理周期中,将实时数据存入数据分区中的具体实现方式,可参见下文所示的各个实施例;而对于实时数据被存储进数据分区之后,如何对数据分区中的实时数据进行处理,本发明不做限定。
首先,对本发明实施例提供的一种实时数据的处理方法进行详细描述。
如图1所示,本发明实施例提供的一种实时数据的处理方法,可以包括以下步骤:
S1:当收集到每一条实时数据时,确定该实时数据的生成时间。
这里,当收集到每一条实时数据时,确定该实时数据的生成时间的具体实现方式存在多种。示例性的,在一种实现方式中,当收集到每一条实时数据时,确定该实时数据的生成时间,可以包括:
当收集到每一条实时数据时,确定该实时数据的日志生成时间,将所确定的日志生成时间作为该实时数据的生成时间。
S2:判断该生成时间是否位于当前处理周期对应的允许处理范围内;其中,任一处理周期对应的允许处理范围为(X1,X2]或[X1,X2),X1为该处理周期的起始点之前预设时长的时间点,X2为该处理周期的结束点之前预设时长的时间点,该处理周期的下一个处理周期对应的允许处理范围的X1的值等于该处理周期对应的允许处理范围的X2的值。
可以理解的是,在允许处理范围为(X1,X2]的情况中,当实时数据的生成时间等于X1时,该实时数据的生成时间并不位于允许处理范围(X1,X2]内;当实时数据的生成时间大于X1且小于X2时,该实时数据的生成时间位于允许处理范围(X1,X2]内;当实时数据的生成时间等于X2时,该实时数据的生成时间位于允许处理范围(X1,X2]内。在允许处理范围为[X1,X2)的情况中,当实时数据的生成时间等于X1时,该实时数据的生成时间位于允许处理范围[X1,X2)内;当实时数据的生成时间大于X1且小于X2时,该实时数据的生成时间位于允许处理范围[X1,X2)内;当实时数据的生成时间等于X2时,该实时数据的生成时间不位于允许处理范围[X1,X2)内。
可以理解的是,每个处理周期对应的允许处理范围的起始点比该处理周期的起始点早一段预设时长,每个处理周期对应的允许处理范围的结束点,比该处理周期的结束点早一段预设时长。也就是说,每个处理周期的起止点均比该处理周期对应的允许处理范围的起止点落后一段预设时长。并且,各个处理周期在时间上是连续的。相应的,各个处理周期对应的允许处理范围在时间上也是连续的。
本发明实施例中,各个处理周期的周长与对应的允许处理范围的时长可以相等。也就是说,每个处理周期均比该处理周期对应的允许处理范围晚开始一段预设时长。这样,可以保证实时数据的处理过程自开始到结束,各个处理周期均与对应的允许处理范围均一一对应,且各个处理周期比对应的允许处理范围延迟的时间均相等。可以理解的是,如果不这样设定,随着时间的推移,就会出现处理周期与对应的允许处理范围在时间上对不上的情况。例如,有的处理周期,可以处理延迟20毫秒到达的实时数据,而有的处理周期,则可以处理延迟100毫秒到达的实时数据。更甚的,还会出现有的处理周期对应的处理范围的起始点,与处理周期的起始点相等;或者,有的处理周期对应的处理范围的起始点,晚于处理周期的起始点。可见,如果不将各个处理周期的周长设置为与对应的允许处理范围的时长相等,很容易出现处理顺序混乱的现象。当然,当对实时数据的处理过程,仅包括有限的几个处理周期时,各个处理周期的周长与对应的允许处理范围的时长也可以不相等。
S201:当判断结果为是时,将该实时数据存储到第一缓冲队列中。
这里,第一缓冲队列用于暂存生成时间位于当前处理周期对应的允许处理范围内的实时数据。
S202:当判断结果为否时,判断该生成时间是否不小于当前处理周期对应的允许处理范围的X2。
S20201:如果是,将该实时数据存储到第二缓冲队列中。
这里,第二缓冲队列用于暂存生成时间位于下一处理周期对应的允许处理范围内的实时数据。
可以理解的是,生成时间大于当前处理周期对应的允许处理范围的结束点X2的实时数据,属于下一处理周期的处理对象。因此,将该实时数据暂时存入第二缓冲队列。这样,可以使得生成时间较晚,却被很早收集到的实时数据进行暂存,从而避免该实时数据丢失。
为了方案清楚,下面以图2所示的各个处理周期以及各个处理周期对应的允许处理范围在时间上的先后关系为例,对本发明实施例提供的实时数据的处理方法处理实时数据的具体过程进行示例性的说明。如图2所示,各个处理周期的周长为T,各个处理周期对应的允许处理范围的时长也为T;每个处理周期比对应的允许处理范围延迟t1。其中,处理周期1对应的允许处理范围1为(t,t+T]。t为实时数据开始生成的时间,对实时数据进行处理并存储的过程从t+t1时开始。
示例1,当前时间为t+t1,此时收集到一条实时数据1。实时数据1自生成之时起经过传输,在t+t1时才被收集到,故实时数据1的生成时间,必然是小于t+t1的,而t+t1又小于t+T,故实时数据1的生成时间,小于允许处理范围1的结束点t+T。至于实时数据1的生成时间与允许处理范围的起始点t相比,则存在不同情况。第一种情况,实时数据1的生成时间小于或等于t,不位于允许处理范围1(t,t+T]内,不将实时数据1存储到第一缓冲队列中;第二种情况,实时数据1的生成时间大于t,位于允许处理范围1(t,t+T]内,将实时数据1存储到第一缓冲队列中。
示例2,当前时间行进到t+t1到t+T之间的某一时间点,此时收集到一条实时数据2。由于实时数据2是在该时间点被收集的,故实时数据2的生成时间,必然是早于允许处理范围1的结束点t+T的。至于实时数据2的生成时间与允许处理范围1的起始点t相比,则存在不同情况。第一种情况,实时数据2的生成时间小于或等于t,属于上一处理周期应该处理的实时数据,不位于允许处理范围1(t,t+T]内,故不将实时数据2存储到第一缓冲队列中;第二种情况,实时数据2的生成时间大于t,位于允许处理范围1(t,t+T]内,将实时数据2存储到第一缓冲队列中。
示例3,当前时间行进到t+T,此时收集到一条实时数据3。由于实时数据3是在t+T被收集的,故实时数据3的生成时间,等于允许处理范围1的结束点t+T。至于实时数据3的生成时间与允许处理范围1的起始点t相比,则存在不同情况。第一种情况,实时数据3的生成时间小于或等于t,属于上一处理周期应该处理的实时数据,不位于允许处理范围1(t,t+T]内,不将实时数据3存储到第一缓冲队列中;第二种情况,实时数据3的生成时间大于t,位于允许处理范围1(t,t+T]内,将实时数据3存储到第一缓冲队列中。
示例4,当前时间行进到t+T到t+T+t1之间的某一时间点A,此时收集到一条实时数据4。由于实时数据4是在时间点A被收集的,故实时数据4的生成时间,必然是早于时间点A的。而实时数据4的生成时间与允许处理范围1的起始点和结束点的先后关系,则存在多种情况。第一种情况,实时数据4的生成时间小于或等于允许处理范围1的起始点t,属于上一处理周期应该处理的实时数据,不位于允许处理范围1(t,t+T]内,不将实时数据4存储到第一缓冲队列中。第二种情况,实时数据4的生成时间小于允许处理范围1的结束点t+T,且大于允许处理范围1的起始点t,位于允许处理范围1(t,t+T]内,将实时数据4存储到第一缓冲队列中。第三种情况,实时数据4的生成时间等于允许处理范围1的结束点t+T,位于允许处理范围1(t,t+T]内,将实时数据4存储到第一缓冲队列中。第四种情况,实时数据4的生成时间大于允许处理范围1的结束点t+T,不位于允许处理范围1(t,t+T]内,将实时数据4存储到第二缓冲队列中。可以理解的是,对于在t+T+t1收集到的实时数据,所存在的情况与这四种情况相同,此处不再赘述。
示例5,当前时间行进到t+T+t1,此时收集到一条实时数据5。由于实时数据5是在t+T+t1被收集的,故实时数据5的生成时间,必然早于t+T+t1。而实时数据5的生成时间与允许处理范围1的起始点和结束点的先后关系,则存在多种情况。第一种情况,实时数据5的生成时间小于或等于允许处理范围1的起始点t,属于上一处理周期应该处理的实时数据,不位于允许处理范围1(t,t+T]内,不将实时数据5存储到第一缓冲队列中;第二种情况,实时数据5的生成时间小于允许处理范围1的结束点t+T,且大于允许处理范围1的起始点t,位于允许处理范围1(t,t+T]内,将实时数据5存储到第一缓冲队列中;第三种情况,实时数据5的生成时间等于允许处理范围1的结束点t+T,位于允许处理范围1(t,t+T]内,将实时数据5存储到第一缓冲队列中;第四种情况,实时数据5的生成时间大于允许处理范围的结束点t+T,不位于允许处理范围1(t,t+T]内,将实时数据5存储到第二缓冲队列中。
在示例5中,假设实时数据5-1、实时数据5-2以及实时数据5-3均为在t+T+t1被收集,其中,实时数据5-1的生成时间为t+0.001毫秒、实时数据5-2的生成时间为t+T+0.001毫秒、实时数据5-3的生成时间为t+T+t1-0.001毫秒,t1大于0.001毫秒。可以理解的是,实时数据5-1、实时数据5-2以及实时数据5-3均为在t+T+t1收集的、但生成时间却不同的实时数据。其中,实时数据5-1的生成时间比允许处理范围1的起始点仅晚了0.001毫秒,故实时数据5-1的生成时间较早。而实时数据5-1被收集的时间为t+T+t1,已经超出了允许处理范围1的结束点t+T。由于允许处理范围1对应的处理周期1还未结束,故该生成时间较早而到达时间较晚的实时数据5-1还可以被存入到第一缓冲队列中。实时数据5-2的生成的时间t+T+0.001毫秒比实时数据5-1的生成时间t+0.001毫秒要晚的多。由于实时数据5-2的生成时间已经超出了允许处理范围1的结束点t+T,因此,即使实时数据5-2与实时数据5-1是同时被收集的,实时数据5-2也不会被存入第一缓冲队列中,而是被存入第二缓冲队列中。实时数据5-3的生成时间t+T+t1-0.001毫秒比允许处理范围1的结束点t+T晚了t1-0.001毫秒。实时数据5-3被收集的时间为t+T+t1,可见,该实时数据5-3的传输仅耗费了0.001毫秒,即实时数据5-3自生成之时起仅延迟了0.001毫秒就被收集了。可以理解的是,实时数据5-3的生成时间较晚,但被收集的时间却很早,在处理周期1中就被收集到了。由于实时数据5-3的生成时间不位于处理周期1对应的允许处理范围1(t,t+T]内,而是位于处理周期2对应的允许处理范围2(t+T,t+2T]内,故实时数据5-3会被存入第二缓冲队列中。
基于示例5可见,处理周期比对应的处理范围晚开始一段预设时长,可以对生成时间较早,但却因传输延迟从而很晚才被收集到的实时数据存入第一缓冲队列。利用第二缓冲队列,可以对生成时间较晚,但却较早被收集到的实时数据进行暂存。这样,第一缓冲队列与第二缓冲队列交替着对收集到的实时数据进行暂存,可以有效地对延迟了不同时间所到达的实时数据进行收集。这样,实时数据既不会丢失,也可以被放置到合适的数据分区中。
需要说明的是,本发明实施例使用0.001毫秒所列举的各个示例中,均假设0.001毫秒为一个非常小的数值,比图2中所示出的任何一个变量所代表的数值均小。
可以理解的是,当前时间行进到t+T+t1之后,就进入了处理周期2。对于在处理周期2中对实时数据进行处理的过程,与处理周期1相似,此处不再赘述。
可以理解的是,上述的5个示例,是在各个处理周期对应的允许处理范围为(X1,X2]情况下所列举的示例。对于允许处理范围为[X1,X2)的情况而言,在各个处理周期中处理实时数据的过程与允许处理范围为(X1,X2]的情况相似,此处不再赘述。
S3:当检测到当前处理周期结束时,将第一缓冲队列中的实时数据,均存入当前处理周期对应的数据分区中,清空第一缓冲队列,并将第二缓冲队列中的实时数据复制至第一缓冲队列中,进入下一个处理周期。
这里,将实时数据存入数据分区中,具体可以是对指定的文件执行实时数据的写入操作,或者对指定的数据库执行实时数据的写入操作。
可以理解的是,进入下一个处理周期后,待到该处理周期结束时,第一缓冲队列中的实时数据将被存入该处理周期2应的数据分区中。
以S104中的示例5为例,此时,在处理周1结束时,将第一缓冲队列中的实时数据5-1存入处理周期1对应的数据分区中,将第二缓冲队列中的实时数据5-2和实时数据5-3复制至第一缓冲队列中,进入处理周期2。待到处理周期2结束时,将第一缓冲队列中的实时数据5-2和实时数据5-3存入处理周期2对应的数据分区中。可以理解的是,在实际应用中,处理周期1和处理周期2所处理的实时数据的数量较多,这里所示出的处理周期1和处理周期2所处理的实时数据的个数仅仅作为示例,不应该构成对本发明的限定。
另外,本发明实施例提供的实时数据的处理方法,还可以包括:
当实时数据的生成时间不大于当前处理周期对应的允许处理范围的X1时,将该实时数据丢弃。
可以理解的是,在S101的判断结果为否的前提下,实时数据的生成时间,或者不小于当前处理周期对应的允许处理范围的X2,或者不大于当前处理周期对应的允许处理范围的X1。对于生成时间不大于当前处理周期对应的允许处理范围的X1的实时数据而言,说明该数据在传输路径上所花费的延迟时间过久,该实时数据的生成时间所对应的处理周期已经结束,故只能将该实时数据丢弃。当然,在本发明实施例已经给实时数据预留了延迟时间的情况下,实时数据被丢弃的情况较为罕见。
本发明实施例提供的实时数据的处理方法中,以实时数据的生成时间为判断准则来将实时数据存储到相应的数据分区中,使得在前处理周期对应数据分区的各个数据的生成时间,早于在后处理周期对应数据分区中各个数据的生成时间;并且,设置了起止点均比处理周期早预设时长的允许处理范围,以及第二缓存队列的数据到第一缓存队列的数据转存,这样,为实时数据传输预留可接受的延迟时间,保证发生延迟的实时数据不丢失且放置到合适的数据分区中。可见,通过本方案,可以保证在延迟到达的实时数据也可以被有效处理的前提下,避免在对实时数据按照数据分区进行处理的阶段中,发生处理顺序混乱的现象。
可选地,在一种实现方式中,当收集到每一条实时数据时,确定该实时数据的生成时间,可以包括:
当收集到每一条实时数据时,确定该实时数据的日志生成时间,将所确定的日志生成时间作为该实时数据的生成时间。
可选地,在一种实现方式中,上述的实时数据可以包括:视频点播服务类型的实时数据。当然,并不局限于此。
可以理解的是,当实时数据为视频点播服务类型的实时数据时,本发明实施例提供的实时数据的处理方法的执行主体,即本发明实施例提供的实时数据的处理装置,可以应用于支持视频点播的终端设备所对应的服务器中。
相应于上述的一种实时数据的处理方法,本发明实施例还提供了一种实时数据的处理装置。该装置可以用于电子设备中。在具体应用中,该电子设备可以为服务器,也可以为终端设备,在具体应用中,该终端设备可以为移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备,或个人数字助理等。
如图3所示,本发明实施例提供的一种实时数据的处理装置,可以包括:
确定模块301,用于当收集到每一条实时数据时,确定该实时数据的生成时间;
第一判断模块302,用于判断所述生成时间是否位于当前处理周期对应的允许处理范围内;
第一存储模块303,用于在判断模块的判断结果为是时,将该实时数据存储到第一缓冲队列中;其中,任一处理周期对应的允许处理范围为(X1,X2]或[X1,X2),X1为该处理周期的起始点之前预设时长的时间点,X2为该处理周期的结束点之前预设时长的时间点,该处理周期的下一个处理周期对应的允许处理范围的X1的值等于该处理周期对应的允许处理范围的X2的值;
第二判断模块304,用于在第一判断模块302的判断结果为否时,判断所述生成时间是否不小于当前处理周期对应的允许处理范围的X2;
第二存储模块305,用于在所述第二判断模块的判断结果为是时,将该实时数据存储到第二缓冲队列中;
第三存储模块306,用于当检测到当前处理周期结束时,将第一缓冲队列中的实时数据,均存入当前处理周期对应的数据分区中,清空所述第一缓冲队列,并将所述第二缓冲队列中的实时数据复制至所述第一缓冲队列中,进入下一个处理周期。
可以理解的是,每个处理周期对应的允许处理范围的起始点比该处理周期的起始点早一段预设时长,每个处理周期对应的允许处理范围的结束点,比该处理周期的结束点早一段预设时长。也就是说,每个处理周期均比该处理周期对应的允许处理范围晚开始一段预设时长。并且,各个处理周期在时间上是连续的。相应的,各个处理周期对应的允许处理范围在时间上也是连续的。
可选地,该装置还包括:丢弃模块;
该丢弃模块,用于当所述生成时间不大于当前处理周期对应的允许处理范围的X1时,将该实时数据丢弃。
可以理解的是,在第一判断模块302的判断结果为否的前提下,实时数据的生成时间,或者不小于当前处理周期对应的允许处理范围的X2,或者不大于当前处理周期对应的允许处理范围的X1。对于生成时间不大于当前处理周期对应的允许处理范围的X1的实时数据而言,说明该数据在传输路径上所花费的延迟时间过久,该实时数据的生成时间所对应的处理周期已经结束,故只能将该实时数据丢弃。当然,在本发明实施例已经给实时数据预留了延迟时间的情况下,实时数据被丢弃的情况较为罕见。
可选地,上述的确定模块,具体可以用于:
当收集到每一条实时数据时,确定该实时数据的日志生成时间,将所确定的日志生成时间作为该实时数据的生成时间。
可选地,在一种实现方式中,上述的实时数据,可以包括:视频点播服务类型的实时数据。
可以理解的是,当实时数据为视频点播服务类型的实时数据时,本发明实施例提供的实时数据的处理装置,可以应用于支持视频点播的终端设备所对应的服务器中。
本发明实施例提供的实时数据的处理装置,以实时数据的生成时间为判断准则来将实时数据存储到相应的数据分区中,使得在前处理周期对应数据分区的各个数据的生成时间,早于在后处理周期对应数据分区中各个数据的生成时间;并且,设置了起止点均比处理周期早预设时长的允许处理范围,以及第二缓存队列的数据到第一缓存队列的数据转存,这样,为实时数据传输预留可接受的延迟时间,保证发生延迟的实时数据不丢失且放置到合适的数据分区中。可见,通过本方案,可以保证在延迟到达的实时数据也可以被有效处理的前提下,避免在对实时数据按照数据分区进行处理的阶段中,发生处理顺序混乱的现象。
本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,实现上述的任一所述的实时数据的处理方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的实时数据的处理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的实时数据的处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例之外的其他实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种实时数据的处理方法,其特征在于,所述实时数据被按照预定的处理周期进行存储,每一处理周期对应一个用于存储实时数据的数据分区;所述方法包括:
当收集到每一条实时数据时,确定该实时数据的生成时间;
判断所述生成时间是否位于当前处理周期对应的允许处理范围内;其中,任一处理周期对应的允许处理范围为(X1,X2]或[X1,X2),X1为该处理周期的起始点之前预设时长的时间点,X2为该处理周期的结束点之前预设时长的时间点,该处理周期的下一个处理周期对应的允许处理范围的X1的值等于该处理周期对应的允许处理范围的X2的值;
当判断结果为是时,将该实时数据存储到第一缓冲队列中;
当判断结果为否时,判断所述生成时间是否不小于当前处理周期对应的允许处理范围的X2;如果是,将该实时数据存储到第二缓冲队列中;
当检测到当前处理周期结束时,将所述第一缓冲队列中的实时数据,均存入当前处理周期对应的数据分区中,清空所述第一缓冲队列,并将所述第二缓冲队列中的实时数据复制至所述第一缓冲队列中,进入下一个处理周期。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述生成时间不大于当前处理周期对应的允许处理范围的X1时,将该实时数据丢弃。
3.根据权利要求1所述的方法,其特征在于,所述当收集到每一条实时数据时,确定该实时数据的生成时间,包括:
当收集到每一条实时数据时,确定该实时数据的日志生成时间,将所确定的日志生成时间作为该实时数据的生成时间。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述实时数据,包括:视频点播服务类型的实时数据。
5.一种实时数据的处理装置,其特征在于,所述实时数据被按照预定的处理周期进行存储,每一处理周期对应一个用于存储实时数据的数据分区;所述装置包括:
确定模块,用于当收集到每一条实时数据时,确定该实时数据的生成时间;
第一判断模块,用于判断所述生成时间是否位于当前处理周期对应的允许处理范围内;
第一存储模块,用于在所述判断模块的判断结果为是时,将该实时数据存储到第一缓冲队列中;其中,任一处理周期对应的允许处理范围为(X1,X2]或[X1,X2),X1为该处理周期的起始点之前预设时长的时间点,X2为该处理周期的结束点之前预设时长的时间点,该处理周期的下一个处理周期对应的允许处理范围的X1的值等于该处理周期对应的允许处理范围的X2的值;
第二判断模块,用于在所述第一判断模块的判断结果为否时,判断所述生成时间是否不小于当前处理周期对应的允许处理范围的X2;
第二存储模块,用于在所述第二判断模块的判断结果为是时,将该实时数据存储到第二缓冲队列中;
第三存储模块,用于当检测到当前处理周期结束时,将所述第一缓冲队列中的实时数据,均存入当前处理周期对应的数据分区中,清空所述第一缓冲队列,并将所述第二缓冲队列中的实时数据复制至所述第一缓冲队列中,进入下一个处理周期。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:丢弃模块;
所述丢弃模块,用于在所述生成时间不大于当前处理周期对应的允许处理范围的X1时,将该实时数据丢弃。
7.根据权利要求5所述的装置,其特征在于,所述确定模块,具体用于:
当收集到每一条实时数据时,确定该实时数据的日志生成时间,将所确定的日志生成时间作为该实时数据的生成时间。
8.根据权利要求5-7任一项所述的装置,其特征在于,所述实时数据,包括:视频点播服务类型的实时数据。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910515532.1A CN110297602B (zh) | 2019-06-14 | 2019-06-14 | 一种实时数据的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910515532.1A CN110297602B (zh) | 2019-06-14 | 2019-06-14 | 一种实时数据的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110297602A true CN110297602A (zh) | 2019-10-01 |
CN110297602B CN110297602B (zh) | 2023-03-07 |
Family
ID=68028104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910515532.1A Active CN110297602B (zh) | 2019-06-14 | 2019-06-14 | 一种实时数据的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297602B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040170383A1 (en) * | 2003-02-13 | 2004-09-02 | Leszek Mazur | System and method for real-time data archival |
CN103778135A (zh) * | 2012-10-18 | 2014-05-07 | 厦门雅迅网络股份有限公司 | 一种实时数据的分布存储和分页查询方法 |
CN104268159A (zh) * | 2014-09-03 | 2015-01-07 | 河海大学 | 一种基于动态镜像的实时数据仓库数据预存取方法 |
CN104317958A (zh) * | 2014-11-12 | 2015-01-28 | 北京国双科技有限公司 | 一种实时数据处理方法及系统 |
US20170235808A1 (en) * | 2015-10-27 | 2017-08-17 | TalkCycle LLC dba FrontSpin | Predictive and adaptive queue flushing for real-time data reconciliation between local and remote databases |
-
2019
- 2019-06-14 CN CN201910515532.1A patent/CN110297602B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040170383A1 (en) * | 2003-02-13 | 2004-09-02 | Leszek Mazur | System and method for real-time data archival |
CN103778135A (zh) * | 2012-10-18 | 2014-05-07 | 厦门雅迅网络股份有限公司 | 一种实时数据的分布存储和分页查询方法 |
CN104268159A (zh) * | 2014-09-03 | 2015-01-07 | 河海大学 | 一种基于动态镜像的实时数据仓库数据预存取方法 |
CN104317958A (zh) * | 2014-11-12 | 2015-01-28 | 北京国双科技有限公司 | 一种实时数据处理方法及系统 |
US20170235808A1 (en) * | 2015-10-27 | 2017-08-17 | TalkCycle LLC dba FrontSpin | Predictive and adaptive queue flushing for real-time data reconciliation between local and remote databases |
Also Published As
Publication number | Publication date |
---|---|
CN110297602B (zh) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391271B (zh) | 一种基于消息队列系统的延时任务触发方法和装置 | |
CN100471128C (zh) | 一种实现设备状态轮询的方法及装置 | |
CN106547612B (zh) | 一种多任务处理方法及装置 | |
CN102185740B (zh) | 心跳检测方法及网络设备 | |
JP2016530657A (ja) | アプリケーションの切り替え及び入力情報の追加方法及び装置 | |
CN109298990A (zh) | 日志存储方法、装置、计算机设备及存储介质 | |
CN110162270B (zh) | 基于分布式存储系统的数据存储方法、存储节点及介质 | |
CN107341062B (zh) | 一种数据推送方法、装置、设备以及存储介质 | |
CN103347066A (zh) | 一种排队方法及系统 | |
CN109558065A (zh) | 数据删除方法及分布式存储系统 | |
CN103647726A (zh) | 一种报文调度方法及装置 | |
CN107589990B (zh) | 一种基于线程池的数据通讯的方法及系统 | |
CN110008037A (zh) | 消息处理方法、装置及存储介质 | |
CN111988478A (zh) | 一种呼入管理方法、装置、服务器及存储介质 | |
CN104883290A (zh) | 一种联系人在线状态通知方法及装置 | |
CN111221662B (zh) | 任务调度方法、系统及装置 | |
CN101753416A (zh) | 消息发送方法及装置 | |
CN109361607B (zh) | 表项数据获取方法、装置及通信设备 | |
CN106372822A (zh) | 业务对象预约时段处理方法及装置 | |
CN108429703B (zh) | Dhcp客户端上线方法及装置 | |
CN104683460B (zh) | 一种物联网的通信方法、装置及服务器 | |
CN110311963A (zh) | 消息推送方法、装置、计算机设备及计算机可读存储介质 | |
CN110297602A (zh) | 一种实时数据的处理方法及装置 | |
CN110298001B (zh) | 日志数据包的获取方法和装置及计算机可读存储介质 | |
CN110096352A (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 |