CN110019386B - 一种流数据处理方法及设备 - Google Patents
一种流数据处理方法及设备 Download PDFInfo
- Publication number
- CN110019386B CN110019386B CN201710791176.7A CN201710791176A CN110019386B CN 110019386 B CN110019386 B CN 110019386B CN 201710791176 A CN201710791176 A CN 201710791176A CN 110019386 B CN110019386 B CN 110019386B
- Authority
- CN
- China
- Prior art keywords
- data
- time
- time window
- window
- processed
- 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.)
- Active
Links
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/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Library & Information Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种流数据处理方法及设备,用于解决在对流数据进行统计分析时存在的统计结果的准确性较低的技术问题。该方法包括:在当前数据时间窗口接收待处理数据,并确定其产生时间;若产生时间大于当前数据时间窗口的结束时间,则将其缓存到当前数据时间窗口之后的下一个数据时间窗口中,并在确定产生时间未处于当前数据时间窗口的延迟时长对应的时间范围内,关闭当前数据时间窗口,及在确定下一个数据时间窗口关闭时对已缓存的待处理数据进行处理;若产生时间小于当前数据时间窗口的起始时间,且在确定产生时间在多个数据时间窗口中对应的历史数据时间窗口已关闭时,根据产生时间和预设间隔时间对待处理数据进行时间分组处理。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种流数据处理方法及设备。
背景技术
流计算是一种新的数据处理方式,能实时对大规模的流数据进行处理分析呈现,为系统提供即时的数据价值,被广泛应用于金融服务、网络监控、电信数据管理、Web应用、生产制造、传感检测等领域。其中,流计算中常用的操作是对一定时间间隔内的数据进行统计。
目前,流计算中,在对一定时间间隔内的数据进行统计时,可以通过对数据时间窗口内的数据进行统计分析,即根据数据产生端的时间窗口对数据进行处理。但由于数据产生端环境不同以及数据采集/传输快慢程度的影响,使得数据统计端接收到数据的数据时间可能是乱序的。现采用的处理方式是:在收到下一个时间窗口的数据时,关闭当前时间窗口,将当前时间窗口数据处理输出结果,并将在此之后到达的当前时间窗口内的数据都丢弃,不进行处理。
因此,现有技术中在对流数据进行统计分析时严重破坏了乱序数据的完整性,导致统计分析结果的准确性较低。
发明内容
本发明实施例提供一种流数据处理方法及设备,用于解决现有技术中在对流数据进行统计分析时严重破坏了乱序数据的完整性,导致统计分析结果的准确性较低的技术问题。
第一方面,本发明实施例提供一种流数据处理方法,在该方法中预先按照预设间隔时间设置多个数据时间窗口及每个数据时间窗口的延迟时长,所述多个数据时间窗口用于表征数据产生的不同时间段,所述延迟时间小于所述预设间隔时间,所述方法包括以下步骤:
在当前数据时间窗口接收待处理数据,并确定所述待处理数据的产生时间;
若所述产生时间大于所述当前数据时间窗口的结束时间,则将所述待处理数据缓存到所述当前数据时间窗口之后的下一个数据时间窗口中,并在确定所述产生时间未处于所述当前数据时间窗口的延迟时长对应的时间范围内,关闭所述当前数据时间窗口,及在确定所述下一个数据时间窗口关闭时对已缓存的所述待处理数据进行处理;
若所述产生时间小于所述当前数据时间窗口的起始时间,则确定所述产生时间在所述多个数据时间窗口中对应的历史数据时间窗口,并在确定所述历史数据时间窗口已关闭时,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理。
可选的,若所述产生时间小于所述当前数据时间窗口的起始时间,在确定所述产生时间在所述多个数据时间窗口中对应的历史数据时间窗口之后,进一步包括:
确定所述历史数据时间窗口未关闭时,将所述待处理数据缓存到所述历史数据时间窗口中;
确定所述历史数据时间窗口关闭时,对所述历史数据时间窗口中已缓存的待处理数据进行处理。
可选的,确定所述历史数据时间窗口未关闭,包括:
计算所述待处理数据针对所述当前数据时间窗口的到达时间;
若所述到达时间处于所述历史数据时间窗口的延迟时长对应的时间范围内,确定所述历史数据时间窗口未关闭。
可选的,在确定所述产生时间大于所述当前数据时间窗口的结束时间之后,进一步包括:
确定所述产生时间处于所述当前数据时间窗口的延迟时长对应时间范围内时,保持所述当前数据时间窗口处于打开状态。
可选的,在确定所述历史数据时间窗口已关闭,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理之后,进一步包括:
获得所述待处理数据的分组处理结果;
在确定所述当前数据时间窗口关闭时,根据所述分组处理结果对所述历史数据时间窗口的历史处理结果进行更新,获得所述历史数据时间窗口对应的更新处理结果;其中,所述历史处理结果为所述历史数据时间窗口中已缓存的数据的处理结果。
可选的,在确定所述历史数据时间窗口已关闭,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理之后,进一步包括:
丢弃所述待处理数据。
第二方面,本发明实施例提供一种流数据处理设备,该流数据处理设备中预先按照预设间隔时间设置有多个数据时间窗口及每个数据时间窗口的延迟时长,所述多个数据时间窗口用于表征数据产生的不同时间段,所述延迟时间小于所述预设间隔时间,所述流数据处理设备包括:
接收器,用于在当前数据时间窗口接收待处理数据,并确定所述待处理数据的产生时间;
存储器,与所述接收器连接,用于存储当前数据时间窗口接收的数据;
处理器,分别与所述接收器及所述存储器连接,若所述产生时间大于所述当前数据时间窗口的结束时间,用于将所述待处理数据缓存到所述存储器中对应于所述当前数据时间窗口之后的下一个数据时间窗口的存储区域中,并在确定所述产生时间未处于所述当前数据时间窗口的延迟时长对应的时间范围内,关闭所述当前数据时间窗口,及在确定所述下一个数据时间窗口关闭时对所述存储器中已缓存的所述待处理数据进行处理;以及,若所述产生时间小于所述当前数据时间窗口的起始时间,用于确定所述产生时间在所述多个数据时间窗口中对应的历史数据时间窗口,并在确定所述历史数据时间窗口已关闭时,用于根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理。
可选的,所述处理器进一步用于:
在确定所述产生时间在所述多个数据时间窗口中对应的历史数据时间窗口之后,确定所述历史数据时间窗口未关闭时,将所述待处理数据缓存到所述历史数据时间窗口中;及,在确定所述历史数据时间窗口关闭时,对所述历史数据时间窗口中已缓存的待处理数据进行处理。
可选的,所述处理器在用于确定所述历史数据时间窗口未关闭时,具体用于:计算所述待处理数据针对所述当前数据时间窗口的到达时间,若所述到达时间处于所述历史数据时间窗口的延迟时长对应的时间范围内,确定所述历史数据时间窗口未关闭。
可选的,所述处理器进一步用于:在确定所述产生时间大于所述当前数据时间窗口的结束时间之后,确定所述产生时间处于所述当前数据时间窗口的延迟时长对应时间范围内时,保持所述当前数据时间窗口处于打开状态。
可选的,所述处理器进一步用于:在确定所述历史数据时间窗口已关闭,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理之后,获得所述待处理数据的分组处理结果,以及用于在确定所述当前数据时间窗口关闭时,根据所述分组处理结果对所述历史数据时间窗口的历史处理结果进行更新,获得所述历史数据时间窗口对应的更新处理结果;其中,所述历史处理结果为所述历史数据时间窗口中已缓存的数据的处理结果。
可选的,所述处理器进一步还用于:在确定所述历史数据时间窗口已关闭,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理之后,丢弃所述待处理数据。
第三方面,本发明实施例还提供一种流数据处理设备,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行如上述第一方面所述的方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,包括:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上述第一方面所述的方法。
本发明实施例中,由于在接收到产生时间对应于当前数据时间窗口之后的下一个数据时间窗口的待处理数据时,仅在确定该待处理数据的产生时间未处于当前数据时间窗口的延迟时长对应的时间范围内时,才关闭当前数据时间窗口,从而有效延长当前数据时间窗口的打开时长,便于接收产生时间归属于当前数据时间窗口的迟到数据,有助于提高接收数据的完整性。
以及,在接收到产生时间对应的历史数据时间窗口已关闭的待处理数据时,通过对待处理数据进行时间分组处理,可获得该部分数据相应的处理结果,实现对归属于已关闭的时间窗口的迟到数据的统计分析,从而提高数据统计分析结果的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的流数据处理方法的流程图;
图2为本发明实施例提供的流数据处理设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明技术方案的一部分实施例,而不是全部的实施例。基于本发明文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明技术方案保护的范围。
本发明实施例中,流数据处理设备可以是具有流数据处理能力的计算机设备,例如终端设备或服务器等等。
通常来说,流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合,可以应用于网络监控、传感器网络、航空航天、气象测控和金融服务等领域。
下面结合附图对本发明优选的实施方式进行详细说明。
请参考图1,为本发明实施例提供的一种流数据处理方法,该方法可以应用于上述的流数据处理设备,该方法包括以下步骤:
S11:在当前数据时间窗口接收待处理数据,并确定待处理数据的产生时间。
S12:若产生时间大于当前数据时间窗口的结束时间,则将待处理数据缓存到当前数据时间窗口之后的下一个数据时间窗口中,并在确定产生时间未处于当前数据时间窗口的延迟时长对应的时间范围内,关闭当前数据时间窗口,及在确定下一个数据时间窗口关闭时对已缓存的待处理数据进行处理.
S13:若产生时间小于当前数据时间窗口的起始时间,则确定产生时间在多个数据时间窗口中对应的历史数据时间窗口,并在确定历史数据时间窗口已关闭时,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理。
在具体实践过程中,可在S11之前,预先在流数据处理设备中按照预设间隔时间设置多个数据时间窗口及每个数据时间窗口的延迟时长,多个数据时间窗口用于表征数据产生的不同时间段,且延迟时间小于预设间隔时间。
例如,若预设间隔时间为D,则在设置数据时间窗口时,设置的规则可以为从数据的开始时间T_start(比如00:00:00)到间隔结束时间T_stop(即T_start+D)为一个数据时间窗口,然后依次类推。比如,若数据的开始时间为09:10:00,预设间隔时间D是5min,那么数据时间窗口可以是:[09:10:00,09:15:00),[09:15:00,09:20:00),……,依次类推。
同时,本发明实施例还在流数据处理设备中为多个数据时间窗口中每个数据时间窗口设置有相应的延迟时长,该延迟时长小于预设间隔时间。各数据时间窗口的延迟时长可以是相同的,例如为20s或30s,或其它数值;或者,各数据时间窗口的延迟时长也可以是不同的,本领域技术人员可根据实际需求进行设置。本发明实施例中,主要以各数据时间窗口的延迟时长均相同为例进行介绍。
进而,执行S11,即流数据处理设备在当前数据时间窗口接收待处理数据。其中,当前数据时间窗口对应的时间可以是与流数据处理设备的当前设备时间相应的。也就是说,随着设备时间的改变,预先划分的多个数据时间窗口可依次作为当前数据时间窗口。
在当前数据时间窗口接收的待处理数据可以是流数据中的一个数据,通常来说,由于网络及传输的影响,流数据处理设备接收的流数据可能是乱序的数据。
在S11中,可以确定待处理数据的产生时间,即数据源生成该待处理数据的时间。进而,可以确定产生时间是否处于当前数据时间窗口对应的时间范围内。例如,若当前数据时间窗口对应的时间范围为[09:01:00,09:02:00),则可以确定接收的待处理数据的产生时间是否处于该时间范围内,可以分为以下情况。
情况一:待处理数据的产生时间处于当前数据时间窗口的时间范围内。
例如,若产生时间为09:01:15,处于当前数据时间窗口的时间范围内。此时,流数据处理设备可将待处理数据直接缓存到当前数据时间窗口中,例如缓存到当前数据时间窗口的数组或数据列表中。进而,可在当前数据时间窗口关闭时,对已缓存的多个数据(包括待处理数据)进行统计分析等处理,以获得该数据时间窗口的统计分析结果。
情况二:待处理数据的产生时间不处于当前数据时间窗口的时间范围内。
在该情况下,可以根据产生时间确定待处理数据为对应于当前数据时间窗口之前或之后的时间窗口的数据。此时,包括的具体情况和处理方式可以如下:
1)若待处理数据的产生时间大于当前数据时间窗口的结束时间。
例如,若流数据处理设备确定待处理数据的产生时间大于当前数据时间窗口的结束时间,即09:02:00,则表明流数据处理设备在当前时间窗口中接收的待处理数据为产生时间对应于下一个数据时间窗口的数据。
此时,流数据处理设备执行S12。具体来说,在执行S13时,首先,流数据处理设备可将待处理数据缓存到当前数据时间窗口之后的下一个数据时间窗口中。进而,流数据处理设备可进一步根据当前数据时间窗口的延迟时长来确定是否关闭当前数据时间窗口。该过程可以描述如下:
(a)流数据处理设备判断待处理数据的产生时间是否处于当前数据时间窗口的延迟时长对应的时间范围内。
例如延迟时长为20s,当前数据时间窗口的延迟时长对应的时间范围即为[09:02:00,09:02:20),则可以确定产生时间是否处于该延迟时长对应的时间范围内。
(b)若确定产生时间处于当前数据时间窗口的延迟时长对应的时间范围内,例如,产生时间为为09:02:15,其处于延迟时长对应的时间范围[09:02:00,09:02:20]内,则表明待处理数据的产生时间为下一个数据时间窗口中时间较靠前的数据。
此时,流数据处理设备可以保持当前数据时间窗口处于打开状态,以使当前数据时间窗口可以继续等待自己窗口内的数据到达,尽量保证当前数据时间窗口的数据的完整性。
(c)若确定产生时间未处于当前数据时间窗口的延迟时长对应的时间范围内,例如,产生时间为为09:02:35,其超出延迟时长对应的时间范围[09:02:00,09:02:20],则可以认为待处理数据的产生时间为下一个数据时间窗口中时间较靠后的数据。
此时,流数据处理设备可以关闭当前数据时间窗口,并对当前数据时间窗口中已缓存的数据进行处理,例如统计分析当前数据时间窗口中缓存的数据。以及,在确定下一个数据时间窗口关闭时对缓存的待处理数据进行处理。
或者,在实际计算过程中,在确定是否关闭当前数据时间窗口时,也可直接计算待处理数据的产生时间的值减去延迟时长的值后的数值是否处于当前数据时间窗口对应的时间范围内来计算,计算过程较为快速。
例如,待处理数据的产生时间为为09:02:35,延迟时长为20s,则将产生时间减少20s后,可得的数值即为09:02:15,超出当前数据时间窗口的时间范围[09:01:00,09:02:00),则可关闭当前数据时间窗口。
2)若待处理数据的产生时间小于当前数据时间窗口的起始时间。
此时,流数据处理设备将执行S13。具体来说,在执行S13时,首先,流数据处理设备可以确定产生时间在多个数据时间窗口中对应的历史数据时间窗口。例如,可根据数据时间窗口与产生时间之间的对应关系,确定待处理数据的产生时间所对应的历史数据时间窗口。
然后,流数据处理设备可以确定该历史数据时间窗口是否关闭。具体来说,流数据处理设备在确定历史数据时间窗口是否关闭时,可以通过计算待处理数据针对当前数据时间窗口的到达时间,若到达时间处于历史数据时间窗口的延迟时长对应的时间范围内,则可以确定历史数据时间窗口未关闭,否则,则认为历史数据时间窗口已关闭,该待处理数据即为产生时间对应于历史数据时间窗口的迟到数据。
例如,若当前数据时间窗口为[09:01:00,09:02:00),待处理数据的到达时间为09:01:08,预设间隔时间为1分钟,延迟时长为30s。如果流数据处理设备确定待处理数据的产生时间为08:59:23,那么,根据产生时间和预设间隔时间可以确定待处理数据归属的历史数据时间窗口的时间范围为[08:59:00,09:00:00),历史数据窗口的延迟时长对应的时间范围可以为[09:00:00,09:00:30]。若确定待处理数据的到达时间为09:01:08,其未处于时间范围[09:00:00,09:00:30]内,则可以确定历史数据时间窗口已关闭。
或者,如果接收的待处理数据的产生时间为09:00:23,根据产生时间和预设间隔时间可以确定待处理数据归属的历史数据时间窗口的时间范围为[09:00:00,09:01:00),进而结合延迟时长可以确定历史数据窗口的延迟时长对应的时间范围可以为[09:01:00,09:01:30],则待处理数据的到达时间为09:01:08处于历史数据窗口的延迟时长对应的时间范围内,即处于[09:01:00,09:01:30]内,确定历史数据时间窗口即为当前数据窗口的上一数据时间窗口,该上一数据时间窗口还未关闭。
进一步,在实际操作中,一方面,若确定历史数据时间窗口已关闭,流数据处理设备可以根据产生时间和预设间隔时间对待处理设备进行时间分组处理。
也就是说,流数据处理设备可以根据待处理设备的产生时间和预设间隔时间,确定待处理数据所归属的历史数据时间窗口的起始时间,例如上述在历史数据时间已关闭时时,其起始时间为08:59:00,则可将该起始时间作为时间分组处理的标识,以将迟到数据中具有相同数据时间窗口的起始时间(即归属于同一个数据时间窗口)的数据一起进行统计分析,以实现对历史数据时间窗口的迟到数据的统计,避免因直接丢弃迟到数据而导致统计结果的不完整,
进而,流数据处理设备可获得待处理数据的分组处理结果,并在确定当前数据时间窗口关闭时,根据分组处理结果对历史数据时间窗口的历史处理结果进行更新,该历史处理结果为对历史数据时间窗口在关闭时已缓存的数据进行处理的处理结果,获得历史数据时间窗口对应的更新处理结果。
也就是说,在每次数据时间窗口关闭时,流数据处理设备可将两次数据时间窗口之间接收的迟到数据的分组处理结果都更新到对应的数据时间窗口的处理结果中,以提高数据时间窗口对应的统计结果的完整性。
在实际应用中,流数据处理设备在对归属于历史数据时间窗口的待处理数据(即迟到数据)进行时间分组处理后,可丢弃待处理数据,而只需保留相应的分组处理结果,以降低缓存数据对资源的占用,避免出现现有技术中分组处理时因缓存全部数据而导致数据占用资源过高的情况。
因此,本发明实施例中,在确定待处理数据为迟到数据时,通过对迟到数据进行时间分组处理,可实现在历史数据时间窗口关闭后,将归属于历史数据时间窗口的待处理数据的分组处理结果与历史处理结果进行结合更新的技术效果,有助于提高统计分析结果的准确性。
另一方面,若确定历史数据时间窗口还未关闭,例如历史数据时间窗口为当前数据时间窗口的前一数据时间窗口,其在延迟时长内可能还未接收到产生时间超过其延迟时长对应的时间范围内的数据。则流数据处理设备可将待处理数据缓存到该历史数据时间窗口中,并在确定历史数据时间窗口关闭时,对该历史数据时间窗口中已缓存的待处理数据进行处理。
故本发明实施例中,即便在当前数据时间窗口接收到产生时间归属于当前数据时间窗口之前的历史数据时间窗口的待处理数据,如果该历史数据时间窗口未关闭,即可将待处理设备缓存到历史数据时间窗口中,有助于提高数据数据窗口中数据的完整性。
下面,通过举例来具体说明本发明实施例中流数据处理方法的应用场景。
例如,若流数据处理设备需要处理11:00~11:01这1分钟内的数据,假设预设时间间隔(即时间窗口的长度)为1分钟,在流数据处理设备中设置的数据时间窗口包括:Window0为[10:59,11:00),Window1为[11:00,11:01),Window1为[11:01,11:02),且设置的数据时间窗口的延迟时长为30s,且流数据处理设备中当前数据时间窗口为Window1。
如果到达的数据流中8个待处理数据的时间戳(即产生时间)分别为(1)11:00:05,(2)11:00:35,(3)11:01:25,(4)11:00:55,(5)11:01:55,(6)11:00:55,(7)10:59:58,(8)11:00:20,则对流数据的统计分析过程如下:
则流数据处理设备在接收到待处理数据后,可以根据待处理数据的时间戳判断待处理数据属于哪个数据时间窗口,并判断是否关闭窗口。流数据处理设备在接收并处理各数据的过程可以描述如下:
A、数据(1)、(2)的数据时间在[11:00,11:01)范围内属于Window1,则将数据(1)和(2)缓存到Window1中。
B、数据(3)超出了11:01,不属于Window1,属于Window2,则将数据(3)缓存到Window2中。
此时,流数据处理设备还需要根据延迟时长比对后做出判断是否需要关闭Window1。例如,数据(3)的时间戳11:01:25减去延迟时长30s,得到的时间戳是11:00:55,处于[11:00,11:01)这个范围内,所以Window1窗口继续保持打开状态,其后续还可以接收该时间窗口内数据。
C、即使收到了下一分钟(即属于下一数据时间窗口)的数据(数据(3)),由于设置窗口延迟时间段,窗口Window1没有关闭,所以数据(4)在数据(3)之后到达,流数据处理设备依据可以判断数据(4)是否属于Window1,由于数据(4)在[11:00,11:01)范围内属于Window1,可以参与Window1的统计分析。因此,如果没有设置窗口延迟时间段,数据(4)就会被丢弃。
D、数据(5)在[11:01,11:02)范围内,属于Window2。
此时,流数据处理设备也需进行是否关闭Window1的判断。例如,流数据处理设备可以计算数据(5)的时间戳11:01:55减去延迟时长30s,得到的时间戳是11:01:25,已经超出了Window1的[11:00,11:01)这个范围,所以Window1窗口关闭。
在Window1窗口关闭后,流数据处理设备将即时统计分析Window1窗口内缓存的所有数据,即数据(1)、(2)、(4),获得处理分析结果。
E、数据(6)的时间戳属于Window1的范围内,但Window1窗口已经关闭,数据(6)属于迟到数据。此时可采用分组技术,即流数据处理设备可以根据预设间隔时间(1分钟)和数据(6)的时间戳,确定数据(6)所属历史数据时间窗口的起始时间T1为11:00:00,对T1进行时间分组分析,即将数据(6)加入到数据时间窗口的起始时间为11:00:00的统计分析中,即对应于Window1的统计分析中。
F、数据(7)的时间戳10:59:58属于Window0,但Window0已关闭,数据(7)属于迟到数据。此时,流数据处理设备可以根据统计间隔和数据(7)的时间戳,确定数据(7)所属时间段起点时间T2为10:59:00,同样对其进行时间分组分析,将数据(7)加入到数据时间窗口的起始时间为10:59:00的统计分析中,即对应于Window0的统计分析中。
G、由于数据(8)同数据(6)都属于Window1的迟到数据,数据(8)所属的数据时间窗口的起始时间T3也为11:00:00,与数据(6)属于同一组,所有同一组数据都一起进行统计分析,所以数据(8)与数据(6)进行累计地统计分析。
H、在确定Window2关闭时,可将Window1关闭和Window2关闭之间的所有分组统计结果更新到对应的数据时间窗口的输出结果。更新完毕后,可将分组数据清空,便于减少下个周期计算时的分组数量,且在分组处理过程中统计的数据量较为有限,处理速度较快,有助于提高统计分析的效率。
因此,本发明实施例中,由于在接收到产生时间对应于当前数据时间窗口之后的下一个数据时间窗口的待处理数据时,仅在确定该待处理数据的产生时间未处于当前数据时间窗口的延迟时长对应的时间范围内时,才关闭当前数据时间窗口,从而有效延长当前数据时间窗口的打开时长,便于接收产生时间归属于当前数据时间窗口的迟到数据,有助于提高接收数据的完整性。
以及,在接收到产生时间对应的历史数据时间窗口已关闭的待处理数据时,通过对待处理数据进行时间分组处理,可获得该部分数据相应的处理结果,实现对归属于已关闭的时间窗口的迟到数据的统计分析,从而提高数据统计分析结果的准确性。
请参考图2,基于同一发明构思,本发明实施例中提供了一种流数据处理设备,该设备包括接收器21、存储器22和处理器23,当然,在实际应用中,该流数据处理设备还可以包括发送器24,图中也一并示出,由于该部件为本发明实施例中的非必要的,因此图2中用虚线示出该部件。采用该设备执行流数据处理方法的过程可以的具体实施可参见方法实施例部分的描述,重复之处不再赘述。
其中,接收器21可以用于在当前数据时间窗口接收待处理数据,并确定所述待处理数据的产生时间。
存储器22可以与接收器21连接,用于存储当前数据时间窗口接收的数据。
处理器23可以分别与所述接收器21及所述存储器22连接,若所述产生时间大于所述当前数据时间窗口的结束时间,用于将所述待处理数据缓存到所述存储器22中对应于所述当前数据时间窗口之后的下一个数据时间窗口的存储区域中,并在确定所述产生时间未处于所述当前数据时间窗口的延迟时长对应的时间范围内,关闭所述当前数据时间窗口,及在确定所述下一个数据时间窗口关闭时对所述存储器22中已缓存的所述待处理数据进行处理;以及,若所述产生时间小于所述当前数据时间窗口的起始时间,用于确定所述产生时间在所述多个数据时间窗口中对应的历史数据时间窗口,并在确定所述历史数据时间窗口已关闭时,用于根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理。
可选的,所述处理器23进一步用于:
在确定所述产生时间在所述多个数据时间窗口中对应的历史数据时间窗口之后,确定所述历史数据时间窗口未关闭时,将所述待处理数据缓存到所述存储器22中对应于历史数据时间窗口的存储区域中;及,在确定所述历史数据时间窗口关闭时,对所述历史数据时间窗口内已缓存的待处理数据进行处理。
可选的,所述处理器23在用于确定所述历史数据时间窗口未关闭时,具体用于:计算所述待处理数据针对所述当前数据时间窗口的到达时间,若所述到达时间处于所述历史数据时间窗口的延迟时长对应的时间范围内,确定所述历史数据时间窗口未关闭。
可选的,所述处理器23进一步用于:
在确定所述产生时间大于所述当前数据时间窗口的结束时间之后,确定所述产生时间处于所述当前数据时间窗口的延迟时长对应时间范围内时,保持所述当前数据时间窗口处于打开状态。
可选的,所述处理器23进一步用于:在确定所述历史数据时间窗口已关闭,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理之后,获得所述待处理数据的分组处理结果,以及用于在确定所述当前数据时间窗口关闭时,根据所述分组处理结果对所述历史数据时间窗口的历史处理结果进行更新,获得所述历史数据时间窗口对应的更新处理结果;其中,所述历史处理结果为所述历史数据时间窗口中已缓存的数据的处理结果。
可选的,所述处理器23进一步还用于:在确定所述历史数据时间窗口已关闭,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理之后,丢弃所述待处理数据。
基于同一发明构思,本发明实施例中提供了一种流数据处理设备,包括至少一个处理器23,以及与所述至少一个处理器23通信连接的存储器22和通信接口,该通信接口可以用于收发数据。
其中,所述存储器22存储有可被所述至少一个处理器23执行的指令,所述至少一个处理器23通过执行所述存储器22存储的指令,利用所述通信接口执行如上所述的流数据处理方法。
基于同一发明构思,本发明实施例还提一种计算机可读存储介质,包括:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上所述的流数据处理方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种流数据处理方法,其特征在于,预先按照预设间隔时间设置多个数据时间窗口及每个数据时间窗口的延迟时长,所述多个数据时间窗口用于表征数据产生的不同时间段,所述延迟时间小于所述预设间隔时间,所述方法包括:
在当前数据时间窗口接收待处理数据,并确定所述待处理数据的产生时间;
若所述产生时间大于所述当前数据时间窗口的结束时间,则将所述待处理数据缓存到所述当前数据时间窗口之后的下一个数据时间窗口中,并在确定所述产生时间未处于所述当前数据时间窗口的延迟时长对应的时间范围内,关闭所述当前数据时间窗口,及在确定所述下一个数据时间窗口关闭时对已缓存的所述待处理数据进行处理;
若所述产生时间小于所述当前数据时间窗口的起始时间,则确定所述产生时间在所述多个数据时间窗口中对应的历史数据时间窗口,并在确定所述历史数据时间窗口已关闭时,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理。
2.如权利要求1所述的方法,其特征在于,若所述产生时间小于所述当前数据时间窗口的起始时间,在确定所述产生时间在所述多个数据时间窗口中对应的历史数据时间窗口之后,进一步包括:
确定所述历史数据时间窗口未关闭时,将所述待处理数据缓存到所述历史数据时间窗口中;
确定所述历史数据时间窗口关闭时,对所述历史数据时间窗口中已缓存的待处理数据进行处理。
3.如权利要求2所述的方法,其特征在于,确定所述历史数据时间窗口未关闭,包括:
计算所述待处理数据针对所述当前数据时间窗口的到达时间;
若所述到达时间处于所述历史数据时间窗口的延迟时长对应的时间范围内,确定所述历史数据时间窗口未关闭。
4.如权利要求1、2或3所述的方法,其特征在于,在确定所述产生时间大于所述当前数据时间窗口的结束时间之后,进一步包括:
确定所述产生时间处于所述当前数据时间窗口的延迟时长对应时间范围内时,保持所述当前数据时间窗口处于打开状态。
5.如权利要求1、2或3所述的方法,其特征在于,在确定所述历史数据时间窗口已关闭,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理之后,进一步包括:
获得所述待处理数据的分组处理结果;
在确定所述当前数据时间窗口关闭时,根据所述分组处理结果对所述历史数据时间窗口的历史处理结果进行更新,获得所述历史数据时间窗口对应的更新处理结果;其中,所述历史处理结果为所述历史数据时间窗口中已缓存的数据的处理结果。
6.如权利要求5所述的方法,其特征在于,在确定所述历史数据时间窗口已关闭,根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理之后,进一步包括:
丢弃所述待处理数据。
7.一种流数据处理设备,其特征在于,所述流数据处理设备中预先按照预设间隔时间设置有多个数据时间窗口及每个数据时间窗口的延迟时长,所述多个数据时间窗口用于表征数据产生的不同时间段,所述延迟时间小于所述预设间隔时间,所述流数据处理设备包括:
接收器,用于在当前数据时间窗口接收待处理数据,并确定所述待处理数据的产生时间;
存储器,与所述接收器连接,用于存储当前数据时间窗口接收的数据;
处理器,分别与所述接收器及所述存储器连接,若所述产生时间大于所述当前数据时间窗口的结束时间,用于将所述待处理数据缓存到所述存储器中对应于所述当前数据时间窗口之后的下一个数据时间窗口的存储区域中,并在确定所述产生时间未处于所述当前数据时间窗口的延迟时长对应的时间范围内,关闭所述当前数据时间窗口,及在确定所述下一个数据时间窗口关闭时对所述存储器中已缓存的所述待处理数据进行处理;以及,若所述产生时间小于所述当前数据时间窗口的起始时间,用于确定所述产生时间在所述多个数据时间窗口中对应的历史数据时间窗口,并在确定所述历史数据时间窗口已关闭时,用于根据所述产生时间和所述预设间隔时间对所述待处理数据进行时间分组处理。
8.一种流数据处理设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于:
所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710791176.7A CN110019386B (zh) | 2017-09-05 | 2017-09-05 | 一种流数据处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710791176.7A CN110019386B (zh) | 2017-09-05 | 2017-09-05 | 一种流数据处理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019386A CN110019386A (zh) | 2019-07-16 |
CN110019386B true CN110019386B (zh) | 2021-01-15 |
Family
ID=67186202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710791176.7A Active CN110019386B (zh) | 2017-09-05 | 2017-09-05 | 一种流数据处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019386B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831383A (zh) * | 2020-07-20 | 2020-10-27 | 北京百度网讯科技有限公司 | 窗口拼接方法、装置、设备以及存储介质 |
WO2023077451A1 (zh) * | 2021-11-05 | 2023-05-11 | 中国科学院计算技术研究所 | 一种基于列存数据库的流式数据处理方法及系统 |
CN114723413B (zh) * | 2022-04-19 | 2023-12-19 | 南京慧尔视软件科技有限公司 | 一种流数据的实时处理方法、装置、设备及介质 |
CN116481560B (zh) * | 2023-06-21 | 2023-10-03 | 天津所托瑞安汽车科技有限公司 | 车辆行驶里程的计算方法、装置、终端及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090889A (zh) * | 2013-12-12 | 2014-10-08 | 深圳市腾讯计算机系统有限公司 | 数据处理方法及系统 |
CN104980431A (zh) * | 2015-05-14 | 2015-10-14 | 南京大学 | 一种sdn中实现流有序的一致性更新方法 |
CN105162847A (zh) * | 2015-08-10 | 2015-12-16 | 电子科技大学 | 分布式流数据存储系统的存储资源规划方法 |
CN106528565A (zh) * | 2015-09-11 | 2017-03-22 | 北京邮电大学 | 监测系统的数据处理方法和装置 |
CN106911589A (zh) * | 2015-12-22 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
CN106997394A (zh) * | 2017-04-12 | 2017-08-01 | 成都四方伟业软件股份有限公司 | 一种数据乱序到达处理方法和系统 |
-
2017
- 2017-09-05 CN CN201710791176.7A patent/CN110019386B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090889A (zh) * | 2013-12-12 | 2014-10-08 | 深圳市腾讯计算机系统有限公司 | 数据处理方法及系统 |
CN104980431A (zh) * | 2015-05-14 | 2015-10-14 | 南京大学 | 一种sdn中实现流有序的一致性更新方法 |
CN105162847A (zh) * | 2015-08-10 | 2015-12-16 | 电子科技大学 | 分布式流数据存储系统的存储资源规划方法 |
CN106528565A (zh) * | 2015-09-11 | 2017-03-22 | 北京邮电大学 | 监测系统的数据处理方法和装置 |
CN106911589A (zh) * | 2015-12-22 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和设备 |
CN106997394A (zh) * | 2017-04-12 | 2017-08-01 | 成都四方伟业软件股份有限公司 | 一种数据乱序到达处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110019386A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019386B (zh) | 一种流数据处理方法及设备 | |
Inoue et al. | The stationary distribution of the age of information in FCFS single-server queues | |
CN104301248B (zh) | 报文限速方法和装置 | |
CN111142942B (zh) | 窗口数据的处理方法、装置、服务器及存储介质 | |
WO2014177023A1 (zh) | 业务类型确定方法和装置 | |
CN108512727A (zh) | 一种中央处理器利用率的确定方法及装置 | |
WO2019239821A1 (ja) | 分散処理システムおよび分散処理方法 | |
CN111641531B (zh) | 一种基于dpdk的数据包分发和特征提取方法 | |
WO2017032178A1 (zh) | 一种校验和的计算方法、网络处理器及计算机存储介质 | |
CN114095032A (zh) | 基于Flink和RVR的数据流压缩方法、边缘计算系统及存储介质 | |
WO2021208682A1 (zh) | 网络设备的数据采样方法、装置、设备及介质 | |
Zhang et al. | On age of information for discrete time status updating system with ber/g/1/1 queues | |
CN112954300B (zh) | 视频监控平台的性能测试装置及方法 | |
CN102612058B (zh) | 一种性能指标统计结果确定方法及装置 | |
CN109981487B (zh) | 一种数据调度方法、装置、电子设备及可读存储介质 | |
JP2015228568A (ja) | 映像品質推定装置及び方法及びプログラム | |
CN108733728B (zh) | 时序数据统计方法、装置、计算机设备及可读存储介质 | |
CN110995546B (zh) | 报文采样方法及装置 | |
EP2991277B1 (en) | Packet delay variation in a packet switched network | |
CN110620735A (zh) | 一种基于表格化配置的动态负载均衡遥测方法 | |
CN112995060A (zh) | 一种基于硬件计数器的流量控制方法 | |
CN102420747A (zh) | 基于数据包到达间隔滤波的业务源整形方法 | |
CN109542662A (zh) | 一种内存管理方法、装置、服务器及存储介质 | |
CN117319312B (zh) | 一种数据流量控制方法及装置 | |
CN111372073A (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 |