CN110968575B - 一种大数据处理系统的去重方法 - Google Patents
一种大数据处理系统的去重方法 Download PDFInfo
- Publication number
- CN110968575B CN110968575B CN201811175309.9A CN201811175309A CN110968575B CN 110968575 B CN110968575 B CN 110968575B CN 201811175309 A CN201811175309 A CN 201811175309A CN 110968575 B CN110968575 B CN 110968575B
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- vector
- data unit
- length
- 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.)
- Active
Links
Images
Abstract
本发明涉及一种大数据处理系统的去重方法,包括:选择待处理的数据单元,获取分割向量;判断该数据单元的末尾是否等于该分割向量,若不等于,则在末尾之后增加一个分割向量;使用分割向量分割所述数据单元,得到多个数据块;合并数据块,使得各数据块的长度不小于最小块长度;计算每个数据块的哈希值,判断是新数据块,还是重复数据块以进行去重。该方法在大数据处理系统中,能够较快地查找到重复数据;对于大文件的处理,可以降低去重比较的粒度,提高去重的可能性。
Description
【技术领域】
本发明属于计算机和互联网领域,尤其涉及大数据领域,具体的,涉及一种大数据处理系统的去重方法。
【背景技术】
随着计算机和互联网技术的快速发展,我们处在了一个信息爆炸的时代,为了处理大量的信息,出现了大数据的概念。所谓大数据,是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
由于数据的海量特性,人们仅仅凭一己之力很难对这些数据进行分析,但是在以云计算为代表的技术创新大幕的衬托下,这些原本很难收集和使用的数据开始容易被利用起来了,通过各行各业的不断创新,大数据逐步为人类创造更多的价值。
然而,大数据处理系统首先带来的一个问题是数据的海量性,其中还有很多重复性的数据,因此为了简化数据处理过程,减少数据存储的开销,需要对海量数据进行去重。现有技术中的常见去重方法是计算每个文件的哈希值,通过比较哈希值,去除重复的数据单元,但是因为大文件重复的可能性很低,这种方式对于大文件实际上是非常低效的。
【发明内容】
为了解决上述问题,本发明提出了一种大数据处理系统的去重方法。
本发明采用的技术方案如下:
一种大数据处理系统中的去重方法,包括以下步骤:
(1)选择一个待去重处理的数据单元,获取分割向量;
(2)判断该数据单元的末尾是否等于该分割向量,如果不等于,则在该数据单元的末尾之后增加一个分割向量;
(3)设置一个头指针指向该数据单元的第一个字节。
(4)从头指针开始扫描该数据单元,直到扫描到一个分割向量。
(S)将该数据单元中头指针所指向的字节到刚扫描到的分割向量,作为一个数据块;
(6)如果刚扫描到的分割向量已经是该数据单元末尾的分割向量,则继续执行步骤7,否则将头指针指向刚扫描到的分割向量之后的一个字节,返回步骤4;
(7)检查每个数据块的长度,如果一个数据块的长度小于Lmin个字节,则将该数据块与其之前或之后的数据块合并,反复进行上述检查和合并操作,直到每个数据块的长度都不小于Lmin个字节,或者只剩下一个数据块;其中Lmin是预先设置的最小块长度;
(8)对于剩下的每个数据块,计算其哈希值,判断数据库中是否已有该哈希值,如果没有,则将该数据块及其哈希值存入该数据库,如果有,则对该数据块去重。
进一步地,所述分割向量是一个或多个字节组成的向量。
进一步地,所述分割向量是固定的预先设置的向量。
进一步地,所述步骤1获取分割向量具体包括:
(1.1)预先设定了n个不同的待选分割向量为V1,V2,……,Vn,计算每个待选分割向量在所述数据单元中的出现次数,得到Vi在所述数据单元中的出现次数Ti(1≤i≤n);
(1.2)计算Vi对应的平均块长度Li=L/(Ti+1),其中L是所述数据单元的长度;
(1.3)假设在计算得到的n个Li中,最接近预定阈值的为Lk(1≤k≤n),则其对应的待选分割向量Vk就是所需的分割向量。
进一步地,如果步骤2中增加了分割向量,则在系统中进行相应的记录。
进一步地,在步骤7中,当一个数据块的长度小于Lmin时,如果其不是最后一个数据块,则将该数据块与其之后的数据块合并,如果其是最后一个数据块,则将该数据块与其之前的数据块合并。
进一步地,所述哈希值使用的算法是MD5算法。
进一步地,所述哈希值使用的算法是SHA-1算法。
本发明的有益效果为:在大数据处理系统中,能够较快地查找到重复数据;对于大文件的处理,可以降低去重比较的粒度,提高去重的可能性。
【附图说明】
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明去重方法的流程示意图。
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
本发明所涉及的大数据处理系统去重方法,其对系统中的各个数据单元进行去重处理,所述数据单元是系统中的数据存储单位,在一个实施例中,数据单元指的是一个数据文件,在另一个实施例中,数据单元也可以是数据库中的一个数据记录,本发明对此不作具体限制。
在去重过程中,将数据单元分割成多个数据块,以数据块为基本的去重单位,数据块具有预先设置的最小块长度Lmin,即用于作为去重比较的数据块的长度不小于Lmin个字节。
所述大数据处理系统具有一个数据库,所述数据库中存储了多个不同的数据块,以及每个数据块对应的哈希值。该数据库是通过本发明的方法构建的,其使得每个数据单元最终可以通过该数据库中的数据块组合而成。
参见附图1,其示出了本发明去重方法的基本步骤,下面对具体步骤进行详细说明:
(1)选择一个待去重处理的数据单元,获取分割向量。
所述分割向量是一个或多个字节组成的向量,其可以是固定的预先设置的分割向量,也可是动态确定的分割向量,具体动态确定的方法在后面说明。优选的,所述分割向量具有2个字节。
(2)判断该数据单元的末尾是否等于该分割向量,如果不等于,则在该数据单元的末尾之后增加一个分割向量。
例如,如果分割向量是一个2字节的向量,则判断该数据单元的最后2个字节是否等于该分割向量,如果不等于,则将该分割向量追加到该数据单元末尾之后,相当于该数据单元增加了2个字节。
如果增加了一个分割向量,则需要在系统中进行相应的记录,以在真正使用该数据单元时,去除增加的分割向量。
(3)设置一个头指针指向该数据单元的第一个字节。
(4)从头指针开始扫描该数据单元,直到扫描到一个分割向量。
(5)将该数据单元中头指针所指向的字节到刚扫描到的分割向量,作为一个数据块。
这里得到的数据块的第一个字节就是头指针所指向的字节,而数据块的末尾是一个分割向量。
(6)如果刚扫描到的分割向量已经是该数据单元末尾的分割向量,则继续执行步骤7,否则将头指针指向刚扫描到的分割向量之后的一个字节,返回步骤4。
由于步骤2保证了数据单元的末尾是一个分割向量,因此基于上述步骤3-6,可以将所述数据单元按照先后顺序分割成多个数据块,并且每个数据块的末尾都是一个分割向量。
(7)检查每个数据块的长度,如果一个数据块的长度小于Lmin,则将该数据块与其之前或之后的数据块合并,反复进行上述检查和合并操作,直到每个数据块的长度都不小于Lmin,或者只剩下一个数据块。
在步骤7中,当一个数据块的长度小于Lmin时,如果其不是最后一个数据块,则将该数据块与其之后的数据块合并,如果其是最后一个数据块,则将该数据块与其之前的数据块合并。
经过步骤7后,有两种结果,一种结果是剩下一个或多个数据块,且每个数据块的长度都不小于Lmin,另一种结果是只剩下一个数据块,且该数据块的长度小于Lmin。
(8)对于剩下的每个数据块,计算其哈希值,判断数据库中是否已有该哈希值,如果没有,则说明该数据块是一个新的数据块,将该数据块及其哈希值存入该数据库,如果有,则说明该数据块是一个重复的数据块,可以对该数据块去重。
所述哈希值使用的算法可以是本领域中任一种哈希算法,优选的,可以使用MD5或SHA-1算法。
根据本发明的另一个实施例,分割向量不是固定的一个向量,而是动态确定的。具体地,系统预先设定了n个不同的待选分割向量(n≥2),则所述步骤1中获取分割向量的具体过程包括:
(1.1)设n个不同的待选分割向量为V1,V2,……,Vn,计算每个待选分割向量在所述数据单元中的出现次数。得到Vi在所述数据单元中的出现次数Ti(1≤i≤n)。
所述n个待选分割向量是系统预先设置的,系统管理员可以根据具体情况对这些待选分割向量进行增减。
(1.2)计算Vi对应的平均块长度Li=L/(Ti+1)。
其中L是所述数据单元的长度(即该数据单元有L个字节),由此得到的平均块长度实际是假设用Vi来分割所述数据单元得到的各个数据块的平均长度。
(1.3)假设在计算得到的n个Li中,最接近预定阈值的为Lk(1≤k≤n),则其对应的待选分割向量Vk就是所需的分割向量。
所述预定阈值是预先设置的,其使得分割向量的分割结果尽量接近一个预先的优选块长度,从而提高了去重效果。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。
Claims (8)
1.一种大数据处理系统中的去重方法,其特征在于,包括以下步骤:
(1)选择一个待去重处理的数据单元,获取分割向量;
(2)判断该数据单元的末尾是否等于该分割向量,如果不等于,则在该数据单元的末尾之后增加一个分割向量;
(3)设置一个头指针指向该数据单元的第一个字节;
(4)从头指针开始扫描该数据单元,直到扫描到一个分割向量;
(5)将该数据单元中头指针所指向的字节到刚扫描到的分割向量,作为一个数据块;
(6)如果刚扫描到的分割向量已经是该数据单元末尾的分割向量,则继续执行步骤(7),否则将头指针指向刚扫描到的分割向量之后的一个字节,返回步骤(4);
(7)检查每个数据块的长度,如果一个数据块的长度小于Lmin个字节,则将该数据块与其之前或之后的数据块合并,反复进行上述检查和合并操作,直到每个数据块的长度都不小于Lmin个字节,或者只剩下一个数据块;其中Lmin是预先设置的最小块长度;
(8)对于经步骤(7)处理后得到的每个数据块,计算其哈希值,判断数据库中是否已有该哈希值,如果没有,则将该数据块及其哈希值存入该数据库,如果有,则对该数据块去重。
2.根据权利要求1所述的方法,其特征在于,所述分割向量是一个或多个字节组成的向量。
3.根据权利要求2所述的方法,其特征在于,所述分割向量是固定的预先设置的向量。
4.根据权利要求1所述的方法,其特征在于,所述步骤(1)获取分割向量具体包括:
(1.1)预先设定了n个不同的待选分割向量为V1,V2,......,Vn,计算每个待选分割向量在所述数据单元中的出现次数,得到Vi在所述数据单元中的出现次数Ti,1≤i≤n;
(1.2)计算Vi对应的平均块长度Li=L/(Ti+1),其中L是所述数据单元的长度;
(1.3)假设在计算得到的n个Li中,最接近预定阈值的为Lk,1≤k≤n,则其对应的待选分割向量Vk就是所需的分割向量。
5.根据权利要求1-4任意一项所述的方法,其特征在于,如果步骤(2)中增加了分割向量,则在系统中进行相应的记录。
6.根据权利要求1-4任意一项所述的方法,其特征在于,在步骤(7)中,当一个数据块的长度小于Lmin时,如果其不是最后一个数据块,则将该数据块与其之后的数据块合并,如果其是最后一个数据块,则将该数据块与其之前的数据块合并。
7.根据权利要求1-4任意一项所述的方法,其特征在于,所述哈希值使用的算法是MD5算法。
8.根据权利要求1-4任意一项所述的方法,其特征在于,所述哈希值使用的算法是SHA-1算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811175309.9A CN110968575B (zh) | 2018-09-30 | 2018-09-30 | 一种大数据处理系统的去重方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811175309.9A CN110968575B (zh) | 2018-09-30 | 2018-09-30 | 一种大数据处理系统的去重方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968575A CN110968575A (zh) | 2020-04-07 |
CN110968575B true CN110968575B (zh) | 2023-06-06 |
Family
ID=70029490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811175309.9A Active CN110968575B (zh) | 2018-09-30 | 2018-09-30 | 一种大数据处理系统的去重方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968575B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011097887A1 (zh) * | 2010-02-10 | 2011-08-18 | 北京播思软件技术有限公司 | 一种基于内容的文件分割方法 |
CN103914522A (zh) * | 2014-03-20 | 2014-07-09 | 电子科技大学 | 一种应用于云存储重复数据删除的数据块合并方法 |
CN106844480A (zh) * | 2016-12-23 | 2017-06-13 | 航天星图科技(北京)有限公司 | 一种清洗比对入库方法 |
CN107368545A (zh) * | 2017-06-28 | 2017-11-21 | 深圳神州数码云科数据技术有限公司 | 一种基于MerkleTree变形算法的去重方法及装置 |
CN108241639A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种数据去重方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9626373B2 (en) * | 2012-10-01 | 2017-04-18 | Western Digital Technologies, Inc. | Optimizing data block size for deduplication |
-
2018
- 2018-09-30 CN CN201811175309.9A patent/CN110968575B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011097887A1 (zh) * | 2010-02-10 | 2011-08-18 | 北京播思软件技术有限公司 | 一种基于内容的文件分割方法 |
CN103914522A (zh) * | 2014-03-20 | 2014-07-09 | 电子科技大学 | 一种应用于云存储重复数据删除的数据块合并方法 |
CN106844480A (zh) * | 2016-12-23 | 2017-06-13 | 航天星图科技(北京)有限公司 | 一种清洗比对入库方法 |
CN108241639A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种数据去重方法 |
CN107368545A (zh) * | 2017-06-28 | 2017-11-21 | 深圳神州数码云科数据技术有限公司 | 一种基于MerkleTree变形算法的去重方法及装置 |
Non-Patent Citations (1)
Title |
---|
朱江 等.基于重复数据删除技术的存储系统分析.《信息系统工程》.2017,(第4期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110968575A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427538B (zh) | 全闪存阵列的存储数据压缩方法、装置、及可读存储介质 | |
US10949405B2 (en) | Data deduplication device, data deduplication method, and data deduplication program | |
US9048862B2 (en) | Systems and methods for selecting data compression for storage data in a storage system | |
EP2940598B1 (en) | Data object processing method and device | |
US20170286443A1 (en) | Optimizing data block size for deduplication | |
US9311323B2 (en) | Multi-level inline data deduplication | |
US20120303595A1 (en) | Data restoration method for data de-duplication | |
US11797204B2 (en) | Data compression processing method and apparatus, and computer-readable storage medium | |
CN103309975B (zh) | 一种重复数据删除方法和设备 | |
EP3376393A1 (en) | Data storage method and apparatus | |
US10783145B2 (en) | Block level deduplication with block similarity | |
US10198455B2 (en) | Sampling-based deduplication estimation | |
US20190138507A1 (en) | Data Processing Method and System and Client | |
US10824599B2 (en) | Information processing apparatus, information processing method, and recording medium | |
Bhalerao et al. | A survey: On data deduplication for efficiently utilizing cloud storage for big data backups | |
CN103150260A (zh) | 重复数据删除方法和装置 | |
CN110618974A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
US8117343B2 (en) | Landmark chunking of landmarkless regions | |
KR20150035876A (ko) | 데이터 중복 제거 방법 및 장치 | |
US10496313B2 (en) | Identification of content-defined chunk boundaries | |
JP2023510134A (ja) | スケッチ計算のためのシステムおよび方法 | |
CN110968575B (zh) | 一种大数据处理系统的去重方法 | |
US20220245097A1 (en) | Hashing with differing hash size and compression size | |
US11347424B1 (en) | Offset segmentation for improved inline data deduplication | |
Vikraman et al. | A study on various data de-duplication systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
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 |