发明内容
本发明的主要目的在于提供一种分布式数据的处理方法和装置,以解决现有技术中使用StreamInsight进行分布式数据计算容易出现计算结果不完整的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种分布式数据的处理方法,包括:获取每个服务器最后一次处理的分布式数据的时间节点,其中,服务器为分布式服务器中的服务器,分布式服务器为接收并处理分布式数据的服务器;计算每个时间节点与当前时间的时间间隔,得到多个时间间隔;判断多个时间间隔中是否存在第一类时间间隔,其中,第一类时间间隔为多个时间间隔中时长大于预设时间的时间间隔;在判断出多个时间间隔中不存在第一类时间间隔的情况下,确定第一时间间隔对应的时间节点为处理分布式数据的结果输出时间,其中,第一时间间隔为多个时间间隔中的最大时间间隔;以及在判断出多个时间间隔中存在第一类时间间隔的情况下,确定第二时间间隔对应的时间节点为处理分布式数据的结果输出时间,其中,第二时间间隔为第二类时间间隔中的最大时间间隔,第二类时间间隔为多个时间间隔中时长小于或等于预设时间的时间间隔。
进一步地,通过比较多个时间间隔中每个时间间隔与预设时间的大小,确定第一类时间间隔和第二类时间间隔。
进一步地,通过以下方式确定预设时间:获取分布式服务器处理分布式数据的时间跨度值和分布式服务器的时间默认值;判断时间跨度值是否大于时间默认值;在判断出时间跨度值大于时间默认值的情况下,确定时间跨度值为预设时间;以及在判断出时间跨度值小于或等于时间默认值的情况下,确定时间默认值为预设时间。
进一步地,在确定出处理分布式数据的结果输出时间之后,处理方法还包括:获取分布式服务器在结果输出时间时刻的输出数据;以及整合获取到的输出数据,得到分布式数据的处理结果。
进一步地,获取分布式服务器在结果输出时间时刻的输出数据包括:获取分布式服务器中目标服务器在结果输出时间时刻的输出数据,其中,目标服务器为第二类时间间隔对应的服务器。
为了实现上述目的,根据本发明的另一方面,提供了一种分布式数据的处理装置,该处理装置用于执行本发明上述内容所提供的任一种分布式数据的处理方法。
为了实现上述目的,根据本发明的另一方面,提供了一种分布式数据的处理装置,包括:第一获取单元,用于获取每个服务器最后一次处理的分布式数据的时间节点,其中,服务器为分布式服务器中的服务器,分布式服务器为接收并处理分布式数据的服务器;计算单元,用于计算每个时间节点与当前时间的时间间隔,得到多个时间间隔;第一判断单元,用于判断多个时间间隔中是否存在第一类时间间隔,其中,第一类时间间隔为多个时间间隔中时长大于预设时间的时间间隔;第一确定单元,用于在判断出多个时间间隔中不存在第一类时间间隔的情况下,确定第一时间间隔对应的时间节点为处理分布式数据的结果输出时间,其中,第一时间间隔为多个时间间隔中的最大时间间隔;以及第二确定单元,用于在判断出多个时间间隔中存在第一类时间间隔的情况下,确定第二时间间隔对应的时间节点为处理分布式数据的结果输出时间,其中,第二时间间隔为第二类时间间隔中的最大时间间隔,第二类时间间隔为多个时间间隔中时长小于或等于预设时间的时间间隔。
进一步地,处理装置还包括:比较单元,用于比较多个时间间隔中每个时间间隔与预设时间的大小,以确定第一类时间间隔和第二类时间间隔。
进一步地,处理装置还包括:第二获取单元,用于获取分布式服务器处理分布式数据的时间跨度值和分布式服务器的时间默认值;第二判断单元,用于判断时间跨度值是否大于时间默认值;第三确定单元,用于在判断出时间跨度值大于时间默认值的情况下,确定时间跨度值为预设时间;以及第四确定单元,用于在判断出时间跨度值小于或等于时间默认值的情况下,确定时间默认值为预设时间。
进一步地,处理装置还包括:第三获取单元,用于获取分布式服务器在结果输出时间时刻的输出数据;以及整合单元,用于整合获取到的输出数据,得到分布式数据的处理结果。
进一步地,第三获取单元包括:获取模块,用于获取分布式服务器中目标服务器在结果输出时间时刻的输出数据,其中,目标服务器为第二类时间间隔对应的服务器。
本发明采用获取每个服务器最后一次处理的分布式数据的时间节点,其中,服务器为分布式服务器中的服务器,分布式服务器为接收并处理分布式数据的服务器;计算每个时间节点与当前时间的时间间隔,得到多个时间间隔;判断多个时间间隔中是否存在第一类时间间隔,其中,第一类时间间隔为多个时间间隔中时长大于预设时间的时间间隔;在判断出多个时间间隔中不存在第一类时间间隔的情况下,确定第一时间间隔对应的时间节点为处理分布式数据的结果输出时间,其中,第一时间间隔为多个时间间隔中的最大时间间隔;以及在判断出多个时间间隔中存在第一类时间间隔的情况下,确定第二时间间隔对应的时间节点为处理分布式数据的结果输出时间,其中,第二时间间隔为第二类时间间隔中的最大时间间隔,第二类时间间隔为多个时间间隔中时长小于或等于预设时间的时间间隔。通过获取每个服务器最后一次所处理的分布式数据的时间节点,并计算每个时间节点与当前时间的时间间隔,若某个服务器对应的时间间隔相对较大(即,超出预设时间),则说明这个服务器节点长时间没有接收到需要进行处理的分布式数据,也没有数据的处理结果输出,反之,若某个服务器对应的时间间隔相对较小(即,未超出预设时间),则说明这个服务器节点有接收到需要进行处理的分布式数据,因此,通过计算时间间隔,并比较时间间隔与预设时间的大小,实现了能够准确确定各个服务器节点的处理进度,并能够准确确定出能够完整输出分布式数据整体处理结果的时间,解决了使用StreamInsight进行分布式数据计算容易出现计算结果不完整的问题,进而达到了保证StreamInsight下分布式计算结果完整性的效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例提供给了一种分布式数据的处理方法,以下对本发明实施例所提供的分布式数据的处理方法进行具体介绍:
图1是根据本发明实施例的分布式数据的处理方法的流程图,如图1所示,该方法包括如下的步骤S102至步骤S110:
S102:获取每个服务器最后一次处理的分布式数据的时间节点,其中,服务器为分布式服务器中的服务器,分布式服务器为接收并处理分布式数据的服务器,即,对分布式服务器中每个服务器最后一次所处理的分布式数据的时间节点进行获取,在对分布式数据进行处理时,采用分布式计算处理方式,所谓分布式计算,是指把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
S104:计算每个时间节点与当前时间的时间间隔,得到多个时间间隔。
S106:判断多个时间间隔中是否存在第一类时间间隔,其中,第一类时间间隔为多个时间间隔中时长大于预设时间的时间间隔,具体地,可以通过比较每个时间间隔与预设时间的大小,来确定第一类时间间隔,若比较出某个时间间隔的时长大于预设时间的时长,则确定这个时间间隔属于第一类时间间隔,反之,则不属于第一类时间间隔。
S108:在判断出多个时间间隔中不存在第一类时间间隔的情况下,确定第一时间间隔对应的时间节点为处理分布式数据的结果输出时间,其中,第一时间间隔为多个时间间隔中的最大时间间隔,即,在判断出多个时间间隔均小于或等于预设时间的情况下,确定多个时间间隔中最大时间间隔所对应的时间节点为处理分布式数据的结果输出时间。
S110:在判断出多个时间间隔中存在第一类时间间隔的情况下,确定第二时间间隔对应的时间节点为处理分布式数据的结果输出时间,其中,第二时间间隔为第二类时间间隔中的最大时间间隔,第二类时间间隔为多个时间间隔中时长小于或等于预设时间的时间间隔,即,在判断出多个时间间隔中存在时长大于预设时间的情况下,确定第二类时间间隔中最大时间间隔所对应的时间节点为处理分布式数据的结果输出时间,对于第二类时间间隔的确定,同样可以通过比较每个时间间隔与预设时间的大小,来确定第二类时间间隔,若比较出某个时间间隔的时长小于或等于预设时间的时长,则确定这个时间间隔属于第二类时间间隔,反之,则不属于第二类时间间隔。即,确定时间间隔中时长大于预设时间的为第一类时间间隔,时长小于或等于预设时间的为第二类时间间隔。
本发明实施例的分布式数据的处理方法,通过获取每个服务器最后一次所处理的分布式数据的时间节点,并计算每个时间节点与当前时间的时间间隔,若某个服务器对应的时间间隔相对较大(即,超出预设时间),则说明这个服务器节点长时间没有接收到需要进行处理的分布式数据,也没有数据的处理结果输出,反之,若某个服务器对应的时间间隔相对较小(即,未超出预设时间),则说明这个服务器节点有接收到需要进行处理的分布式数据,因此,通过计算时间间隔,并比较时间间隔与预设时间的大小,实现了能够准确确定各个服务器节点的处理进度,并能够准确确定出能够完整输出分布式数据整体处理结果的时间,解决了使用StreamInsight进行分布式数据计算容易出现计算结果不完整的问题,进而达到了保证StreamInsight下分布式计算结果完整性和一致性的效果。
以下以进行分布式数据处理的分布式服务器具有3台服务器,预设时间为5分钟为例,进一步说明本发明实施例的分布式数据的处理方法:
图2是多个时间间隔中不存在第一类时间间隔的情况下,确定出的处理分布式数据的结果输出时间的示意图,图3是多个时间间隔中存在第一类时间间隔的情况下,确定出的处理分布式数据的结果输出时间的示意图,如图2所示,假如当前时间为2013-08-0812:04:00,各个服务器最后一次处理的分布式数据的时间节点如下:
服务器S1:2013-08-0812:01:00
服务器S2:2013-08-0812:03:00
服务器S3:2013-08-0812:04:00
由于设定的时间差距阈值(即,预设时间)为5分钟,相对于当前时间,服务器S1,服务器S2和服务器S3对应的时间节点相对当前时间的时间间隔都在阈值以内,所以,就取当前三个服务器都有数据的最新时间为整体数据计算完整时间,也即是最大时间间隔对应的时间节点,结果为:2013-08-0812:01:00。
如图3所示,假如当前时间为2013-08-0812:07:00,各个服务器最后一次处理的分布式数据的时间节点如下:
服务器S1:2013-08-0812:01:00
服务器S2:2013-08-0812:03:00
服务器S3:2013-08-0812:04:00
由于设定的时间差距阈值(即,预设时间)为5分钟,相对于当前时间,服务器S1对应的时间节点相对当前时间的时间间隔超出了阈值,则确定服务器S1无数据输出。服务器S2和服务器S3对应的时间节点相对当前时间的时间间隔都在阈值以内,所以,就取服务器S2和服务器S3都有数据的最新时间为整体数据计算完整时间,也即是未超出阈值的时间间隔中最大时间间隔对应的时间节点,结果为:2013-08-0812:03:00。
优选地,在本发明实施例中,对于预设时间的设定方式,除了直接根据实际情况进行预先设定外,还可以采用以下方式进行具体确定:
首先,获取分布式服务器处理分布式数据的时间跨度值Window(即,时间跨度窗口)的大小,并获取分布式服务器的时间默认值Default的大小。
其次,判断时间跨度值Window是否大于时间默认值Default。
然后,在判断出时间跨度值Window大于时间默认值Default的情况下,确定时间跨度值Window为预设时间,比如,Default=5分钟,Window=10分钟,则预设时间设置为10分钟。或者,在判断出时间跨度值小于或等于时间默认值的情况下,确定时间默认值为预设时间,比如,Default=5分钟,Window=3分钟,则预设时间设置为5分钟。
通过对比分布式服务器处理分布式数据的时间跨度值和分布式服务器的时间默认值的大小,并确定较大的一个时间为预设时间,实现了根据分布式服务器的实际情况来精确地设定预设时间的大小,以保证能够准确确定分布式数据整体处理结果的时间,进一步保证分布式计算结果完整性,避免影响整体数据输出。
进一步地,在确定出处理分布式数据的结果输出时间之后,本发明实施例的分布式数据的处理方法还包括:获取分布式服务器在结果输出时间时刻的输出数据,具体地,主要是获取每个目标服务器在结果输出时间时刻的输出数据,所谓目标服务器是指其对应的时间间隔属于第二类时间间隔,也即,目标服务器为第二类时间间隔对应的服务器。然后,整合获取到的输出数据,得到分布式数据的处理结果。
本发明实施例还提供了一种分布式数据的处理装置,该处理装置主要用于执行本发明实施例上述内容所提供的任一种分布式数据的处理方法,以下对本发明实施例所提供的分布式数据的处理装置进行具体介绍:
图4是根据本发明实施例的分布式数据的处理装置的示意图,如图4所示,该处理装置主要包括第一获取单元10、计算单元20、第一判断单元30、第一确定单元40和第二确定单元50,其中:
第一获取单元10用于获取每个服务器最后一次处理的分布式数据的时间节点,其中,服务器为分布式服务器中的服务器,分布式服务器为接收并处理分布式数据的服务器,即,对分布式服务器中每个服务器最后一次所处理的分布式数据的时间节点进行获取,在对分布式数据进行处理时,采用分布式计算处理方式,所谓分布式计算,是指把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
计算单元20用于计算每个时间节点与当前时间的时间间隔,得到多个时间间隔。
第一判断单元30用于判断多个时间间隔中是否存在第一类时间间隔,其中,第一类时间间隔为多个时间间隔中时长大于预设时间的时间间隔,具体地,可以通过比较每个时间间隔与预设时间的大小,来确定第一类时间间隔,若比较出某个时间间隔的时长大于预设时间的时长,则确定这个时间间隔属于第一类时间间隔,反之,则不属于第一类时间间隔。
第一确定单元40用于在判断出多个时间间隔中不存在第一类时间间隔的情况下,确定第一时间间隔对应的时间节点为处理分布式数据的结果输出时间,其中,第一时间间隔为多个时间间隔中的最大时间间隔,即,在判断出多个时间间隔均小于或等于预设时间的情况下,确定多个时间间隔中最大时间间隔所对应的时间节点为处理分布式数据的结果输出时间。
第二确定单元50用于在判断出多个时间间隔中存在第一类时间间隔的情况下,确定第二时间间隔对应的时间节点为处理分布式数据的结果输出时间,其中,第二时间间隔为第二类时间间隔中的最大时间间隔,第二类时间间隔为多个时间间隔中时长小于或等于预设时间的时间间隔,即,在判断出多个时间间隔中存在时长大于预设时间的情况下,确定第二类时间间隔中最大时间间隔所对应的时间节点为处理分布式数据的结果输出时间,对于第二类时间间隔的确定,同样可以通过比较每个时间间隔与预设时间的大小,来确定第二类时间间隔,若比较出某个时间间隔的时长小于或等于预设时间的时长,则确定这个时间间隔属于第二类时间间隔,反之,则不属于第二类时间间隔。即,确定时间间隔中时长大于预设时间的为第一类时间间隔,时长小于或等于预设时间的为第二类时间间隔。
本发明实施例的分布式数据的处理装置,通过获取每个服务器最后一次所处理的分布式数据的时间节点,并计算每个时间节点与当前时间的时间间隔,若某个服务器对应的时间间隔相对较大(即,超出预设时间),则说明这个服务器节点长时间没有接收到需要进行处理的分布式数据,也没有数据的处理结果输出,反之,若某个服务器对应的时间间隔相对较小(即,未超出预设时间),则说明这个服务器节点有接收到需要进行处理的分布式数据,因此,通过计算时间间隔,并比较时间间隔与预设时间的大小,实现了能够准确确定各个服务器节点的处理进度,并能够准确确定出能够完整输出分布式数据整体处理结果的时间,解决了使用StreamInsight进行分布式数据计算容易出现计算结果不完整的问题,进而达到了保证StreamInsight下分布式计算结果完整性和一致性的效果。
进一步地,处理装置还包括比较单元,具体地,可以通过比较单元比较多个时间间隔中每个时间间隔与预设时间的大小,来确定出上述第一类时间间隔和第二类时间间隔。
优选地,本发明实施例的分布式数据的处理装置还包括第二获取单元、第二判断单元、第三确定单元和第四确定单元,在本发明实施例中,对于预设时间的设定方式,除了直接根据实际情况进行预先设定外,还可以采用以下方式通过第二获取单元、第二判断单元、第三确定单元和第四确定单元的协同作用进行具体确定:
首先,第二获取单元获取分布式服务器处理分布式数据的时间跨度值Window(即,时间跨度窗口)的大小,并获取分布式服务器的时间默认值Default的大小。
其次,第二判断单元判断时间跨度值Window是否大于时间默认值Default。
然后,在判断出时间跨度值Window大于时间默认值Default的情况下,第三确定单元确定时间跨度值Window为预设时间,比如,Default=5分钟,Window=10分钟,则预设时间设置为10分钟。或者,在判断出时间跨度值小于或等于时间默认值的情况下,第四确定单元确定时间默认值为预设时间,比如,Default=5分钟,Window=3分钟,则预设时间设置为5分钟。
通过对比分布式服务器处理分布式数据的时间跨度值和分布式服务器的时间默认值的大小,并确定较大的一个时间为预设时间,实现了根据分布式服务器的实际情况来精确地设定预设时间的大小,以保证能够准确确定分布式数据整体处理结果的时间,进一步保证分布式计算结果完整性,避免影响整体数据输出。
进一步地,本发明实施例的分布式数据的处理装置还包括第三获取单元和整合单元,其中,在第一确定单元40或第二确定单元50确定出处理分布式数据的结果输出时间之后,第三获取单元获取分布式服务器在结果输出时间时刻的输出数据,具体地,第三获取单元主要通过获取模块来获取每个目标服务器在结果输出时间时刻的输出数据,所谓目标服务器是指其对应的时间间隔属于第二类时间间隔,也即,目标服务器为第二类时间间隔对应的服务器。然后,由整合单元整合获取到的输出数据,得到分布式数据的处理结果。
从以上的描述中,可以看出,本发明实现了准确确定出能够完整输出分布式数据整体处理结果的时间,达到了保证StreamInsight下分布式计算结果完整性和一致性的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。