文件去重方法、装置及系统、电子设备、计算机存储介质与流程

文档序号:37311232发布日期:2024-03-13 21:00阅读:12来源:国知局
文件去重方法、装置及系统、电子设备、计算机存储介质与流程

本发明涉及数据处理,尤其涉及一种文件去重方法、装置及系统、电子设备、计算机存储介质。


背景技术:

1、随着互联网技术的不断发展以及云计算的崛起,需要存储的文件越来越多,且也越来越丰富。但随着文件数量不断增多,存储系统中通常存在着大量的重复文件,例如同一文件来源上传的多个相同文件或者不同文件来源上传的多个相同文件。大量的重复文件占用了较多的内存,且不利于对文件进行各种操作,因此对文件进行去重操作显得十分必要。

2、现有技术中较为常用的去重算法有三种,分别为最长公共子串法、余弦相似度法和simhash算法。实践发现,最长公共子串法在文件数量较多、文件数量不可控的情况下,容易造成内存溢出,这会大大降低去重效率;余弦相似度法统一对所有文件进行向量化,一旦有新文件加入,所有文件都要重新向量化,当大量文件去重时,将会产生大量稀疏向量,造成计算量较大,不利于提高文件去重效率;simhash算法在降维的过程会使文件的信息有部分损失,容易产生误判的问题,特别是较短的文件,可能会误判为高相似度,不利于提高文件去重精准性。

3、综上所述,对于存储有大量文件的存储系统,在文件去重的过程中,很难保证文件去重效率及准确性。因此,提出一种新的文件去重方法,以提高文件去重效率及准确性显得尤为重要。


技术实现思路

1、本发明提供了一种文件去重方法、装置及系统、电子设备、计算机存储介质,能够有利于提高文件去重效率及准确性。

2、为了解决上述技术问题,本发明第一方面公开了一种文件去重方法,所述方法包括:

3、对于待去重的若干个文件,根据每个所述文件的第一属性参数对所有所述文件进行分组,得到多个第一文件组;

4、从所有所述第一文件组中筛选出满足第一预设重复条件的至少一个第二文件组;

5、对于每个所述第二文件组,根据该第二文件组中每个文件的第二属性参数对该第二文件组中的所有文件进行分组,得到该第二文件组对应的至少一个子文件组;

6、对于每个所述第二文件组,根据第二预设重复条件,从该第二文件组对应的所有子文件组中筛选出待去重子文件组,所述待去重子文件组为需要进行文件去重操作的文件组;

7、分别对每个所述待去重文件组执行文件去重操作。

8、作为一种可选的实施方式,在本发明第一方面中,所述第二文件组中每个文件的第二属性参数包括第一校验参数以及第二校验参数;

9、其中,所述对于每个所述第二文件组,根据该第二文件组中每个文件的第二属性参数对该第二文件组中的所有文件进行分组,得到该第二文件组对应的至少一个子文件组,包括:

10、对于每个所述第二文件组,根据预设校验参数分组条件以及该第二文件组中每个文件的第一校验参数以及第二校验参数,对该第二文件组中的所有文件进行分组,得到至少一个子文件组;所述预设校验参数分组条件用于指示将该第二文件组中第一校验参数以及第二校验参数分别对应相同的所有文件划分至同一个子文件组。

11、作为一种可选的实施方式,在本发明第一方面中,所述对于每个所述第二文件组,根据第二预设重复条件,从该第二文件组对应的所有子文件组中筛选出待去重的目标子文件组,包括:

12、对于每个所述第二文件组,若该第二文件组对应的子文件组中存在文件数量大于等于第二预设数量阈值的目标子文件组,则将所有所述目标子文件组确定为待去重子文件组。

13、作为一种可选的实施方式,在本发明第一方面中,每个所述文件的第一属性参数至少包括每个所述文件的文件大小;

14、其中,所述对于待去重的若干个文件,根据每个所述文件的第一属性参数对所有所述文件进行分组,得到至少一个第一文件组,包括:

15、对于待去重的若干个文件,根据预设文件大小分组条件以及每个所述文件的文件大小对所有所述文件进行分组,得到至少一个第一文件组;对于不属于同一所述第一文件组中的任意两个文件,二者的文件大小差异大于预设差异阈值;当某一所述第一文件组的文件数量大于等于2时,对于该第一文件组中的任意两个文件,二者的文件大小差异小于或者等于所述预设差异阈值。

16、作为一种可选的实施方式,在本发明第一方面中,所述从所有所述第一文件组中筛选出满足第一预设重复条件的至少一个第二文件组,包括:

17、若所有所述第一文件组中存在文件数量大于等于第一预设数量阈值的目标文件组,则将所有所述目标文件组确定为满足第一预设重复条件的第二文件组。

18、作为一种可选的实施方式,在本发明第一方面中,所述文件存在与之对应的基本属性参数以及扩展属性参数;所述文件的第一属性参数为所述基本属性参数中的参数,所述第二属性参数为所述扩展属性参数中的参数;

19、以及,所述对于每个所述第二文件组,根据该第二文件组中每个文件的第二属性参数对该第二文件组中的所有文件进行分组,得到该第二文件组对应的至少一个子文件组之前,所述方法还包括:

20、对于每个所述第二文件组中的每个文件,分别确定该文件的第一校验参数以及第二校验参数;

21、其中,所述对于每个所述第二文件组中的每个文件,分别确定该文件的第一校验参数以及第二校验参数,包括:

22、对于每个所述第二文件组中的每个文件,若该文件对应的基本属性参数中的文件修改时间与该文件对应的扩展属性参数中的文件修改时间不一致,则根据该文件对应的基本属性参数中的文件修改时间更新该文件对应的扩展属性参数中的文件修改时间,并在更新之后,按照预设校验值计算方式分别计算该文件的第一校验参数以及第二校验参数。

23、作为一种可选的实施方式,在本发明第一方面中,所述对于每个所述第二文件组中的每个文件,分别确定该文件的第一校验参数以及第二校验参数,还包括:

24、对于每个所述第二文件组中的每个文件,若该文件对应的基本属性参数中的文件修改时间与该文件对应的扩展属性参数中的文件修改时间一致,且该文件的扩展属性参数中存在第一校验参数及第二校验参数,则该文件的扩展属性参数中的第一校验参数及第二校验参数分别确定为该文件的第一校验参数以及第二校验参数;

25、对于每个所述第二文件组中的每个文件,若该文件对应的基本属性参数中的文件修改时间与该文件对应的扩展属性参数中的文件修改时间一致,且该文件的扩展属性参数中不存在第一校验参数及第二校验参数,则按照预设校验值计算方式分别计算该文件的第一校验参数以及第二校验参数。

26、作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:

27、对应任一所述文件,在计算得到该文件的第一校验参数以及第二校验参数之后,将计算得到的该文件的第一校验参数以及第二校验参数更新至该文件的扩展属性参数。

28、作为一种可选的实施方式,在本发明第一方面中,对于每个所述第二文件组中的每个文件,所述按照预设校验值计算方式分别计算该文件的第一校验参数以及第二校验参数,包括:

29、对于该文件对应的每个待计算校验参数,在打开该文件之后,按照设定的缓存空间循环从该文件读取相匹配的位数据,循环缓存至所述缓存空间,且每缓存一次位数据,对该位数据进行md5计算,直至计算出该文件中与该待计算校验参数相匹配的所有位数据的md5值。

30、作为一种可选的实施方式,在本发明第一方面中,所述分别对每个所述待去重文件组执行文件去重操作,包括:

31、对于每个所述待去重子文件组,根据该待去重文件组中的文件数量、该待去重文件组中每个文件的基本属性参数以及扩展属性参数,确定与该待去重文件组对应的去重策略,并根据该待去重文件组对应的去重策略对该待去重文件组执行去重操作。

32、本发明第二方面公开了一种文件去重装置,所述文件去重装置包括:

33、分组模块,用于对于待去重的若干个文件,根据每个所述文件的第一属性参数对所有所述文件进行分组,得到多个第一文件组;

34、筛选模块,用于从所有所述第一文件组中筛选出满足第一预设重复条件的至少一个第二文件组;

35、所述分组模块,还用于对于每个所述第二文件组,根据该第二文件组中每个文件的第二属性参数对该第二文件组中的所有文件进行分组,得到该第二文件组对应的至少一个子文件组;

36、所述筛选模块,还用于对于每个所述第二文件组,根据第二预设重复条件,从该第二文件组对应的所有子文件组中筛选出待去重子文件组,所述待去重子文件组为需要进行文件去重操作的文件组;

37、去重模块,用于分别对每个所述待去重文件组执行文件去重操作。

38、作为一种可选的实施方式,在本发明第二方面中,所述第二文件组中每个文件的第二属性参数包括第一校验参数以及第二校验参数;

39、其中,对于每个所述第二文件组,所述分组模块根据该第二文件组中每个文件的第二属性参数对该第二文件组中的所有文件进行分组,得到该第二文件组对应的至少一个子文件组的具体方式包括:

40、根据预设校验参数分组条件以及该第二文件组中每个文件的第一校验参数以及第二校验参数,对该第二文件组中的所有文件进行分组,得到至少一个子文件组;所述预设校验参数分组条件用于指示将该第二文件组中第一校验参数以及第二校验参数分别对应相同的所有文件划分至同一个子文件组。

41、作为一种可选的实施方式,在本发明第二方面中,对于每个所述第二文件组,所述筛选模块根据第二预设重复条件,从该第二文件组对应的所有子文件组中筛选出待去重子文件组的具体方式包括:

42、若该第二文件组对应的子文件组中存在文件数量大于等于第二预设数量阈值的目标子文件组,则将所有所述目标子文件组确定为待去重子文件组。

43、作为一种可选的实施方式,在本发明第二方面中,每个所述文件的第一属性参数至少包括每个所述文件的文件大小;

44、其中,对于待去重的若干个文件,所述分组模块根据每个所述文件的第一属性参数对所有所述文件进行分组,得到多个第一文件组的具体方式包括:

45、根据预设文件大小分组条件以及每个所述文件的文件大小对所有所述文件进行分组,得到多个第一文件组;对于不属于同一所述第一文件组中的任意两个文件,二者的文件大小差异大于预设差异阈值;当某一所述第一文件组的文件数量大于等于2时,对于该第一文件组中的任意两个文件,二者的文件大小差异小于或者等于所述预设差异阈值。

46、作为一种可选的实施方式,在本发明第二方面中,所述筛选模块从所有所述第一文件组中筛选出满足第一预设重复条件的至少一个第二文件组的具体方式包括:

47、若所有所述第一文件组中存在文件数量大于等于第一预设数量阈值的目标文件组,则将所有所述目标文件组确定为满足第一预设重复条件的第二文件组。

48、作为一种可选的实施方式,在本发明第二方面中,所述文件存在与之对应的基本属性参数以及扩展属性参数;所述文件的第一属性参数为所述基本属性参数中的参数,所述第二属性参数为所述扩展属性参数中的参数;

49、所述文件去重装置还包括计算模块,其中:

50、对于每个所述第二文件组,所述计算模块,用于在所述分组模块根据该第二文件组中每个文件的第二属性参数对该第二文件组中的所有文件进行分组,得到该第二文件组对应的至少一个子文件组之前,分别确定该第二文件组中的每个文件的第一校验参数以及第二校验参数;

51、其中,所述计算模块确定该第二文件组中的每个文件的第一校验参数以及第二校验参数的具体方式包括:

52、对于该第二文件组中的每个文件,若该文件对应的基本属性参数中的文件修改时间与该文件对应的扩展属性参数中的文件修改时间不一致,则根据该文件对应的基本属性参数中的文件修改时间更新该文件对应的扩展属性参数中的文件修改时间,并在更新之后,按照预设校验值计算方式分别计算该文件的第一校验参数以及第二校验参数。

53、作为一种可选的实施方式,在本发明第二方面中,所述计算模块确定该第二文件组中的每个文件的第一校验参数以及第二校验参数的具体方式还包括:

54、对于该第二文件组中的每个文件,若该文件对应的基本属性参数中的文件修改时间与该文件对应的扩展属性参数中的文件修改时间一致,且该文件的扩展属性参数中存在第一校验参数及第二校验参数,则该文件的扩展属性参数中的第一校验参数及第二校验参数分别确定为该文件的第一校验参数以及第二校验参数;

55、对于该第二文件组中的每个文件,若该文件对应的基本属性参数中的文件修改时间与该文件对应的扩展属性参数中的文件修改时间一致,且该文件的扩展属性参数中不存在第一校验参数及第二校验参数,则按照预设校验值计算方式分别计算该文件的第一校验参数以及第二校验参数。

56、作为一种可选的实施方式,在本发明第二方面中,对应任一所述文件,所述计算模块,还用于在计算得到该文件的第一校验参数以及第二校验参数之后,将计算得到的该文件的第一校验参数以及第二校验参数更新至该文件的扩展属性参数。

57、作为一种可选的实施方式,在本发明第二方面中,对于每个所述第二文件组中的每个文件,所述计算模块按照预设校验值计算方式分别计算该文件的第一校验参数以及第二校验参数的具体方式包括:

58、对于该文件对应的每个待计算校验参数,在打开该文件之后,按照设定的缓存空间循环从该文件读取相匹配的位数据,循环缓存至所述缓存空间,且每缓存一次位数据,对该位数据进行md5计算,直至计算出该文件中与该待计算校验参数相匹配的所有位数据的md5值。

59、作为一种可选的实施方式,在本发明第二方面中,所述去重模块分别对每个所述待去重文件组执行文件去重操作的具体方式为:

60、对于每个所述待去重子文件组,根据该待去重文件组中的文件数量、该待去重文件组中每个文件的基本属性参数以及扩展属性参数,确定与该待去重文件组对应的去重策略,并根据该待去重文件组对应的去重策略对该待去重文件组执行去重操作。

61、本发明第三方面公开了一种电子设备,所述电子设备包括:

62、存储有可执行程序代码的存储器;

63、与所述存储器耦合的处理器;

64、所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的文件去重方法。

65、本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的文件去重方法。

66、本发明第五方面公开了一种文件去重系统,所述文件去重系统至少包括本发明第二方面所述的文件去重装置,以及与所述文件去重装置通信连接的nas设备,且所述nas设备上存储有待去重的若干个文件,当所述文件去重装置获取所述待去重的若干个文件时,所述文件去重装置依据本发明第一方面中任一所述的文件去重方法对所述待去重的若干个文件完成去重操作。

67、本发明第六方面公开了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令在被处理器执行时实现本发明第一方面中任一所述的文件去重方法。

68、与现有技术相比,本发明具有以下有益效果:

69、本发明中,对于若干个文件,能够先根据每个文件的第一属性参数对所有文件进行分组,而后筛选出满足第一预设重复条件的至少一个第二文件组,也即:基于文件的属性参数实现一次分组后剔除不需要去重的文件组,只筛选需要去重的文件组,有利于减少后续的文件量,在剔除不需要去重的文件组之后,再根据剩余文件组中每个文件的第二属性参数对每个剩余文件组中的所有文件进行分组,进而再根据第二预设重复条件最终筛选出需要去重的文件组,这种基于文件的属性参数实现文件的分组并结合预设重复条件确定出待去重的文件组的方式有利于提高确定出的待去重文件组的准确性,进而有利于提高文件去重准确性及文件去重效率。此外,基于分组方式还能够实现待去重文件组的并行筛选操作,有利于提高待去重文件组的确定效率,进而有利于进一步提高文件去重效率。

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