一种数据处理方法和设备与流程

文档序号:12789416阅读:239来源:国知局
一种数据处理方法和设备与流程

本发明涉及通信技术领域,特别涉及一种数据处理方法,本申请同时还涉及一种数据处理设备。



背景技术:

作为一种新的数据处理方式,流式计算能够对动态产生的数据进行实时计算并及时反馈结果。目前,流式计算已广泛应用于金融银行业应用、互联网应用和物联网应用等领域中,主要用于对一定时间间隔内的数据进行统计,即对于预定时间窗口内的数据进行统计。

在现有技术中,流式计算所存在时间窗口分为“系统时间窗口”以及“数据时间窗口”这两种,其各自的特点以及缺点如下:

(1)系统时间窗口

系统时间窗口基于系统时间对数据产生端的数据进行统计,首先根据预设的时间间隔将数据的统计时间划分为多个系统时间窗口,然后输出系统时间窗口统计结果。若仅按照系统时间窗口对数据进行处理的话,数据从产生端到统计端是有一定延迟性,在系统时间窗口内处理的数据往往不等于实际过程中产生端在预设时间间隔内所产生的数据,这使得流式计算的结果会受到影响。

(2)数据时间窗口

数据时间窗口基于数据时间对数据产生端的数据进行统计。在实际统计过程中,受到数据产生端的设备的时钟不完全同步以及数据采集传输过程的快慢程度的影响,统计端接收到数据的数据时间未必是按照数据时间的先后 顺序严格递增的。因此基于数据时间窗口的统计结果中就会出现数据乱序的问题。在实际统计过程中很容易出现当前数据时间窗口的边缘会有部分数据跨越到另一数据时间窗口中的情况,使得流式计算的结果受到影响。

一旦出现在数据乱序的情况下,只有通过保证当前数据时间窗口的所有数据都到达统计端,才能够保证流式计算的准确程度。因此现有的实际统计过程只有在统计端接收到数据的数据时间超过数据时间窗口并达到预设值时或者统计端接收到下一数据时间窗口的数据达到预设数量时,才关闭当前数据时间窗口。

在实现本申请的过程中,发明人发现现有技术至少存在如下问题:

(1)流式计算的数据通常是不稳定的,当某个统计项数据量较少时,下个数据时间窗口数据一直没有到达统计端,当前数据时间窗口的统计结果没有及时输出,导致数据统计延误,使得流式计算的结果受到影响。

(2)流式计算的同级计算单元一般都是并发多个的,当需要同级计算单元的统计结果按顺序输出时,由于不同计算单元的处理进度的不同,则会出现不同计算单元的数据的数据时间不同步的情况,使得流式计算的结果受到影响。

由此可见,现有技术在针对流式计算中进行实时统计数据时,无法在保证数据统计完整的前提下及时输出统计数据,同时不能对统计数据的进行全局同步,从而影响了数据处理结果的准确性。



技术实现要素:

本发明提供了一种数据处理方法,通过预先为数据统计系统的每一段系统时间窗口设置关闭时间点以及同步时间点的方式,解决了保证统计数据完整和实时进行统计数据处理二者无法兼顾的问题。

该方法应用于数据统计系统中,其中所述数据统计系统的每一段系统时 间窗口均预先设置有关闭时间点以及同步时间点,所述关闭时间点在所述同步时间点之前,并位于所述系统时间窗口的起始时间点之后,所述方法包括:

当在当前系统时间窗口接收到待处理数据时,根据所述待处理数据的数据时间确定与所述待处理数据对应的系统时间窗口;

若所述数据时间在当前系统时间窗口范围之内,将系统接收时间在所述同步时间点之前的待处理数据进行缓存,以及将所述系统接收时间在所述同步时间点之后的待处理数据即时进行处理;

若所述数据时间在前一系统时间窗口的范围之内,将所述系统接收时间在所述关闭时间点之前的待处理数据即时进行处理,以及将所述系统接收时间在所述关闭时间点之后的待处理数据丢弃。

优选地,根据所述待处理数据的数据时间确定与所述待处理数据对应的系统时间窗口,具体为:

根据所述待处理数据在数据时间窗口的时间戳,获取所述待处理数据的数据时间;

判断所述数据时间是否在当前的系统时间窗口的起始时间点之后;

若是,确认所述待处理数据在当前系统时间窗口范围之内;

若否,确认所述待处理数据在之前系统时间窗口范围之内。

优选地,所述方法还包括:

当所述数据统计系统的系统时间到达所述关闭时间点时,将数据时间在所述前一系统时间窗口范围之内的待处理数据的处理结果进行输出,并关闭与所述前一系统时间窗口对应的数据时间窗口。

优选地,所述方法还包括:

当所述数据统计系统的系统时间到达所述同步时间点时,处理在所述同步时间点之前所缓存的且数据时间在当前系统时间窗口范围之内的待处理数据,并输出处理结果。

优选地,所述关闭时间点根据所述系统时间与所述数据时间之间的时间差值设置;

所述同步时间点根据关闭时间窗口的耗时以及所述数据统计系统中各设备之间的时钟差值设置。

相应地,本申请还提出了一种数据处理设备,该设备应用于数据统计系统中,其中所述数据统计系统的每一段系统时间窗口均预先设置有关闭时间点以及同步时间点,所述关闭时间点在所述同步时间点之前,并位于所述系统时间窗口的起始时间点之后,所述设备包括:

确定模块,当在当前系统时间窗口接收到待处理数据时,根据所述待处理数据的数据时间确定与所述待处理数据对应的系统时间窗口;

第一处理模块,在所述数据时间在当前系统时间窗口范围之内,将系统接收时间在所述同步时间点之前的待处理数据进行缓存,以及将所述系统接收时间在所述同步时间点之后的待处理数据即时进行处理;

第二处理模块,在所述数据时间在前一系统时间窗口的范围之内,将所述系统接收时间在所述关闭时间点之前的待处理数据即时进行处理,以及将所述系统接收时间在所述关闭时间点之后的待处理数据丢弃。

优选地,所述确定模块具体用于:

根据所述待处理数据在数据时间窗口的时间戳,获取所述待处理数据的数据时间;

判断所述数据时间是否在当前的系统时间窗口的起始时间点之后;

若是,确认所述待处理数据在当前系统时间窗口范围之内;

若否,确认所述待处理数据在之前系统时间窗口范围之内。

优选地,所述设备还包括:

第一输出模块,在所述数据统计系统的系统时间到达所述关闭时间点时, 将数据时间在所述前一系统时间窗口范围之内的待处理数据的处理结果进行输出,并关闭与所述前一系统时间窗口对应的数据时间窗口。

优选地,所述设备还包括:

第二输出模块,在所述数据统计系统的系统时间到达所述同步时间点时,处理在所述同步时间点之前所缓存的且数据时间在当前系统时间窗口范围之内的待处理数据,并输出处理结果。

优选地,所述关闭时间点根据所述系统时间与所述数据时间之间的时间差值设置;

所述同步时间点根据关闭时间窗口的耗时以及所述数据统计系统中各设备之间的时钟差值设置。

由此可见,通过应用本申请的技术方案,在针对需要实时并完整输出计算结果的流式计算过程中,通过预先为数据统计系统的每一段系统时间窗口设置关闭时间点以及同步时间点的方式,对统计数据的进行全局同步,可以在保证数据统计完整的前提下对其及时进行处理,从而提高了数据处理结果的准确性和实时性。

附图说明

图1为本申请提出的一种数据处理方法的流程示意图;

图2为本申请的具体实施例所提出的一种数据处理方法的流程示意图;

图3为本申请提出的一种数据处理设备的结构示意图。

具体实施方式

有鉴于现有技术中的问题,本申请提供了一种数据处理方法,通过在各个系统时间窗口预设关闭时间点以及同步时间点,并以关闭时间点和同步时 间点为节点对待处理数据进行分段处理与输出,有效提高了数据处理结果的准确性和实时性。

其中,关闭时间点为所述前一系统时间窗口对应的数据时间窗口的关闭时刻,其同时也作为当前系统时间窗口对应的数据时间窗口的开始同步时刻。同步时间点为当前系统时间窗口对应的数据时间窗口的结束同步时刻。故以关闭时间点和同步时间点作为节点,将系统时间窗口划分为不同的处理与输出阶段,可以在保证数据处理的完整性的同时兼顾处理结果输出的实时性。

本申请的优选实施例中,所述关闭时间点根据所述系统时间与所述数据时间之间的时间差值设置,所述同步时间点根据关闭时间窗口的耗时以及所述数据统计系统中各设备之间的时钟差值设置。

举例来说,数据统计系统需要处理0~1min系统时间窗口内由对应设备生成的所有数据,假设其对应数据时间窗口的时间戳为10∶04的所有数据。在实际统计过程中,如果时间戳为10∶04的数据最晚可能在1~2min系统时间窗口的1min10s时到达,则将1min11s处设为关闭时间点,保证0~1min系统时间窗口所对应的所有待处理数据全部到达数据统计系统。如果0~1min系统时间窗口的耗时与数据统计系统中各设备之间时钟差值之和为2s,则将1min13s处设为同步时间点,接收到的1~2min系统时间窗口所对应的待处理数据在此时间段内全局同步。

如图1所示,为本申请提出的数据处理方法的流程示意图,该方法应用于数据统计系统中,其中所述数据统计系统的每一段系统时间窗口均预先设置有关闭时间点以及同步时间点,其中,同一系统时间窗口的所述关闭时间点是位于所述同步时间点之前以及起始时间点之后,该方法包括以下步骤:

S101,当在当前系统时间窗口接收到待处理数据时,根据所述待处理数据的数据时间确定与所述待处理数据对应的系统时间窗口。

在实际应用场景中,由于会受到数据产生端的设备的时钟差值以及数据传输过程快慢的影响,所述数据统计系统所接收到不同待处理数据的数据时间未必是严格按照数据时间的先后顺序递增的,因此就会容易出现属于前一系统时间窗口的待处理数据跨越到当前系统时间窗口的情况。也就是说,当前系统时间窗口所接收到待处理数据中,可能会存在部分对应于前一系统时间窗口的待处理数据。这样不仅会影响到前一系统时间窗口数据的完整性,同时还会对当前系统时间窗口的数据处理造成干扰。

举例来说,数据统计系统需要处理0~1min系统时间窗口内由对应设备生成的所有数据,假设其对应数据时间窗口的时间戳为10∶04的所有数据。在实际统计过程中,时间戳为10∶04的数据种可能会存在部分在1~2min系统时间窗口才到达。这样不仅会影响到0~1min系统时间窗口数据处理的完整性,同时还会对1~2min系统时间窗口的数据处理造成干扰。

因此,为了防止由于待处理数据的乱序对计算结果造成影响,在本申请的优选实施例中,当在当前系统时间窗口接收到待处理数据时,需要根据所述待处理数据的数据时间确定与所述待处理数据对应的系统时间窗口,具体确定过程如下:

a)根据所述待处理数据在数据时间窗口的时间戳,获取所述待处理数据的数据时间;

b)判断所述数据时间是否在当前的系统时间窗口的起始时间点之后;

c)若是,确认所述待处理数据在当前系统时间窗口范围之内;

d)若否,确认所述待处理数据在之前系统时间窗口范围之内。

需要说明的是,以上待处理数据的时间戳仅为本申请优选实施例提出的示例,在此基础上还可以通过选择其他形式来表示待处理数据的数据时间,以使本申请适用于更多的应用领域,这些改进都属于本发明的保护范围。

S102,若所述数据时间在当前系统时间窗口范围之内,将系统接收时间在所述同步时间点之前的待处理数据进行缓存,以及将所述系统接收时间在所述同步时间点之后的待处理数据即时进行处理。

具体的,接收到的如果是当前系统时间窗口所对应的待处理数据,以同步时间点为分界点对待处理数据进行分别处理。

在同步时间点之前,数据统计系统不仅需要处理并输出数据时间在前一系统时间窗口范围之内的待处理数据,还需要对数据时间在当前系统时间窗口范围之内的待处理数据进行全局同步,考虑到统计与计算效率以及防止统计与计算过程的混乱,故只将在系统接收时间在所述同步时间点之前的待处理数据进行缓存。

在同步时间点之后,由于前一系统时间窗口对应的数据时间窗口已关闭,且当前系统时间窗口范围之内的待处理数据也已完成全局同步,故将所述系统接收时间在所述同步时间点之后的待处理数据即时进行处理。

S103,若所述数据时间在前一系统时间窗口的范围之内,将所述系统接收时间在所述关闭时间点之前的待处理数据即时进行处理,以及将所述系统接收时间在所述关闭时间点之后的待处理数据丢弃。

具体的,接收到的如果是前一系统时间窗口所对应的待处理数据,以关闭时间点为分界点对待处理数据进行分别处理。

在关闭时间点之前,由于会受到数据产生端的设备的时钟差值以及数据传输过程快慢的影响,可能会存在部分对应于前一系统时间窗口的待处理数据在当前系统时间窗口才到达数据统计系统,这些数据对保证前一系统时间窗口数据处理的完整性与准确性起着重要的作用。故将所述系统接收时间在所述关闭时间点之前的待处理数据即时进行处理。

在关闭时间点之后,由于前一系统时间窗口对应的数据时间窗口已关闭, 此刻到达数据统计系统的待处理数据则会影响到数据时间在当前系统时间窗口范围之内的待处理数据的全局同步,甚至还会造成数据时间在当前系统时间窗口范围之内的待处理数据统计与计算过程的混乱。故将所述系统接收时间在所述关闭时间点之后的待处理数据丢弃。

本申请的优选实施例中,分别以关闭时间点和同步时间点作为处理结果的输出节点。

具体的,当所述数据统计系统的系统时间到达所述关闭时间点时,将数据时间在所述前一系统时间窗口范围之内的待处理数据的处理结果进行输出,并关闭与所述前一系统时间窗口对应的数据时间窗口。

本申请的优选实施例中,当所述数据统计系统的系统时间到达所述同步时间点时,处理在所述同步时间点之前所缓存的且数据时间在当前系统时间窗口范围之内的待处理数据,并输出处理结果。

由此可见,通过应用本申请的技术方案,通过预先为数据统计系统的每一段系统时间窗口设置关闭时间点以及同步时间点的方式,分别以关闭时间点和同步时间点为节点,并以关闭时间点和同步时间点为节点对待处理数据进行分段处理与输出,同时还增加了待处理数据的全局同步过程,可以在保证数据统计完整的前提下对其及时进行处理,从而提高了数据处理结果的准确性和实时性。

为了进一步阐述本发明的技术思想,现结合图2所示的具体的应用场景,对本申请的技术方案进行说明。

在对流式计算的数据进行统计时,由于数据的系统时间和数据时间之间存在差异,故很容易出现当前数据时间窗口的边缘会有部分数据跨越到另一数据时间窗口中的情况,从而使得流式计算的结果受到影响。由于数据的系 统时间和数据时间之间的差异往往不是很大,故当前数据时间窗口的边缘的部分数据一般仅跨越到相邻的数据时间窗口(即下一数据时间窗口)中,即使出现极少量当前数据时间窗口对应的数据跨越到非相邻的数据时间窗口时(即下一数据时间窗口之后的数据时间窗口),则到对应的数据时间窗口数据处理节点时,将该跨越的数据丢弃即可。在流式计算中,出现上述情况的可能性极低,再者即使出现上述情况,选择将极少量的数据丢弃,也不会影响到对当前数据时间窗口数据的统计处理结果。

故此具体的应用场景中,在针对需要实时并完整输出计算结果的流式计算过程中,提出了一种数据处理方法,以数据时间窗口作为数据统计的时间依据,系统时间窗口作为数据时间窗口关闭和全局同步的依据。

该方法通过在每一段系统时间窗口均预先设置关闭时间点以及同步时间点。其中关闭时间点根据系统时间与所述数据时间之间的时间差值设置,同步时间点根据关闭时间窗口的耗时以及数据统计系统中各设备之间的时钟差值设置。

具体的,本应用场景以0-1为上一系统时间窗口,1-2为当前系统时间窗口。其中,上一系统时间窗口预先设置关闭时间点ct0和同步时间点st0,当前系统时间窗口预先设置关闭时间点ct1和同步时间点st1。

该方法具体包括如下步骤:

步骤11~ct1,数据统计系统接收待处理数据,根据所述待处理数据的数据时间进行判断,若所述数据时间在当前系统时间窗口1-2的范围之内,将待处理数据进行缓存;若所述数据时间在前一系统时间窗口0-1的范围之内,将待处理数据进行即时处理并输出。

具体地,此时间段内接收的待处理数据,既有对应前一系统时间窗口0-1的,也有对应当前系统时间窗口1-2的。若待处理数据对应前一系统时间窗口0-1,则对数据进行即时处理并输出;若待处理数据对应当前系统时间窗口1-2, 则仅对数据进行缓存而不处理。

步骤2ct1时刻,输出数据时间在所述前一系统时间窗口0-1的范围之内的所有待处理数据的处理结果,并关闭与所述前一系统时间窗口0-1对应的数据时间窗口。

具体地,到达ct1时刻时,则不再缓存对应于前一系统时间窗口0-1的待处理数据。

步骤3ct1~st1,接收待处理数据,根据所述待处理数据的数据时间进行判断,若所述数据时间在当前系统时间窗口1-2的范围之内,将待处理数据进行缓存,并对缓存的将待处理数据进行全局同步;若所述数据时间在前一系统时间窗口0-1的范围之内,丢弃待处理数据。

具体地,此时间段内接收的待处理数据,既有对应前一系统时间窗口0-1的,也有对应当前系统时间窗口1-2的。若待处理数据对应前一系统时间窗口0-1,则丢弃待处理数据;若待处理数据对应当前系统时间窗口1-2,则对待处理数据进行缓存以进行全局同步而不处理。

步骤4st1~2,接收待处理数据并处理,同时还对1~ct1缓存的,实时输出上述处理结果。

具体地,此时间段内接收的待处理数据有对应当前系统时间窗口1-2的。将所接收的待处理数据连同之前在1~st1时间段内缓存的数据时间在当前系统时间窗口1-2的范围之内的待处理数据进行处理,并实时输出上述处理结果。上述具体应用场景的技术方案中,在针对需要实时并完整输出计算结果的流式计算过程中,通过预先为数据统计系统的每一段系统时间窗口设置关闭时间点以及同步时间点的方式,对统计数据的进行全局同步,可以在保证数据统计完整的前提下对其及时进行处理,从而提高了数据处理结果的准确性和实时性。

在此需要说明的是,以上具体的应用场景的内容仅为本申请优选实施例 提出的示例,在此基础上还可以包括更多的应用领域,从而使得本技术方案具有更广泛的应用,这些改进都属于本发明的保护范围。

为达到以上技术目的,本申请还提出了一种数据处理设备,如图3所示,该设备应用于数据统计系统中,其中所述数据统计系统的每一段系统时间窗口均预先设置有关闭时间点以及同步时间点,其中,同一系统时间窗口的所述关闭时间点位于所述同步时间点之前以及起始时间点之后。该设备包括:

确定模块,当在当前系统时间窗口接收到待处理数据时,根据所述待处理数据的数据时间确定与所述待处理数据对应的系统时间窗口;

第一处理模块,在所述数据时间在当前系统时间窗口范围之内,将系统接收时间在所述同步时间点之前的待处理数据进行缓存,以及将所述系统接收时间在所述同步时间点之后的待处理数据即时进行处理;

第二处理模块,在所述数据时间在前一系统时间窗口的范围之内,将所述系统接收时间在所述关闭时间点之前的待处理数据即时进行处理,以及将所述系统接收时间在所述关闭时间点之后的待处理数据丢弃。

在具体的应用场景中,所述确定模块具体用于:

根据所述待处理数据在数据时间窗口的时间戳,获取所述待处理数据的数据时间;

判断所述数据时间是否在当前的系统时间窗口的起始时间点之后;

若是,确认所述待处理数据在当前系统时间窗口范围之内;

若否,确认所述待处理数据在之前系统时间窗口范围之内。

在具体的应用场景中,所述设备还包括:

第一输出模块,在所述数据统计系统的系统时间到达所述关闭时间点时,将数据时间在所述前一系统时间窗口范围之内的待处理数据的处理结果进行输出,并关闭与所述前一系统时间窗口对应的数据时间窗口。

在具体的应用场景中,所述设备还包括:

第二输出模块,在所述数据统计系统的系统时间到达所述同步时间点时,处理在所述同步时间点之前所缓存的且数据时间在当前系统时间窗口范围之内的待处理数据,并输出处理结果。

在具体的应用场景中,所述关闭时间点根据所述系统时间与所述数据时间之间的时间差值设置;

所述同步时间点根据关闭时间窗口的耗时以及所述数据统计系统中各设备之间的时钟差值设置。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1