本技术涉及计算机,尤其涉及一种数据处理方法和计算设备。
背景技术:
1、随着云计算、人工智能和大数据等计算机技术的发展,数据的总量越来越多。为此,通常使用数据去重技术降低数据的存储压力。
2、在数据去重技术中对待处理的数据进行分块是较为关键的一步。目前,使用滑动窗口对数据进行分块较为常用的方法。具体是,在滑动窗口每滑动一次后,需要计算滑动窗口内的数据的特征值,然后根据该特征值确定是否切割待处理的数据。可以看出,滑动窗口的滑动步长对数据分块的计算量起到一定影响。在滑动窗口长度一定的情况下,滑动步长较小时,计算特征值的次数增多,从而增加了计算量。
技术实现思路
1、本技术提供了一种数据处理方法和计算设备,根据滑动窗口内的数据的特征值改变滑动窗口的滑动步长,从而减少数据分块的计算量,提升分块效率。
2、第一方面,本技术提供一种数据处理方法。该方法包括:确定数据段中滑动窗口覆盖的数据对应的特征值,所述数据段包括多个字节的数据;若所述特征值不满足跳转条件,所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节;和/或,若所述特征值满足所述跳转条件,所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节,m和n均为正整数,n大于m。
3、上述方案中,设置跳转条件,在特征值满足跳转条件的情况下,可以使滑动窗口的滑动更大的步长,使其跳过一部分数据,减少了计算特征值的计算量,降低其计算开销,从而提高其分块效率。同时,该方法中,根据滑动窗口内的数据的特征值切割数据,当滑动窗口内的数据一定时,其特征值不会发生变化,因此可以解决现有技术存在边界偏移的问题。
4、此外,n的取值可以是任意值,使滑动窗口的滑动长度可以不受任何限制。即,在每次跳转时,可以动态决定或者使用预定义的固定值确定n的取值,使得数据分块更容易调节数据块的大小,进一步减少计算量,提升分块效率。
5、在一种可能的实施方式中,在判断所述特征值是否满足所述跳转条件之前,所述方法还包括:若所述特征值满足切割条件,切割所述数据段,得到数据块;若所述特征值不满足所述切割条件,判断所述特征值是否满足所述跳转条件。
6、在一种可能的实施方式中,在所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节之前,所述方法还包括:若所述特征值满足切割条件,切割所述数据段,得到数据块;若所述特征值不满足所述切割条件,确定所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节。
7、在一种可能的实施方式中,在所述切割所述数据段之前,所述方法还包括:确定所述数据段的头部位置至所述滑动窗口的尾部位置之间的字节数;若所述字节数等于或大于字节数阈值,确定切割所述数据段;若所述字节数小于所述字节数阈值,确定所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节。
8、在一种可能的实施方式中,所述跳转条件包含切割条件,在所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节之前,所述方法还包括:若所述特征值满足切割条件,切割所述数据段,得到数据块;若所述特征值不满足所述切割条件,确定所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节。
9、在前述的第一方面的几个实施方式中,通过增加跳转条件使得滑动窗口可以跳过一定数据,可以减少计算特征值的次数。但是,由于切割条件和跳转条件之间不存在包含关系,对于待处理数据对应的大部分特征值都需要进行两次条件判断,这样会增加数据分块的时长,导致数据去重效率低、吞吐小。为此,可以设置切割条件和跳转条件之间存在包含关系,以减少条件判断次数。如果跳转条件包含切割条件,跳转条件较宽松。如果切割条件包含跳转条件,切割条件较宽松。当特征值不满足较宽松的条件时,不再判断另一个条件。换言之,只有当特征值满足较宽松条件时,再判断是否满足另一个条件。这样可以减少条件判断的次数,相比于之前的几种实施方式,本实施方式可以通过减少条件判断次数来减少数据分块的时间,从而提升数据去重的吞吐。
10、在一种可能的实施方式中,在所述切割所述数据段之前,所述方法还包括:确定所述数据段的头部位置至所述滑动窗口的尾部位置之间的字节数;若所述字节数等于或大于字节数阈值,确定切割所述数据段,或者,若所述字节数小于所述字节数阈值,确定所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节。
11、在一种可能的实施方式中,所述切割所述数据段,得到数据块包括:根据所述数据段的头部位置至所述滑动窗口的尾部位置覆盖的数据确定数据块。
12、在一种可能的实施方式中,所述特征值包括哈希值,所述确定数据段中滑动窗口覆盖的数据对应的特征值包括:利用哈希算法确定所述滑动窗口覆盖的数据对应的哈希值。
13、第二方面,本技术实施例还提供一种数据处理方法。该方法包括:确定数据段中滑动窗口覆盖的数据对应的特征值,所述数据段包括多个字节的数据;若所述特征值不满足切割条件,所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节,和/或,若所述特征值不满足所述切割条件且满足跳转条件,所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节,m和n均为正整数,n大于m。
14、在一种可能的实施方式中,所述方法还包括:若所述特征值不满足切割条件且不满足跳转条件,切割所述数据段,得到数据块。
15、第三方面,本技术还提供一种数据处理装置。该装置包括:确定模块和切割模块。
16、其中,确定模块用于确定数据段中滑动窗口覆盖的数据对应的特征值,所述数据段包括多个字节的数据。
17、其中,切割模块,用于若所述特征值不满足跳转条件,所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节,和/或,若所述特征值满足所述跳转条件,所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节,m和n均为正整数,n大于m。
18、在一种可能的实施方式中,在判断所述特征值是否满足所述跳转条件之前,所述切割模块还用于:若所述特征值满足切割条件,切割所述数据段,得到数据块;若所述特征值不满足所述切割条件,判断所述特征值是否满足所述跳转条件。
19、在一种可能的实施方式中,在所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节之前,所述切割模块还用于:若所述特征值满足切割条件,切割所述数据段,得到数据块;若所述特征值不满足所述切割条件,确定所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节。
20、在一种可能的实施方式中,在所述切割所述数据段之前,所述切割模块还用于:确定所述数据段的头部位置至所述滑动窗口的尾部位置之间的字节数;若所述字节数等于或大于字节数阈值,确定切割所述数据段,若所述字节数小于所述字节数阈值,确定所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节。
21、在一种可能的实施方式中,所述跳转条件包含切割条件,在所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节之前,所述切割模块还用于:若所述特征值满足切割条件,切割所述数据段,得到数据块;若所述特征值不满足所述切割条件,确定所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节。
22、在一种可能的实施方式中,在所述切割所述数据段之前,所述切割模块还用于:确定所述数据段的头部位置至所述滑动窗口的尾部位置之间的字节数:若所述字节数等于或大于字节数阈值,确定切割所述数据段,若所述字节数小于所述字节数阈值,确定所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节。
23、在一种可能的实施方式中,所述切割模块具体用于:根据所述数据段的头部位置至所述滑动窗口的尾部位置覆盖的数据确定数据块。
24、在一种可能的实施方式中,所述特征值包括哈希值,所述确定模块具体用于:利用哈希算法确定所述滑动窗口覆盖的数据对应的哈希值。
25、第四方面,本技术还提供一种数据处理装置。该装置包括:确定模块和切割模块。
26、其中,确定模块用于确定数据段中滑动窗口覆盖的数据对应的特征值,所述数据段包括多个字节的数据。
27、其中,切割模块用于若所述特征值不满足切割条件,所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节,若所述特征值不满足所述切割条件且满足跳转条件,所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节,所述切割条件包含所述跳转条件,m和n均为正整数,n大于m。
28、在一种可能的实施方式中,所述切割模块还用于:若所述特征值不满足切割条件且不满足跳转条件,切割所述数据段,得到数据块。
29、第五方面,本技术还提供一种计算设备。该计算设备中包括:处理器和存储器,所述处理器用于执行存储于所述存储器内的计算机程序以实现前述第一方面及其可选实施方式中的任一方案、或者实现前述第二方面及其可选实施方式中的任一方案。
30、第六方面,一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如实现前述第一方面及其可选实施方式中的任一方案、或者实现前述第二方面及其可选实施方式中的任一方案。
31、第七方面,一种计算机程序产品,包括程序代码,当计算机运行所述计算机程序产品时,使得所述计算机实现前述第一方面及其可选实施方式中的任一方案、或者实现前述第二方面及其可选实施方式中的任一方案。
32、上述提供的任一种装置或计算设备或计算机存储介质或计算机程序产品,均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文提供的对应方法中的对应方案的有益效果,此处不再赘述。
1.一种数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在判断所述特征值是否满足所述跳转条件之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,在所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节之前,所述方法还包括:
4.根据权利要求2或3所述的方法,其特征在于,在所述切割所述数据段之前,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述跳转条件包含切割条件,在所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节之前,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,在所述切割所述数据段之前,所述方法还包括:
7.根据权利要求2-6任一项所述的方法,其特征在于,所述切割所述数据段,得到数据块包括:
8.根据权利要求1-7任一项所述的方法,其特征在于,所述特征值包括哈希值,所述确定数据段中滑动窗口覆盖的数据对应的特征值包括:
9.一种数据处理方法,其特征在于,所述方法包括:
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
11.一种数据处理装置,其特征在于,所述装置包括:
12.根据权利要求11所述的装置,其特征在于,在判断所述特征值是否满足所述跳转条件之前,所述切割模块还用于:
13.根据权利要求11所述的装置,其特征在于,在所述滑动窗口向所述数据段中最后一个字节的数据移动m个字节之前,所述切割模块还用于:
14.根据权利要求12或13所述的装置,其特征在于,在所述切割所述数据段之前,所述切割模块还用于:
15.根据权利要求11所述的装置,其特征在于,所述跳转条件包含切割条件,在所述滑动窗口向所述数据段中最后一个字节的数据移动n个字节之前,所述切割模块还用于:
16.根据权利要求15所述的装置,其特征在于,在所述切割所述数据段之前,所述切割模块还用于:
17.根据权利要求12-16任一项所述的装置,其特征在于,所述切割模块具体用于:
18.根据权利要求11-17任一项所述的装置,其特征在于,所述特征值包括哈希值,所述确定模块具体用于:
19.一种数据处理装置,其特征在于,所述装置包括:
20.根据权利要求19所述的装置,其特征在于,所述切割模块还用于:
21.一种计算设备,其特征在于,所述计算设备中包括:处理器和存储器,所述处理器用于执行存储于所述存储器内的计算机程序以实现权利要求1至8任一所述的方法、或者实现权利要求9或10所述的方法。
22.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如实现权利要求1至8任一所述的方法、或者实现权利要求9或10所述的方法。
