一种数据去重的方法技术

技术编号:31027155 阅读:29 留言:0更新日期:2021-11-30 03:30
本申请公开了一种数据去重的方法。本申请可按顺序逐行读取待检测数据;计算当前读取的目标行数据的MD5值并利用hash算法计算目标行数据的索引文件块的目标块号。判断是否存在目标块号的索引文件块;若是,则判断是否存在与目标块号的索引文件块对应的二级跳表索引文件块;若不存在,则检索目标块号的索引文件块是否存在目标行数据的MD5值;若目标块号的索引文件块存在目标行数据的MD5值,则删除目标行数据。因每行数据的MD5值的存储空间小于每行数据的存储空间,去重时,仅读取每行数据的MD5值来进行数据比对便可判断目标数据是否存在,不用读取每行数据,减轻服务器运行压力,节约服务器资源,提升了数据去重的速度。提升了数据去重的速度。提升了数据去重的速度。

【技术实现步骤摘要】
一种数据去重的方法


[0001]本申请涉及数据处理
,更具体地说,涉及一种数据去重的方法。

技术介绍

[0002]在信息化时代,大数据成为企业和社会关注的重要战略资源,数据管理成为了企业或个人的核心竞争力。为了充分利用大数据带来的机遇,很多时候需要做大数据分析以挖掘大数据的价值。为了高效挖掘大数据的价值,有时候需要对一些冗余的大数据进行数据去重处理,以得到高质量的大数据来做大数据分析。例如,有时候需要对几百G、几T容量的大文件行数据进行去重,其中,这些大文件中的行数据很长。如果是依靠人工识别逐一比对去重将是一个巨大而繁琐的工程。所以,人们一般采用一些数据去重技术手段来实现快速去重。
[0003]常用的去重技术手段是将大文件行数据全部存储到处理器的内存来做数据去重处理,这种数据去重处理的方式对服务器资源的消耗极大,处理效率也不高。
[0004]因此,亟需提供一种可以快速去重的数据处理手段,用于解决数据去重处理时占用服务器资源多的问题。

技术实现思路

[0005]有鉴于此,本申请提供了一种数据去重的方法,用于解决数据去重处理占用服务器资源多的问题。
[0006]一种数据去重的方法,包括:
[0007]按顺序逐行读取待检测数据;
[0008]计算当前读取的目标行数据的MD5值;
[0009]根据所述目标行数据的MD5值利用hash算法进行计算,得到所述目标行数据的索引文件块的目标块号;
[0010]判断是否存在所述目标块号的索引文件块,所述索引文件块用来存储各行数据的MD5值,其中,各个索引文件块中的MD5值按照升序或降序方式排序;
[0011]若是,则判断是否存在与所述目标块号的索引文件块对应的二级跳表索引文件块,所述二级跳表索引文件块中包含至少一条二级跳表索引,所述二级跳表索引记录有对应索引文件块中部分MD5值所在的行号;
[0012]若不存在,则检索所述目标块号的索引文件块是否存在所述目标行数据的MD5值;
[0013]若所述目标行数据的索引文件块存在所述目标行数据的MD5值,则删除所述目标行数据。
[0014]优选地,该方法还包括:
[0015]若存在与所述目标块号的索引文件块对应的二级跳表索引文件块,则判断所述二级跳表索引文件块中是否存在所述目标行数据的MD5值对应的二级跳表索引;
[0016]若存在所述目标行数据的MD5值对应的二级跳表索引,则删除所述目标行数据;
[0017]若不存在与所述目标行数据的MD5值对应的二级跳表索引,则基于所述二级跳表索引文件块中的二级跳表索引,检索所述目标块号的索引文件块中是否存在所述目标行数据的MD5值;
[0018]若所述目标块号的索引文件块中存在所述目标行数据的MD5值,则删除所述目标行数据。
[0019]优选地,该方法还包括:
[0020]若不存在与所述目标块号对应的索引文件块,则创建与所述目标块号对应的索引文件块;
[0021]将所述目标行数据的MD5值存入创建的目标块号的索引文件块。
[0022]优选地,该方法还包括:
[0023]若所述目标块号的索引文件块不存在所述目标行数据的MD5值,则将所述目标行数据的MD5值插入所述目标块号的索引文件块中;
[0024]更新所述目标块号的索引文件块中各MD5值的排序。
[0025]优选地,在将所述目标行数据的MD5值插入所述目标块号的索引文件块中之后,还包括:
[0026]判断所述目标块号的索引文件块的大小是否超过预设的第一阈值;
[0027]若超过,则针对所述目标块号的索引文件块创建一个二级跳表索引文件块;
[0028]在所述目标块号的索引文件块的二级跳表文件块中,创建关于所述目标块号的索引文件块存储的部分MD5值的二级跳表索引。
[0029]优选地,所述创建关于所述目标块号的索引文件块存储的部分MD5值的二级跳表索引,包括:
[0030]针对所述目标块号的索引文件块中的各个MD5值,参考预设的抽取规则,抽取MD5值及所抽取的MD5值在所述目标块号的索引文件块中对应的行号;
[0031]基于所抽取的MD5值及其对应的行号,创建关于所抽取的MD5值的二级跳表索引。
[0032]优选地,所述基于所述二级跳表索引文件块中的二级跳表索引,检索与所述目标块号的索引文件块中是否存在所述目标行数据的MD5值,包括:
[0033]在所述二级跳表索引文件块的二级跳表索引中,确定与所述目标行数据的MD5值最接近且比所述目标行数据的MD5值小的MD5值对应的二级跳表索引作为第一目标二级跳表索引,与所述目标行数据的MD5值最接近且比所述目标行数据的MD5值大的MD5值对应的二级跳表索引作为第二目标二级跳表索引;
[0034]根据所述第一、第二目标二级跳表索引中MD5值对应的行号,检索所述目标块号的索引文件块中所述第一、第二目标二级跳表索引中MD5值对应的行号之间的MD5值,确定是否存在所述目标行数据的MD5值。
[0035]优选地,该方法还包括:
[0036]若所述目标块号的索引文件块中不存在所述目标行数据的MD5值,则将所述目标行数据的MD5值插入所述目标块号的索引文件块中;
[0037]更新所述目标块号的索引文件块中各MD5值的排序;
[0038]基于所述目标块号的索引文件块中更新后的各个MD5值的行号,更新所述目标块号的索引文件块对应的二级跳表索引文件块中的二级跳表索引。
[0039]优选地,在所述更新所述目标块号的索引文件块对应的二级跳表索引文件块中的二级跳表索引之后,还包括:
[0040]判断所述二级跳表索引文件块的大小是否超过预设的第二阈值;
[0041]若是,则将所述二级跳表索引文件块存入本地磁盘。
[0042]优选地,在得到所述目标行数据的索引文件块的目标块号之后,该方法还包括:
[0043]判断是否存在与所述目标块号对应的数据文件块;
[0044]若否,则创建数据文件块,定义数据文件块的块号为所述目标块号,并将所述目标行数据存入所述目标块号对应的数据文件块;
[0045]若是,则将所述目标行数据存入所述目标块号对应的数据文件块。
[0046]从上述技术方案可以看出,本申请的数据去重方法,可以按顺序逐行读取待检测数据;可以计算当前读取的目标行数据的MD5值;并利用hash算法来计算所述目标行数据的索引文件块的目标块号。在得到所述目标块号后,可以判断是否存在所述目标块号的索引文件块,所述索引文件块用来存储各行数据的MD5值,其中,各个索引文件块中MD5值按照升序或降序方式排序;若是,则判断是否存在与所述目标块号的索引文件块对应的二级跳表索引文件块,所述二级跳表索引文件块中包含至少一条二级跳表索引,所述二级跳表索引记录有对应索引文件块中部分MD5值所在的行号;若不存在,则检索所述目标块号的索引文件块是否存在所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据去重的方法,其特征在于,包括:按顺序逐行读取待检测数据;计算当前读取的目标行数据的MD5值;根据所述目标行数据的MD5值利用hash算法进行计算,得到所述目标行数据的索引文件块的目标块号;判断是否存在所述目标块号的索引文件块,所述索引文件块用来存储各行数据的MD5值,其中,各个索引文件块中的MD5值按照升序或降序方式排序;若是,则判断是否存在与所述目标块号的索引文件块对应的二级跳表索引文件块,所述二级跳表索引文件块中包含至少一条二级跳表索引,所述二级跳表索引记录有对应索引文件块中部分MD5值所在的行号;若不存在,则检索所述目标块号的索引文件块是否存在所述目标行数据的MD5值;若所述目标行数据的索引文件块存在所述目标行数据的MD5值,则删除所述目标行数据。2.根据权利要求1所述的方法,其特征在于,该方法还包括:若存在与所述目标块号的索引文件块对应的二级跳表索引文件块,则判断所述二级跳表索引文件块中是否存在所述目标行数据的MD5值对应的二级跳表索引;若存在所述目标行数据的MD5值对应的二级跳表索引,则删除所述目标行数据;若不存在与所述目标行数据的MD5值对应的二级跳表索引,则基于所述二级跳表索引文件块中的二级跳表索引,检索所述目标块号的索引文件块中是否存在所述目标行数据的MD5值;若所述目标块号的索引文件块中存在所述目标行数据的MD5值,则删除所述目标行数据。3.根据权利要求1所述的方法,其特征在于,该方法还包括:若不存在与所述目标块号对应的索引文件块,则创建与所述目标块号对应的索引文件块;将所述目标行数据的MD5值存入创建的目标块号的索引文件块。4.根据权利要求1所述的方法,其特征在于,该方法还包括:若所述目标块号的索引文件块不存在所述目标行数据的MD5值,则将所述目标行数据的MD5值插入所述目标块号的索引文件块中;更新所述目标块号的索引文件块中各MD5值的排序。5.根据权利要求4所述的方法,其特征在于,在将所述目标行数据的MD5值插入所述目标块号的索引文件块中之后,还包括:判断所述目标块号的索引文件块的大小是否超过预设的第一阈值;若超过,则针对所述目标块号的索引文件块创建一个二级跳表索引文件块;在所述目标块号的索引文件块的二级跳表文件块中,创建关于所述目标块号的索引文件块存储的部分MD5值的二级...

【专利技术属性】
技术研发人员:唐微微王刚马幸晖丁嘉嘉黄开发王家宾
申请(专利权)人:世纪龙信息网络有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1