CN107515931A - 一种基于聚类的重复数据检测方法 - Google Patents

一种基于聚类的重复数据检测方法 Download PDF

Info

Publication number
CN107515931A
CN107515931A CN201710747552.2A CN201710747552A CN107515931A CN 107515931 A CN107515931 A CN 107515931A CN 201710747552 A CN201710747552 A CN 201710747552A CN 107515931 A CN107515931 A CN 107515931A
Authority
CN
China
Prior art keywords
fingerprint
container
section
module
internal memory
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.)
Granted
Application number
CN201710747552.2A
Other languages
English (en)
Other versions
CN107515931B (zh
Inventor
周可
王桦
张攀峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201710747552.2A priority Critical patent/CN107515931B/zh
Publication of CN107515931A publication Critical patent/CN107515931A/zh
Application granted granted Critical
Publication of CN107515931B publication Critical patent/CN107515931B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Collating Specific Patterns (AREA)

Abstract

本发明公开了一种基于聚类的重复数据检测方法,其主要针对数据相似性较强的数据集类型,通过利用数据集中的数据相似性原理,提高重复数据检测的性能,同时提升数据去重的性能。具体而言,对于数据集中可能的重复数据,本发明利用相似性合并策略,先对检测指纹列表进行分段,每段选出代表性指纹,根据其代表性指纹将不同段分类并合并到不同的指纹容器中。指纹容器从数据集的相似段中收集重复的指纹,以增加数据去重的效率,同时提升去重的性能。指纹容器存储在磁盘上,它可以作为一个整体被写入和读出磁盘,这提高了指纹检索效率并克服了相似段的分段存储的问题。

Description

一种基于聚类的重复数据检测方法
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种基于聚类的重复数据检测方法和***。
背景技术
随着信息技术迅猛发展,信息已成为我们赖以生存的宝贵资源,成为了推动生产力快速发展的最大动力。信息技术的大量应用也伴随着海量的数据的产生,越来越多有价值的数据需要进行存储。那么,如何有效提高现有存储介质的存储效率,满足不断增长的存储需求,已经成为存储研究领域急迫解决的问题之一。同时,IDC公司调研报告显示现存约75%的数据为冗余信息,即仅有25%的数据具有唯一性。在此背景下,数据去重作为在较大空间范围内检测和消除冗余信息的一种新型技术成为近几年学术界和工业界的研究热点,并正被愈加广泛地应用到各种信息存储***。
重复指纹的检测是实现数据去重的重要技术手段,在现有的数据去重技术中,重复数据的检测主要是使用指纹检测的方式,即通过提取数据块的指纹(哈希值),再通过检测指纹的重复性来识别某个数据块是否为重复数据块。目前的重复指纹检测方法通常是采用单一的哈希表或B树等数据结构来实现重复指纹段的识别。
然而,上述重复指纹检测方法存在的一个不可忽略的问题是,其检测性能较为低下,无法针对大数据集实现有效的重复数据检测,从而影响到数据去重的整体效能。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于聚类的重复数据检测方法和***,其目的在于,解决现有基于指纹检测的重复数据检测方法存在的检测性能较为低下,无法针对大数据集实现有效的重复数据检测的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于聚类的重复数据检测方法,包括以下步骤:
(1)从磁盘中获取指纹列表文件,判断是否能够从该指纹列表文件中获取到部分指纹,如果获取不到则过程结束,否则将获取到的部分指纹其存储在指纹输入缓存空间中,将指纹输入缓存空间中的所有指纹N进行分段,每M个指纹组成一个指纹段,其中N为所有指纹的数量,M为任意自然数;
(2)设置计数器i=1;
(3)判断i是否大于N/M,如果大于则返回步骤(1),否则进入步骤(4);
(4)从步骤(1)得到的多个指纹段中取出第i个指纹段,并获取第i个指纹段中指纹值最小的指纹作为代表指纹,并判断该代表指纹是否位于内存中的代表指纹索引表中,如果是,则进入步骤(5),否则进入步骤(8);
(5)从代表指纹索引表中取出该代表指纹对应的指纹容器ID,并通过查找内存命中表来判断该指纹容器ID所对应的指纹容器是否存在于指纹容器缓存中,如果是则进入步骤(6),否则从磁盘中将该指纹容器ID对应的指纹容器读入到指纹容器缓存中,然后转入步骤(6);
(6)将代表指纹所在指纹段中重复的指纹剔除,并将剔除后的指纹段中的每个指纹逐一与指纹容器ID所对应的指纹容器中的所有指纹进行匹配,如果匹配的结果为重复,则将该指纹标记为重复指纹,如果匹配结果为不重复,则将该指纹***该指纹容器中;
(7)设置计数器i=i+1,并返回步骤(3);
(8)在指纹容器缓存中构建一个新的指纹容器,将该代表指纹所在指纹段中重复的指纹剔除,将剔除后的指纹段中的所有指纹***到新的指纹容器中,将代表指纹及新的指纹容器ID以键值对方式***到代表指纹索引表中,并将新的指纹容器ID***内存命中表中。
(9)设置计数器i=i+1,并返回步骤(3);
优选地,进一步包括在步骤(1)之前,在内存中设置空的指纹输入缓存空间、空的指纹容器缓存、空的内存命中表、以及代表指纹索引表的步骤,其中指纹输入缓存空间用于在内存中存储部分指纹,指纹容器缓存用于在内存中缓存部分指纹容器,内存命中表用于判断某个指纹容器是否已经缓存在内存中,代表指纹索引表用于将代表指纹存储在内存中,并为该代表指纹提供索引功能。
优选地,当N不能被M整除时,余下的少于M个指纹归为一个指纹段。
优选地,部分指纹的大小等于指纹输入缓存空间的大小,其范围是大于内存大小的0%,小于80%。
优选地,指纹段的大小M为64至128条。
优选地,指纹的指纹值是通过将字符串类型的指纹的转换为数值类型的指纹的方式获取到。
优选地,步骤(6)中,当指纹数量达到指纹容器容量的上限时,指纹容器不再接收新指纹,将指纹容器写回磁盘。
按照本发明的另一方面,提供了一种基于聚类的重复数据检测***,包括:
第一模块,用于从磁盘中获取指纹列表文件,判断是否能够从该指纹列表文件中获取到部分指纹,如果获取不到则过程结束,否则将获取到的部分指纹其存储在指纹输入缓存空间中,将指纹输入缓存空间中的所有指纹N进行分段,每M个指纹组成一个指纹段,其中N为所有指纹的数量,M为任意自然数;
第二模块,用于设置计数器i=1;
第三模块,用于判断i是否大于N/M,如果大于则返回第一模块,否则进入第四模块;
第四模块,用于从第一模块得到的多个指纹段中取出第i个指纹段,并获取第i个指纹段中指纹值最小的指纹作为代表指纹,并判断该代表指纹是否位于内存中的代表指纹索引表中,如果是,则进入第五模块,否则进入第八模块;
第五模块,用于从代表指纹索引表中取出该代表指纹对应的指纹容器ID,并通过查找内存命中表来判断该指纹容器ID所对应的指纹容器是否存在于指纹容器缓存中,如果是则进入第六模块,否则从磁盘中将该指纹容器ID对应的指纹容器读入到指纹容器缓存中,然后转入第六模块;
第六模块,用于将代表指纹所在指纹段中重复的指纹剔除,并将剔除后的指纹段中的每个指纹逐一与指纹容器ID所对应的指纹容器中的所有指纹进行匹配,如果匹配的结果为重复,则将该指纹标记为重复指纹,如果匹配结果为不重复,则将该指纹***该指纹容器中;
第七模块,用于设置计数器i=i+1,并返回第三模块;
第八模块,用于在指纹容器缓存中构建一个新的指纹容器,将该代表指纹所在指纹段中重复的指纹剔除,将剔除后的指纹段中的所有指纹***到新的指纹容器中,将代表指纹及新的指纹容器ID以键值对方式***到代表指纹索引表中,并将新的指纹容器ID***内存命中表中。
第九模块,用于设置计数器i=i+1,并返回步骤(3)。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明通过采用对指纹进行分段处理的方式,该方式能够有效缩小重复指纹查找的范围,从而提升了重复指纹检索的性能;
(2)本发明能够有效缩小重复指纹查找的范围,从而特别适用于大数据集中的重复指纹检索;
(3)本发明针对高冗余数据集能够提供接近于精确检测的效果。
(4)由于本发明的指纹分段过程采用了聚类思想,因此对于相似的指纹容器可以一次性读入内存中进行处理,从而避免了现有方法中将指纹容器存储在磁盘的多个位置,并需要进行多次读取处理的弊端。
附图说明
图1是本发明的逻辑结构图。
图2是本发明相似算法的基本原理图。
图3是相似融合示意图。
图4示出代表指纹索引表。
图5是本发明基于聚类的重复数据检测方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提供了一种高效的基于聚类的重复数据检测方法,该方法主要面对相似性较强的数据集,通过相似性原理及聚类思想将数据集中相似的数据集中到一起存放,解决现有重复数据检测方法中检测效率低下的问题,以适应存储需求不断扩大的现状。
本发明的基本思路在于,对待检测的指纹列表进行分段,并提取代表指纹,通过对代表指纹的检测来识别相似的指纹容器,接下来对指纹容器的查找来识别重复的数据。通过该方法可有效缩小指纹检查的范围,极大提升重复指纹检查的性能。
本发明的基本逻辑结构如图1所示,它主要由四个部分构成,它们分别是代表指纹索引表、内存命中表、指纹容器缓存及磁盘上的指纹容器构成。
为了清晰阐述本发明,对本申请文件中出现的术语加以解释和说明:
相似算法:数据相似理论被用于在不同文档之间搜索相同的文本块,见Broder,A.Z.,On the resemblance and containment of documents,in Compression andComplexity of Sequences.1997,IEEE.p.21~29。根据Broder相似算法有如下定理:
定理1:两个集合S1,S2,并假定H(S1)和H(S2)分别是对应于S1和S2中的元素的散列指纹集合。令min(H(S))表示H(S)的最小值,有:
上述定理说明,当一个集合中的元素的最小散列值等于另一个集合中的元素的最小散列值时,存在两个集合有较高概率共享一定数量的元素。在数据去重***中,此理论意味着如果来自两个不同数据块集合中两个数据块最小指纹是相同的,则存在两个数据集合具有较高概率共享大量数据块。为了方便讨论,将集合中的最小指纹命名为代表指纹(以下称为代表指纹)。
在数据去重***中,首先对需要对数据集中的目录进行递归扫描并形成文件列表。列表中的每个文件都使用数据分块算法将文件切分成数据块。每个数据块都被进行哈希计算并形成指纹列表。图2说明了如何获得指纹列表以及如何应用数据相似理论的示例。
根据数据相似性理论,指纹列表被划分为多个指纹子集。在本文中,指纹子集被定义为段,并且在指纹索引表中,该子集被存储在相似的指纹容器中。
相似合并:本发明的一个特征是它采用段合并策略,即将相似段合并到一个数据容器,从而可以极大提高相似段的查找过程。
在本发明中,检测***根据它们的代表指纹将指纹列表中的相似段分类并合并到不同的数据容器中。构建一个代表指纹索引表将代表指纹映射到指纹容器的地址,并且每个代表指纹对应于一个指纹容器。这样的设计,检测***可以快速确定指纹容器的位置并用于重复数据的比较,而不需要寻找大范围的空间来搜索分散的相似段,这大大缩小了搜索范围并加速了数据去重的过程。
图3举例说明了相似段合并如何工作。在该图中,假设指纹列表中有三个段。段(a){e,f,g,n,c,w},段(b){f,n,w,t,m,e},段(c){t,m,e,w,c,j,h},其中每个字符表示一个数据块指纹。例中三个段是相似段,因为它们具有相同的代表性指纹‘e’。RMD将它们合并在一起并将它们存储在一个位置,即指纹容器。当具有相同代表性指纹‘e’的新数据段到达时,检测***将该段中所有指纹与相似容器中的指纹进行比较,并且由于数据的相似性,很可能成功地识别出大多数重复数据块。总的来说,合并相似段可以减少由指纹检测引起的磁盘I/O的数量,同时提高定位重复数据对象的准确性。
指纹列表:是由数据集经过数据分块并提取指纹并按照处理顺序构成指纹集合。
指纹输入缓存:指纹输入缓存用于对指纹列表中的指纹进行缓存。如果指纹列表来自于文件,则一次性读入若干数量的指纹,并存放在指纹输入缓存区中。接下来对指纹输入缓存中的指纹进行分段操作及代表指纹选取步骤。
指纹容器:指纹容器是***存储指纹的数据结构,它也是指纹磁盘存储及缓存调度的基本单位。一个指纹容器中存储可变数量的独立指纹(独立指纹指在数值上和其他指纹不同的指纹)。
代表指纹索引表:代表指纹索引表是一个驻留在内存中的键值(key-value)哈希表,里面存放了从代表指纹RF到代表指纹所在指纹容器ID的映射。其作用是在查找磁盘上的指纹容器时,能快速地定位文件中存储该指纹容器位置。代表指纹索引表具体结构如图4所示。指纹长度为20字节,指纹容器ID长度为4字节,Pointer(指针)占用8字节。哈希表存储会存在哈希冲突的问题,当哈希冲突发生时,采用链地址来处理冲突。
指纹容器缓存:指纹容器缓存是在内存去开辟的一块缓存区域,用于新指纹容器写入磁盘前的缓存或从磁盘读入指纹容器到内存中的缓存。
内存命中表:用于判断查找的指纹容器是否在缓存中,如果查找的指纹容器不在缓存中,则从磁盘上读取所需的指纹容器到指纹容器缓存。
在本发明实施过程中需要对算法中各个模块的最优参数进行设置,下面给出各个模块最优参数的范围:
指纹段大小:32—8192条指纹,最佳范围为64—128;
指纹容器合并指纹数量:512—4096条指纹,最佳范围为1024-2048;
假设重复数据块索引容量设计为C条记录,以下结合图1及图5和实施例对本发明进一步说明。
如图5所示,本发明基于聚类的重复数据检测方法包括以下步骤:
(1)从磁盘中获取指纹列表文件,判断是否能够从该指纹列表文件中获取到部分指纹(该部分指纹的大小等于预先在内存中开辟的一个指纹输入缓存空间的大小,其范围是大于内存大小的0%,小于80%),如果获取不到则过程结束,否则将获取到的部分指纹其存储在指纹输入缓存空间中,将指纹输入缓存空间中的所有指纹N进行分段,每M个指纹组成一个指纹段,当N不能被M整除时,余下的少于M个指纹归为一个指纹段;
指纹段的大小M可为任意自然数,其优选值为64至128条。
在本方法执行之前,还需要执行初始化的步骤,即在内存中设置空的指纹输入缓存空间、空的指纹容器缓存、空的内存命中表、以及代表指纹索引表。
指纹输入缓存空间用于在内存中存储部分指纹。
指纹容器缓存用于在内存中缓存部分指纹容器。
内存命中表用于判断某个指纹容器是否已经缓存在内存中。
代表指纹索引表用于将代表指纹存储在内存中,并为该代表指纹提供索引功能。
步骤(1)的优点在于,通过设置指纹段的大小,可以优化重复指纹的整体检索性能,从而克服了现有技术中以文件大小作为逻辑段进行重复指纹检索存在的性能低下的缺点。
(2)设置计数器i=1;
(3)判断i是否大于N/M,如果大于则返回步骤(1),否则进入步骤(4);
(4)从步骤(1)得到的多个指纹段中取出第i个指纹段,并获取第i个指纹段中指纹值最小的指纹作为代表指纹(Representative fingerprint,简称RF),并判断该代表指纹是否位于内存中的代表指纹索引表中,如果是,则进入步骤(5),否则进入步骤(8);
具体而言,指纹的指纹值是通过将字符串类型的指纹的转换为数值类型的指纹的方式获取到。
本步骤的优点在于,能够简单高效地查找到重复指纹所在的指纹容器,从而有效地缩小重复指纹的查找范围。
(5)从代表指纹索引表中取出该代表指纹对应的指纹容器ID,并通过查找内存命中表来判断该指纹容器ID所对应的指纹容器是否存在于指纹容器缓存中,如果是则进入步骤(6),否则从磁盘中将该指纹容器ID对应的指纹容器读入到指纹容器缓存中,然后转入步骤(6);
(6)将代表指纹所在指纹段中重复的指纹剔除,并将剔除后的指纹段中的每个指纹逐一与指纹容器ID所对应的指纹容器中的所有指纹进行匹配,如果匹配的结果为重复,则将该指纹标记为重复指纹,如果匹配结果为不重复,则将该指纹***该指纹容器中,其中当指纹数量达到指纹容器容量的上限时,指纹容器不再接收新指纹,将指纹容器写回磁盘;
(7)设置计数器i=i+1,并返回步骤(3);
(8)在指纹容器缓存中构建一个新的指纹容器,将该代表指纹所在指纹段中重复的指纹剔除,将剔除后的指纹段中的所有指纹***到新的指纹容器中,将代表指纹RF及新的指纹容器ID以键值对方式***到代表指纹索引表中,并将新的指纹容器ID***内存命中表中。
(9)设置计数器i=i+1,并返回步骤(3);
本步骤的优点在于,能够有效控制指纹容器的大小,避免重复指纹检索性能的下降。
本发明的技术效果体现在:本发明主要针对相似性较强的数据集类型,通过利用数据集中的相似性,缩小重复数据的检测范围,提升数据去重的吞吐率。具体的来说,对于数据集中可能的重复数据,本发明首先对指纹列表中的指纹进行分段,并根据相似理论,在段中选取代表指纹,接下来对选取的代表作指纹在代表指纹索引表中进行检测,通过检测快速映射所查找的相似容器,最后通过对相似容器中重复数据的检测来快速发现重复数据,从而提升重复数据的检测性能。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于聚类的重复数据检测方法,其特征在于,包括以下步骤:
(1)从磁盘中获取指纹列表文件,判断是否能够从该指纹列表文件中获取到部分指纹,如果获取不到则过程结束,否则将获取到的部分指纹其存储在指纹输入缓存空间中,将指纹输入缓存空间中的所有指纹N进行分段,每M个指纹组成一个指纹段,其中N为所有指纹的数量,M为任意自然数;
(2)设置计数器i=1;
(3)判断i是否大于N/M,如果大于则返回步骤(1),否则进入步骤(4);
(4)从步骤(1)得到的多个指纹段中取出第i个指纹段,并获取第i个指纹段中指纹值最小的指纹作为代表指纹,并判断该代表指纹是否位于内存中的代表指纹索引表中,如果是,则进入步骤(5),否则进入步骤(8);
(5)从代表指纹索引表中取出该代表指纹对应的指纹容器ID,并通过查找内存命中表来判断该指纹容器ID所对应的指纹容器是否存在于指纹容器缓存中,如果是则进入步骤(6),否则从磁盘中将该指纹容器ID对应的指纹容器读入到指纹容器缓存中,然后转入步骤(6);
(6)将代表指纹所在指纹段中重复的指纹剔除,并将剔除后的指纹段中的每个指纹逐一与指纹容器ID所对应的指纹容器中的所有指纹进行匹配,如果匹配的结果为重复,则将该指纹标记为重复指纹,如果匹配结果为不重复,则将该指纹***该指纹容器中;
(7)设置计数器i=i+1,并返回步骤(3)。
(8)在指纹容器缓存中构建一个新的指纹容器,将该代表指纹所在指纹段中重复的指纹剔除,将剔除后的指纹段中的所有指纹***到新的指纹容器中,将代表指纹及新的指纹容器ID以键值对方式***到代表指纹索引表中,并将新的指纹容器ID***内存命中表中。
(9)设置计数器i=i+1,并返回步骤(3)。
2.根据权利要求1所述的重复数据检测方法,其特征在于,进一步包括在步骤(1)之前,在内存中设置空的指纹输入缓存空间、空的指纹容器缓存、空的内存命中表、以及代表指纹索引表的步骤,其中指纹输入缓存空间用于在内存中存储部分指纹,指纹容器缓存用于在内存中缓存部分指纹容器,内存命中表用于判断某个指纹容器是否已经缓存在内存中,代表指纹索引表用于将代表指纹存储在内存中,并为该代表指纹提供索引功能。
3.根据权利要求1所述的重复数据检测方法,其特征在于,当N不能被M整除时,余下的少于M个指纹归为一个指纹段。
4.根据权利要求2所述的重复数据检测方法,其特征在于,部分指纹的大小等于指纹输入缓存空间的大小,其范围是大于内存大小的0%,小于80%。
5.根据权利要求1至4中任意一项所述的重复数据检测方法,其特征在于,指纹段的大小M为32至8192条。
6.根据权利要求1至5中任意一项所述的重复数据检测方法,其特征在于,指纹的指纹值是通过将字符串类型的指纹转换为数值类型的指纹的方式获取到。
7.根据权利要求1所述的重复数据检测方法,其特征在于,步骤(6)中,当指纹数量达到指纹容器容量的上限时,指纹容器不再接收新指纹,将指纹容器写回磁盘。
8.一种基于聚类的重复数据检测***,其特征在于,包括:
第一模块,用于从磁盘中获取指纹列表文件,判断是否能够从该指纹列表文件中获取到部分指纹,如果获取不到则过程结束,否则将获取到的部分指纹其存储在指纹输入缓存空间中,将指纹输入缓存空间中的所有指纹N进行分段,每M个指纹组成一个指纹段,其中N为所有指纹的数量,M为任意自然数。
第二模块,用于设置计数器i=1。
第三模块,用于判断i是否大于N/M,如果大于则返回第一模块,否则进入第四模块;
第四模块,用于从第一模块得到的多个指纹段中取出第i个指纹段,并获取第i个指纹段中指纹值最小的指纹作为代表指纹,并判断该代表指纹是否位于内存中的代表指纹索引表中,如果是,则进入第五模块,否则进入第八模块;
第五模块,用于从代表指纹索引表中取出该代表指纹对应的指纹容器ID,并通过查找内存命中表来判断该指纹容器ID所对应的指纹容器是否存在于指纹容器缓存中,如果是则进入第六模块,否则从磁盘中将该指纹容器ID对应的指纹容器读入到指纹容器缓存中,然后转入第六模块;
第六模块,用于将代表指纹所在指纹段中重复的指纹剔除,并将剔除后的指纹段中的每个指纹逐一与指纹容器ID所对应的指纹容器中的所有指纹进行匹配,如果匹配的结果为重复,则将该指纹标记为重复指纹,如果匹配结果为不重复,则将该指纹***该指纹容器中;
第七模块,用于设置计数器i=i+1,并返回第三模块;
第八模块,用于在指纹容器缓存中构建一个新的指纹容器,将该代表指纹所在指纹段中重复的指纹剔除,将剔除后的指纹段中的所有指纹***到新的指纹容器中,将代表指纹及新的指纹容器ID以键值对方式***到代表指纹索引表中,并将新的指纹容器ID***内存命中表中。
第九模块,用于设置计数器i=i+1,并返回步骤(3)。
CN201710747552.2A 2017-08-28 2017-08-28 一种基于聚类的重复数据检测方法 Active CN107515931B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710747552.2A CN107515931B (zh) 2017-08-28 2017-08-28 一种基于聚类的重复数据检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710747552.2A CN107515931B (zh) 2017-08-28 2017-08-28 一种基于聚类的重复数据检测方法

Publications (2)

Publication Number Publication Date
CN107515931A true CN107515931A (zh) 2017-12-26
CN107515931B CN107515931B (zh) 2023-04-25

Family

ID=60724325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710747552.2A Active CN107515931B (zh) 2017-08-28 2017-08-28 一种基于聚类的重复数据检测方法

Country Status (1)

Country Link
CN (1) CN107515931B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445702A (zh) * 2018-10-26 2019-03-08 黄淮学院 一种块级数据去重存储***
CN109783523A (zh) * 2019-01-24 2019-05-21 广州虎牙信息科技有限公司 一种数据处理方法、装置、设备和存储介质
CN112100318A (zh) * 2020-11-12 2020-12-18 北京智慧星光信息技术有限公司 一种多维度信息合并方法、装置、设备及存储介质
CN112329717A (zh) * 2020-11-25 2021-02-05 中国人民解放军国防科技大学 一种面向海量数据相似度检测的指纹高速缓存方法
CN115827619A (zh) * 2023-01-06 2023-03-21 山东捷瑞数字科技股份有限公司 一种基于三维引擎的重复数据检测方法、装置及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940995A (zh) * 2005-09-29 2007-04-04 中国科学院自动化研究所 面向嵌入式***的指纹方向图量化压缩方法
CN101681381A (zh) * 2007-06-06 2010-03-24 杜比实验室特许公司 使用多搜索组合改善音频/视频指纹搜索精确度
CN102663086A (zh) * 2012-04-09 2012-09-12 华中科技大学 一种数据块索引的检索方法
CN103699567A (zh) * 2013-11-04 2014-04-02 北京中搜网络技术股份有限公司 一种基于标题指纹与正文指纹实现相同新闻聚类的方法
US8930648B1 (en) * 2012-05-23 2015-01-06 Netapp, Inc. Distributed deduplication using global chunk data structure and epochs
CN105493080A (zh) * 2013-12-23 2016-04-13 华为技术有限公司 基于上下文感知的重复数据删除的方法和装置
CN105989033A (zh) * 2015-02-03 2016-10-05 北京中搜网络技术股份有限公司 一种基于资讯指纹的资讯去重方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940995A (zh) * 2005-09-29 2007-04-04 中国科学院自动化研究所 面向嵌入式***的指纹方向图量化压缩方法
CN101681381A (zh) * 2007-06-06 2010-03-24 杜比实验室特许公司 使用多搜索组合改善音频/视频指纹搜索精确度
CN102663086A (zh) * 2012-04-09 2012-09-12 华中科技大学 一种数据块索引的检索方法
US8930648B1 (en) * 2012-05-23 2015-01-06 Netapp, Inc. Distributed deduplication using global chunk data structure and epochs
CN103699567A (zh) * 2013-11-04 2014-04-02 北京中搜网络技术股份有限公司 一种基于标题指纹与正文指纹实现相同新闻聚类的方法
CN105493080A (zh) * 2013-12-23 2016-04-13 华为技术有限公司 基于上下文感知的重复数据删除的方法和装置
CN105989033A (zh) * 2015-02-03 2016-10-05 北京中搜网络技术股份有限公司 一种基于资讯指纹的资讯去重方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
XINYE LI 等: "Clustering Web Retrieval Results Accompanied by Removing Duplicate Documents" *
张攀峰: "数据去重中重复数据检测技术研究" *
殷波 等: "一种基于重复串的STC改进算法" *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445702A (zh) * 2018-10-26 2019-03-08 黄淮学院 一种块级数据去重存储***
CN109445702B (zh) * 2018-10-26 2019-12-06 黄淮学院 一种块级数据去重存储***
CN109783523A (zh) * 2019-01-24 2019-05-21 广州虎牙信息科技有限公司 一种数据处理方法、装置、设备和存储介质
CN112100318A (zh) * 2020-11-12 2020-12-18 北京智慧星光信息技术有限公司 一种多维度信息合并方法、装置、设备及存储介质
CN112329717A (zh) * 2020-11-25 2021-02-05 中国人民解放军国防科技大学 一种面向海量数据相似度检测的指纹高速缓存方法
CN115827619A (zh) * 2023-01-06 2023-03-21 山东捷瑞数字科技股份有限公司 一种基于三维引擎的重复数据检测方法、装置及设备
CN115827619B (zh) * 2023-01-06 2023-05-09 山东捷瑞数字科技股份有限公司 一种基于三维引擎的重复数据检测方法、装置及设备

Also Published As

Publication number Publication date
CN107515931B (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
CN107515931A (zh) 一种基于聚类的重复数据检测方法
CN107391034B (zh) 一种基于局部性优化的重复数据检测方法
Zheng et al. SIFT meets CNN: A decade survey of instance retrieval
US9529912B2 (en) Metadata querying method and apparatus
CN103488709B (zh) 一种索引建立方法及***、检索方法及***
US20150142760A1 (en) Method and device for deduplicating web page
CN102831222A (zh) 一种基于重复数据删除的差量压缩方法
CN100452055C (zh) 一种用于文本或网络内容分析的大规模多关键词匹配方法
CN108959563B (zh) 一种容量可扩展区块链查询方法及***
JP2005276205A (ja) そっくり物(重複)の検出・抑制方法
CN107491487A (zh) 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质
CN111382327A (zh) 一种字符串匹配装置及方法
CN103207889A (zh) 一种基于Hadoop的海量人脸图像的检索方法
CN102169491B (zh) 一种多数据集中重复记录动态检测方法
Tang et al. Efficient Processing of Hamming-Distance-Based Similarity-Search Queries Over MapReduce.
Wang et al. Fast and adaptive indexing of multi-dimensional observational data
CN104021179B (zh) 一种大数据集下相似性数据的快速识别算法
Romberg et al. Bundle min-Hashing: Speeded-up object retrieval
CN113760190A (zh) 基于Ceph存储的小文件合并***及方法
CN107301203B (zh) 一种海量数据的比对方法及***
CN109213760A (zh) 非关系数据存储的高负载业务存储及检索方法
Nie et al. Efficient storage support for real-time near-duplicate video retrieval
CN116361796A (zh) 一种基于内容分块的工控恶意代码检测方法
Chen et al. Efficient similarity search in nonmetric spaces with local constant embedding
CN106599326B (zh) 一种云化架构下的记录数据剔重处理方法及***

Legal Events

Date Code Title Description
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