CN102169491B - 一种多数据集中重复记录动态检测方法 - Google Patents

一种多数据集中重复记录动态检测方法 Download PDF

Info

Publication number
CN102169491B
CN102169491B CN2011100734603A CN201110073460A CN102169491B CN 102169491 B CN102169491 B CN 102169491B CN 2011100734603 A CN2011100734603 A CN 2011100734603A CN 201110073460 A CN201110073460 A CN 201110073460A CN 102169491 B CN102169491 B CN 102169491B
Authority
CN
China
Prior art keywords
record
bucket
hash
representative
sign indicating
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.)
Expired - Fee Related
Application number
CN2011100734603A
Other languages
English (en)
Other versions
CN102169491A (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.)
Jinan University
Original Assignee
Jinan University
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 Jinan University filed Critical Jinan University
Priority to CN2011100734603A priority Critical patent/CN102169491B/zh
Publication of CN102169491A publication Critical patent/CN102169491A/zh
Application granted granted Critical
Publication of CN102169491B publication Critical patent/CN102169491B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种动态地、并发地从多个信息源的数据集中检测数据内容完全相同的记录组的方法,本发明的检测方法从多个信息源的数据集中读取每条初始记录或变更记录,依据记录的固有字段由本发明构造的Hash函数和验证码函数计算各记录Hash码和检验码,并动态地创建、修改一组由所有信息源的数据集所共享的桶及其相关信息,快速检测出分布在各个信息源中的重复记录组。本发明具有效率高、正确率高、内存资源利用率高、能够动态进行增量检测的优点。

Description

一种多数据集中重复记录动态检测方法
技术领域
本发明涉及计算机数据处理领域,特别涉及一种多数据集中重复记录动态检测方法。
背景技术
数据增长速率随着计算机应用的普及而逐年上升,同时,在许多应用企业数据冗余率也随着增长,即大量冗余的数据分布在局域网、广域网和SAN(Storage Area Network)中。这不仅导致存储设备采购、与存储相关的操作成本和管理成本等的提升,还严重地阻碍了信息集成平台和数据中心的建设,并且产生错误的统计与整合数据。因此,重复数据检测与删除技术被认为是信息领域最热门的技术之一。重复数据删除技术的核心是重复数据的检测方法,其目标是从数据存储设备中快速、准确地识别出相同的数据,检测的数据可以在文件、块、记录或字节级别。随着数据库技术的推广,记录级别的重复数据检测需求越来越大。
重复记录检测的方法涉及两方面研究问题:一方面是重复记录判别方法,另一方面是记录之间比较控制方式,其中记录之间比较控制方式有三种。第一种是嵌套循环法,需要将检测对象中的任何两条记录都进行比较。第二种是邻近排序法,按照某关键字段排序后,每条记录只与它邻近的记录进行比较。第三种是基于散列(Hash)的方法,现有的一种方法是用Hash函数将每一条记录都与一个素数对应,具有相同素数的记录相同,还有一种方法将相似记录聚类到一个桶中,再对同一桶中的记录两两比较。
现有的记录之间比较控制方式都存在如下一些问题:
嵌套循环法:时间复杂度高,效率低。
邻近排序法的缺陷有:
(1)检测的准确率严重依赖于排序关键字,若关键字选取不当,可能会导致很多潜在的重复记录的物理位置相距甚远,而不会落到同一个滑动窗口之内,导致遗漏掉某些重复记录的发现,准确率低;
(2)滑动窗口的大小难以确定,如果滑动窗口过小,会影响检测的准确率;相反,如果滑动窗口过大,又会降低检测的效率;
(3)该算法只适用单个数据集,而不适合多数据集;
(4)如果数据集过大,为排序付出的时间代价会比较高;
(5)不能适应动态、实时处理数据的要求。
基于散列的方法能够同时兼顾检测效率与准确率,但存在以下问题:
(1)散列函数的构造问题:检测的数据集中各条记录首先要通过某个特殊的Hash函数转换成一个Hash码,Hash函数如果具有一对一的特性(即不同的记录转换后对应不同的Hash值),就能避免冲突的现象,快速将具有相同Hash值的记录视为相同记录。虽然,存在某些无冲突现象的Hash函数研究成果,但是,计算方法复杂,而且Hash码过于复杂并具有随机性。
(2)多数据集中重复记录增量检测问题:现有的重复记录检测方法不能适应多数据集动态、增量检测要求。需要检测的对象来源可能不同,相同或不同来源的数据集均可能存在重复记录,而且数据集是独立变化的,不同数据表之间的重复记录也随着变化。例如:数据集A与数据集B存在一条重复记录,但A数据集删除该记录后,A与B之间的重复记录就不存在了。目前的方法虽然可将新增记录的Hash码与以往记录的Hash码比较并判断是否重复,但是不能增量检测由于数据集修改、删除记录操作引起的重复记录变化,除非重新检测新数据集中的所有记录。
(3)多源数据集的记录散列桶的共享与管理问题:现有的方法,各数据源的记录散列到各自的桶集中,不同数据源的桶中所散列的记录再进行比较,这种方式效率不高。
(4)传统的Hash分区方法要求内存至少能够容纳一个Hash分区内的所有记录,如果信息源中的数据量足够大以至于内存容纳不下一个分区内的所有记录,则算法不能执行。
发明内容
为了克服现有技术的不足,本发明的目的是提供一种基于散列的多数据集中重复记录动态检测方法。
本发明的目的通过以下技术方案实现:一种多数据集中重复记录动态检测方法,包括以下步骤:
(1)从初始数据集中读取一条记录,设所述记录由N个固有字段组成,第i个固有字段为fi,其中1≤i≤N;
(2)计算所述记录的Hash码,所述记录的Hash码的计算方法为:
Hash函数如下:
H i = hashCode ( f 1 ) i = 1 H i - 1 hashCode ( f i ) i ≥ 2 ,
其中hashCode(fi)为fi按照Java语言内置的Hash函数的计算方法生成的Hash码;
则所述记录的Hash码为HN
(3)计算所述记录的检验码;
(4)向桶注册中心查询是否已存在该Hash码对应的共享桶;
所述共享桶属于所有信息源所共享的桶集,包括以下信息:
共享桶的ID号:作为识别一个共享桶的唯一标识,其取值为散列到其对应的共享桶的所有记录所共有的Hash码;
共享桶的检验码:取值为散列到其对应的共享桶的所有记录所共有的检验码;
共享桶的代表记录:取值为导致桶创建的那条记录;
散列到共享桶的记录计数:用于统计散列到共享桶中重复记录数;
与代表记录发生散列冲突的记录标识列表;
各信息源散列到共享桶的记录计数:用于统计散列到共享桶中各信息源重复记录数;
与共享桶的代表记录重复的记录标识列表;
(4-1)若查询不到所述记录的Hash码对应的共享桶,则新建一个共享桶,将所述记录设为该新共享桶的代表记录,将所述记录的Hash码和检验码分别设为新桶的ID号和检验码,散列到共享桶的记录计数初始化为1,与代表记录发生散列冲突的记录标识列表置为空,代表记录所在的信息源散列到共享桶的记录计数初始值为1,非代表记录所在的信息源散列到共享桶的记录数初始值为0,与共享桶的代表记录重复的记录标识列表置为空,并向桶注册中心注册;
(4-2)若查询到所述记录的Hash码对应的共享桶,则将所述记录的检验码和该共享桶的检验码进行比较:
(4-2-1)若记录的检验码和该共享桶的检验码相同,则将散列到该共享桶的记录计数增1、该记录所对应的信息源散列到共享桶的记录计数增1、将记录标识插入与代表记录重复的记录标识列表;
(4-2-2)若记录的检验码和共享桶的检验码不同,检查记录是否作冲突标记:
(4-2-2-1)若标记过,将记录标识直接插入该共享桶所对应的与代表记录发生散列冲突的记录标识列表;
(4-2-2-2)若没标记过,重新为记录生成Hash码,并标记该记录发生过散列冲突,重复步骤(4);
(5)判断所述记录是否初始记录集的最后一条记录,
若是,则对散列到桶的记录计数大于1的共享桶和散列冲突记录标识列表非空的共享桶做重复记录处理;
若否,则读取初始数据集中的下一条记录:重复步骤(2)~(5)。
具体地,所述步骤(3)计算所述记录的检验码的计算方法如下:
所述检验码的计算函数为:
C i = 0 i = 1 C i - 1 * hashCode ( f i ) + length ( f i ) i ≥ 2 ,
其中hashCode(fi)为fi按照Java语言内置的Hash函数的计算方法生成的Hash码;length(fi)表示记录的第i个字段值所对应的字符串长度;
则记录的验证码为CN
具体地,所述步骤(4-2-2-2)中所述为记录重新生成Hash码,采用以下方法:
采用以下Hash函数:
H i ′ = 0 i = 1 31 * H i - 1 ′ + 7 * hashCode ( f i ) + 5 * i + length ( f i ) i ≥ 2 ,
其中hashCode(fi)为fi按照Java语言内置的Hash函数的计算方法生成的Hash码;
则记录的Hash码为H′N
在完成骤(5)后,若对初始数据集进行了新操作,将新操作所增加、删除或修改的记录存储在增量数据集中,进行以下步骤:
(6-1)从增量数据集中读取一条记录,设所述记录由N个固有字段组成,第i个固有字段为fi,其中1≤i≤N;
(6-2)(6-2-1)若所述记录为新操作所删除的记录,则进行以下步骤:
(6-2-1-1)进行步骤(2),根据得到记录的Hash码向桶注册中心查询是否存在该Hash码对应的共享桶;若存在,进入步骤(6-2-1-3);若不存在,则进入步骤(6-2-1-2);
(6-2-1-2)按照步骤(4-2-2-2)为记录重新生成Hash码,根据得到记录的新Hash码向桶注册中心查询该Hash码对应的共享桶,进入步骤(6-2-1-3);
(6-2-1-3)对查询到的共享桶进行处理:
若所述记录为该共享桶的代表记录,且与代表记录重复的记录标识列表为空,与代表记录发生散列冲突的记录标识列表也为空,则删除该桶;
若所述记录为该共享桶的代表记录,且与代表记录重复的记录标识列表为空,但与代表记录发生散列冲突的记录标识列表不为空,则移出与代表记录发生散列冲突的记录标识列表中的第一条记录作为新的代表记录,设置各信息源散列到共享桶的记录计数为1;然后依次将与代表记录发生散列冲突的记录标识表中其它的记录移出并按照步骤(2)~(4)重作散列处理;
若所述记录为该共享桶的代表记录,且与代表记录重复的记录标识列表非空,则从与代表记录重复的记录标识列表中移出第一条记录代替代表记录,将散列到共享桶的记录计数减1、该记录所对应的信息源散列到共享桶的记录计数减1;
若所述记录在与代表记录重复的记录标识列表中,则将散列到该共享桶的记录计数减1、该记录所对应的信息源散列到共享桶的记录计数减1,在与代表记录重复的记录标识列表中删除该记录;
若所述记录在与代表记录散列冲突的记录标识列表中,则在与代表记录散列冲突的记录标识列表中删除该记录;
(6-2-2)若所述记录为新操作所增加的记录,则进行步骤(2)~(4);
(6-2-3)若所述记录为新操作所修改的记录,则将修改前的记录按步骤(6-2-1)处理,将修改后的记录按步骤(6-2-2)处理;
(6-3)判断所述记录是否增量数据集的最后一条记录;
若是,对散列到桶的记录计数大于1的共享桶和散列冲突记录标识列表非空的共享桶做重复记录处理;
若否,读取增量数据集的下一条记录,重复步骤(6-2)~(6-3)。
具体地,所述步骤(5)对散列到桶的记录计数大于1的共享桶和散列冲突记录标识列表非空的共享桶做重复记录处理为删除处理、备份处理或集成处理。
具体地,所述步骤(6-3)中对散列到桶的记录计数大于1的共享桶和散列冲突记录标识列表非空的共享桶做重复记录处理为删除处理、备份处理或集成处理。
本发明的检测方法从多个信息源的数据集中,读取每条初始记录或变更记录,依据记录的固有字段由本发明构造的Hash函数和验证码函数计算各记录Hash码和检验码,并动态地创建、修改一组由所有信息源的数据集所共享的桶及其相关信息,快速检测出分布在各个信息源中的重复记录组。
与现有技术相比,本发明具有以下优点和技术效果:
(1)检测重复记录效率高:检测过程只需要对记录集进行一趟扫描并且无需对记录集进行排序,与现有其他算法比较,省去了记录集排序和记录间比较环节,节省至少一半的检测时间。此外,采用本发明方法的检测系统还可以异步接受多个数据源发送的变化记录集,增量检测多个表的重复记录集,比重新检测所有记录节省大量时间。
(2)由Hash码和检验码同时保障检测的正确率:为了提高散列冲突检测和处理能力,除了Hash码外,桶结构中还设计了检验码的字段。按照所设计的Hash码和检验码函数、以及发生冲突后再散列函数,在实践应用中还没有发现不同记录的Hash码和检验码都相同的情况,所做的检测实验结果正确率均达100%。
(3)共享桶可并发访问:所有信息源共享一组桶,来自相同或不同的信息源中的记录可以同时并发访问不同的桶,只有当两条记录同时散列到同一个桶中的时候,才需要同步控制。
(4)桶的创建和释放是动态的,内存资源利用率高。
(5)既能检测出一个数据集内部存在的重复记录,也能检测出多个数据集之间的重复记录。
(6)能适应动态、实时处理要求。
附图说明
图1为本发明的一种基于散列的多数据集中重复记录动态检查方法的流程框图,图1(a)为处理初始数据集的流程图,图1(b)为处理增量数据集的流程图。
具体实施方式
下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例
如图1所示,一种基于散列的多数据集中重复记录动态检查方法包括以下步骤:
一种多数据集中重复记录动态检测方法,包括以下步骤:
(1)从初始数据集中读取一条记录,设记录由N个固有字段组成,第i个固有字段为fi,其中1≤i≤N;
(2)计算记录的Hash码,记录的Hash码的计算方法为:
Hash函数如下:
H i = hashCode ( f 1 ) i = 1 H i - 1 hashCode ( f i ) i ≥ 2 ,
其中hashCode(fi)为fi按照Java语言内置的Hash函数的计算方法生成的Hash码;
则所述记录的Hash码为HN
(3)计算记录的检验码:
检验码的计算函数为:
C i = 0 i = 1 C i - 1 * hashCode ( f i ) + length ( f i ) i ≥ 2 ,
其中hashCode(fi)为fi按照Java语言内置的Hash函数的计算方法生成的Hash码;length(fi)表示记录的第i个字段值所对应的字符串长度;
则记录的验证码为CN
(4)向桶注册中心查询是否已存在该Hash码对应的共享桶;
所述共享桶属于所有信息源所共享的桶集,包括以下信息:
共享桶的ID号:作为识别一个共享桶的唯一标识,其取值为散列到其对应的共享桶的所有记录所共有的Hash码;
共享桶的检验码:取值为散列到其对应的共享桶的所有记录所共有的检验码;
共享桶的代表记录:取值为导致桶创建的那条记录;
散列到共享桶的记录计数:用于统计散列到共享桶中重复记录数;
与代表记录发生散列冲突的记录标识列表;
各信息源散列到共享桶的记录计数:用于统计散列到共享桶中各信息源重复记录数;
与共享桶的代表记录重复的记录标识列表;
(4-1)若查询不到所述记录的Hash码对应的共享桶,则新建一个共享桶,将所述记录设为该新共享桶的代表记录,将所述记录的Hash码和检验码分别设为新桶的ID号和检验码,散列到共享桶的记录计数初始化为1,与代表记录发生散列冲突的记录标识列表置为空,代表记录所在的信息源散列到共享桶的记录计数初始值为1,非代表记录所在的信息源散列到共享桶的记录数初始值为0,与共享桶的代表记录重复的记录标识列表置为空,并向桶注册中心注册;
(4-2)若查询到所述记录的Hash码对应的共享桶,则将所述记录的检验码和该共享桶的检验码进行比较:
(4-2-1)若记录的检验码和该共享桶的检验码相同,则将散列到该共享桶的记录计数增1、该记录所对应的信息源散列到共享桶的记录计数增1、将记录标识插入与代表记录重复的记录标识列表;
(4-2-2)若记录的检验码和共享桶的检验码不同,检查记录是否作冲突标记:
(4-2-2-1)若标记过,将记录标识直接插入该共享桶所对应的与代表记录发生散列冲突的记录标识列表;
(4-2-2-2)若没标记过,重新为记录生成Hash码,并标记该记录发生过散列冲突,重复步骤(4);
所述为记录重新生成Hash码,采用以下方法:
采用以下Hash函数:
H i ′ = 0 i = 1 31 * H i - 1 ′ + 7 * hashCode ( f i ) + 5 * i + length ( f i ) i ≥ 2 ,
其中hashCode(fi)为fi按照Java语言内置的Hash函数的计算方法生成的Hash码;
则记录的Hash码为H′N
(5)判断所述记录是否初始记录集的最后一条记录,
若是,则对散列到桶的记录计数大于1的共享桶和散列冲突记录标识列表非空的共享桶做删除处理、备份处理或集成处理;
若否,则读取初始数据集中的下一条记录:重复步骤(2)~(5)。
在完成骤(5)后,若对初始数据集进行了新操作,将新操作所增加、删除或修改的记录存储在增量数据集中,进行以下步骤:
(6-1)从增量数据集中读取一条记录,设所述记录由N个固有字段组成,第i个固有字段为fi,其中1≤i≤N;
(6-2)(6-2-1)若所述记录为新操作所删除的记录,则进行以下步骤:
(6-2-1-1)进行步骤(2),根据得到记录的Hash码向桶注册中心查询是否存在该Hash码对应的共享桶;若存在,进入步骤(6-2-1-3);若不存在,则进入步骤(6-2-1-2);
(6-2-1-2)按照步骤(4-2-2-2)为记录重新生成Hash码,根据得到记录的新Hash码向桶注册中心查询该Hash码对应的共享桶,进入步骤(6-2-1-3);
(6-2-1-3)对查询到的共享桶进行处理:
若所述记录为该共享桶的代表记录,且与代表记录重复的记录标识列表为空,与代表记录发生散列冲突的记录标识列表也为空,则删除该桶;
若所述记录为该共享桶的代表记录,且与代表记录重复的记录标识列表为空,但与代表记录发生散列冲突的记录标识列表不为空,则移出与代表记录发生散列冲突的记录标识列表中的第一条记录作为新的代表记录,设置各信息源散列到共享桶的记录计数为1;然后依次将与代表记录发生散列冲突的记录标识表中的其他记录移出并按照步骤(2)~(4)重作散列处理;
若所述记录为该共享桶的代表记录,且与代表记录重复的记录标识列表非空,则从与代表记录重复的记录标识列表中移出第一条记录代替代表记录,将散列到共享桶的记录计数减1、该记录所对应的信息源散列到共享桶的记录计数减1;
若所述记录在与代表记录重复的记录标识列表中,则将散列到该共享桶的记录计数减1、该记录所对应的信息源散列到共享桶的记录计数减1,在与代表记录重复的记录标识列表中删除该记录;
若所述记录在与代表记录散列冲突的记录标识列表中,则在与代表记录散列冲突的记录标识列表中删除该记录;
(6-2-2)若所述记录为新操作所增加的记录,则进行步骤(2)~(4);
(6-2-3)若所述记录为新操作所修改的记录,则将修改前的记录按步骤(6-2-1)处理,将修改后的记录按步骤(6-2-2)处理;
(6-3)判断所述记录是否增量数据集的最后一条记录;
若是,对散列到桶的记录计数大于1的共享桶和散列冲突记录标识列表非空的共享桶做删除处理、备份处理或集成处理;
若否,读取增量数据集的下一条记录,重复步骤(6-2)~(6-3)。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (3)

1.一种多数据集中重复记录动态检测方法,其特征在于,包括以下步骤:
(1)从初始数据集中读取一条记录,设所述记录由N个固有字段组成,第i个固有字段为fi,其中1≤i≤N;
(2)计算所述记录的Hash码,所述记录的Hash码的计算方法为:
Hash函数如下:
H i = hashCode ( f 1 ) i = 1 H i - 1 hashCode ( f i ) i ≥ 2 ,
其中hashCode(fi)为fi按照Java语言内置的Hash函数的计算方法生成的Hash码;
则所述记录的Hash码为HN
(3)计算所述记录的检验码,所述检验码的计算函数为:
C i = 0 i = 1 C i - 1 * hashCode ( f i ) + length ( f i ) i ≥ 2 ,
其中hashCode(fi)为fi按照Java语言内置的Hash函数的计算方法生成的Hash码;length(fi)表示记录的第i个字段值所对应的字符串长度;
则记录的验证码为CN
(4)向桶注册中心查询是否已存在该Hash码对应的共享桶;
所述共享桶属于所有信息源所共享的桶集,包括以下信息:
共享桶的ID号:作为识别一个共享桶的唯一标识,其取值为散列到其对应的共享桶的所有记录所共有的Hash码;
共享桶的检验码:取值为散列到其对应的共享桶的所有记录所共有的检验码;
共享桶的代表记录:取值为导致桶创建的那条记录;
散列到共享桶的记录计数:用于统计散列到共享桶中重复记录数;
与代表记录发生散列冲突的记录标识列表;
各信息源散列到共享桶的记录计数:用于统计散列到共享桶中各信息源重复记录数;
与共享桶的代表记录重复的记录标识列表;
(4-1)若查询不到所述记录的Hash码对应的共享桶,则新建一个共享桶,将所述记录设为该新共享桶的代表记录,将所述记录的Hash码和检验码分别设为新桶的ID号和检验码,散列到共享桶的记录计数初始化为1,与代表记录发生散列冲突的记录标识列表置为空,代表记录所在的信息源散列到共享桶的记录计数初始值为1,非代表记录所在的信息源散列到共享桶的记录数初始值为0,与共享桶的代表记录重复的记录标识列表置为空,并向桶注册中心注册;
(4-2)若查询到所述记录的Hash码对应的共享桶,则将所述记录的检验码和该共享桶的检验码进行比较:
(4-2-1)若记录的检验码和该共享桶的检验码相同,则将散列到该共享桶的记录计数增1、该记录所对应的信息源散列到共享桶的记录计数增1、将记录标识插入与代表记录重复的记录标识列表;
(4-2-2)若记录的检验码和共享桶的检验码不同,检查记录是否作冲突标记:
(4-2-2-1)若标记过,将记录标识直接插入该共享桶所对应的与代表记录发生散列冲突的记录标识列表;
(4-2-2-2)若没标记过,重新为记录生成Hash码,并标记该记录发生过散列冲突,重复步骤(4);
所述为记录重新生成Hash码,采用以下方法:
采用以下Hash函数:
H i ′ = 0 i = 1 31 * H i - 1 ′ + 7 * hashCode ( f i ) + 5 * i + length ( f i ) i ≥ 2 ,
其中hashCode(fi)为fi按照Java语言内置的Hash函数生成的Hash码;则记录的Hash码为H′N
(5)判断所述记录是否初始记录集的最后一条记录,
若是,则对散列到桶的记录计数大于1的共享桶和散列冲突记录标识列表非空的共享桶做重复记录处理;
若否,则读取初始数据集中的下一条记录:重复步骤(2)~(5):
(6)若对初始数据集进行了新操作,将新操作所增加、删除或修改的记录存储在增量数据集中,进行以下操作:
(6-1)从增量数据集中读取一条记录,设所述记录由N个固有字段组成,第i个固有字段为fi,其中1≤i≤N;
(6-2)(6-2-1)若所述记录为新操作所删除的记录,则进行以下步骤:
(6-2-1-1)进行步骤(2),根据得到记录的Hash码向桶注册中心查询是否存在该Hash码对应的共享桶;若存在,进入步骤(6-2-1-3);若不存在,则进入步骤(6-2-1-2);
(6-2-1-2)按照步骤(4-2-2-2)为记录重新生成Hash码,根据得到记录的新Hash码向桶注册中心查询该Hash码对应的共享桶,进入步骤(6-2-1-3);
(6-2-1-3)对查询到的共享桶进行处理:
若所述记录为该共享桶的代表记录,且与代表记录重复的记录标识列表为空,与代表记录发生散列冲突的记录标识列表也为空,则删除该桶;
若所述记录为该共享桶的代表记录,且与代表记录重复的记录标识列表为空,但与代表记录发生散列冲突的记录标识列表不为空,则移出与代表记录发生散列冲突的记录标识列表中的第一条记录作为新的代表记录,设置各信息源散列到共享桶的记录计数为1;然后依次将与代表记录发生散列冲突的记录标识表中的其他记录移出并按照步骤(2)~(4)重作散列处理;
若所述记录为该共享桶的代表记录,且与代表记录重复的记录标识列表非空,则从与代表记录重复的记录标识列表中移出第一条记录代替代表记录,将散列到共享桶的记录计数减1、该记录所对应的信息源散列到共享桶的记录计数减1;
若所述记录在与代表记录重复的记录标识列表中,则将散列到该共享桶的记录计数减1、该记录所对应的信息源散列到共享桶的记录计数减1,在与代表记录重复的记录标识列表中删除该记录;
若所述记录在与代表记录散列冲突的记录标识列表中,则在与代表记录散列冲突的记录标识列表中删除该记录;
(6-2-2)若所述记录为新操作所增加的记录,则进行步骤(2)~(4);
(6-2-3)若所述记录为新操作所修改的记录,则将修改前的记录与修改后的记录存储在增量数据表中,对修改前的记录按步骤(6-2-1)处理,对修改后的记录按步骤(6-2-2)处理;
(6-3)判断所述记录是否增量数据集的最后一条记录;
若是,对散列到桶的记录计数大于1的共享桶和散列冲突记录标识列表非空的共享桶做重复记录处理;
若否,读取增量数据集的下一条记录,重复步骤(6-2)~(6-3)。
2.根据权利要求1所述的一种多数据集中重复记录动态检测方法,其特征在于,所述步骤(5)对散列到桶的记录计数大于1的共享桶和散列冲突记录标识列表非空的共享桶做重复记录处理为删除处理、备份处理或集成处理。
3.根据权利要求1所述的一种多数据集中重复记录动态检测方法,其特征在于,所述步骤(6-3)中对散列到桶的记录计数大于1的共享桶和散列冲突记录标识列表非空的共享桶做重复记录处理为删除处理、备份处理或集成处理。
CN2011100734603A 2011-03-25 2011-03-25 一种多数据集中重复记录动态检测方法 Expired - Fee Related CN102169491B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100734603A CN102169491B (zh) 2011-03-25 2011-03-25 一种多数据集中重复记录动态检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100734603A CN102169491B (zh) 2011-03-25 2011-03-25 一种多数据集中重复记录动态检测方法

Publications (2)

Publication Number Publication Date
CN102169491A CN102169491A (zh) 2011-08-31
CN102169491B true CN102169491B (zh) 2012-11-21

Family

ID=44490654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100734603A Expired - Fee Related CN102169491B (zh) 2011-03-25 2011-03-25 一种多数据集中重复记录动态检测方法

Country Status (1)

Country Link
CN (1) CN102169491B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830229B2 (en) 2013-08-21 2017-11-28 International Business Machines Corporation Adding cooperative file coloring protocols in a data deduplication system
US9542411B2 (en) 2013-08-21 2017-01-10 International Business Machines Corporation Adding cooperative file coloring in a similarity based deduplication system
CN103838871B (zh) * 2014-03-21 2019-11-29 北京广利核系统工程有限公司 一种核电站安全级dcs s-vdu过程文件的校验方法
CN106407207B (zh) * 2015-07-29 2020-06-16 阿里巴巴集团控股有限公司 一种实时新增数据更新方法和装置
CN106649360B (zh) * 2015-10-30 2020-09-22 北京国双科技有限公司 数据重复性校验方法及装置
CN109446205B (zh) * 2017-08-28 2021-03-16 中国电信股份有限公司 判断数据状态的装置和方法以及数据更新的装置和方法
CN109615377A (zh) * 2018-12-13 2019-04-12 平安医疗健康管理股份有限公司 基于大数据的重复收费识别方法、设备、存储介质及装置
CN111935106B (zh) * 2020-07-23 2022-05-13 湖北工业大学 一种利用改进验证码收集带标签的数据集的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093485A (zh) * 2006-06-22 2007-12-26 上海新纳广告传媒有限公司 一种网页重复内容过滤方法
CN101908073A (zh) * 2010-08-13 2010-12-08 清华大学 一种文件系统中实时删除重复数据的方法
CN101917396A (zh) * 2010-06-25 2010-12-15 清华大学 一种网络文件系统中数据的实时去重和传输方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055633B2 (en) * 2008-01-21 2011-11-08 International Business Machines Corporation Method, system and computer program product for duplicate detection
JP2009251725A (ja) * 2008-04-02 2009-10-29 Hitachi Ltd 記憶制御装置及び記憶制御装置を用いた重複データ検出方法。

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093485A (zh) * 2006-06-22 2007-12-26 上海新纳广告传媒有限公司 一种网页重复内容过滤方法
CN101917396A (zh) * 2010-06-25 2010-12-15 清华大学 一种网络文件系统中数据的实时去重和传输方法
CN101908073A (zh) * 2010-08-13 2010-12-08 清华大学 一种文件系统中实时删除重复数据的方法

Also Published As

Publication number Publication date
CN102169491A (zh) 2011-08-31

Similar Documents

Publication Publication Date Title
CN102169491B (zh) 一种多数据集中重复记录动态检测方法
CN101963982B (zh) 基于位置敏感哈希的删冗存储系统元数据管理方法
US10579661B2 (en) System and method for machine learning and classifying data
CN104281664B (zh) 分布式图计算系统数据切分方法和系统
CN103902701B (zh) 一种数据存储系统和存储方法
CN103902698A (zh) 一种数据存储系统和存储方法
CN103902702A (zh) 一种数据存储系统和存储方法
CN108897761A (zh) 一种聚簇存储方法及装置
CN104199827A (zh) 基于局部敏感哈希的大规模多媒体数据的高维索引方法
CN105159971B (zh) 一种云平台数据检索方法
CN105653554A (zh) 一种文件数据比对方法和系统
CN100433019C (zh) 一种数据存储与检索的方法及系统
US20140095549A1 (en) Method and Apparatus for Generating Schema of Non-Relational Database
CN104298736A (zh) 数据集合连接方法、装置及数据库系统
CN103345496A (zh) 多媒体信息检索方法和系统
CN102999637B (zh) 根据文件特征码为文件自动添加文件标签的方法及系统
CN105404675A (zh) Ranked反近邻空间关键字查询方法及装置
CN105117442A (zh) 一种基于概率的大数据查询方法
CN105488176A (zh) 数据处理方法和装置
CN106469152A (zh) 一种基于etl的文件处理方法及系统
CN103064908A (zh) 一种通过内存快速去重名单的方法
Bhushan et al. Big data query optimization by using locality sensitive bloom filter
CN101963993B (zh) 一种数据库单表记录快速查找的方法
CN108090186A (zh) 一种大数据平台上的电力数据去重方法
CN113722600A (zh) 应用于大数据的数据查询方法、装置、设备及产品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121121

Termination date: 20170325

CF01 Termination of patent right due to non-payment of annual fee