CN106844480A - 一种清洗比对入库方法 - Google Patents
一种清洗比对入库方法 Download PDFInfo
- Publication number
- CN106844480A CN106844480A CN201611207614.2A CN201611207614A CN106844480A CN 106844480 A CN106844480 A CN 106844480A CN 201611207614 A CN201611207614 A CN 201611207614A CN 106844480 A CN106844480 A CN 106844480A
- Authority
- CN
- China
- Prior art keywords
- storage
- data file
- data
- server
- storage server
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种清洗比对入库方法,该方法由入库服务器对入库的数据文件进行扫描,选择不同的分块方式对数据文件进行分块,从中选择中重复数据量大的分块方式存储入库。该方法在清洗比对入库时,以较小的粒度进行清洗比对,提高了重复数据的发现率,降低了数据存储的占用空间。
Description
【技术领域】
本发明属于计算机和互联网领域,具体的,涉及一种清洗比对入库方法。
【背景技术】
近年来,随着计算机和互联网技术的快速发展,我们处在了一个信息爆炸的时代,信息爆炸带来了海量的数据信息,而海量的数据信息给存储系统带来了极大的压力。虽然现在用于存储的计算机越来越多,性能越来越好,但是由于存储介质本身IO速度的限制,面对海量数据时仍然力不从心。
因此,现有技术中,海量数据存储的第一步,是检测和消除其中的相同数据,即冗余数据,在新数据入库时,通过对新数据和已存储数据的比对,清洗掉重复的数据,只给其保留一个指针,指向该重复数据已存储的存档。这种做法一方面是减少存储空间和IO带宽的占用,另一方面是减少数据处理量。因此,海量数据存储时的清洗比对入库已经是大规模数据存储系统的必备技术。
但是,现有技术中的清洗比对入库方法通常只是比较存储文件的哈希值来检测重复数据。但是单纯以文件为单位来检测重复,其粒度太大,不能处理相似文件中的部分相同数据,因此需要考虑减小粒度,能够尽可能检测相似文件间的部分重复数据。
【发明内容】
为了解决现有技术中的上述问题,本发明提出了一种清洗比对入库方法,其技术方案如下:
一种清洗比对入库方法,该方法包括如下步骤:
(1)入库服务器接收需要存储入库的数据文件;
(2)所述入库服务器检查所述数据文件的长度L,如果L小于预定义的最小数据块长度MinBlockLength,则提取该数据文件的最后一个字节B,转到步骤3。如果L≥MinBlockLength,则转到步骤5;
(3)预先给系统中的256个存储服务器编号,分别命名为Server(i),其中0≤i≤255,入库服务器将该数据文件发送到Server(B),同时保存该数据文件的相关信息;
(4)所述Server(B)计算该数据文件的哈希值,根据该哈希值判断该数据文件是否已存储在服务器中,如果已存储,仅为该数据文件保留一个指针,指向已存储的相同数据;如果并未存储,则Server(B)存储该数据文件和其哈希值,方法结束;
(5)所述入库服务器设置初始的分块向量V=0;
(6)所述入库服务器从该数据文件的第MinBlockLength个字节开始向后扫描,当扫描某个字节等于分块向量时,记录该字节的位置P1,然后再从P1+MinBlockLength的位置开始扫描,寻找并记录下一个等于分块向量的字节位置,如此反复,直到数据文件的末尾;
(7)根据步骤6的所记录的位置,将每个位置作为一个数据块的结尾,对数据文件进行分块,由此得到了KV个数据块;
(8)分块向量V增加1,如果V≤255,则返回步骤6,否则继续步骤9;
(9)对K0到K255按照从大到小进行排序,获取排在最前的5个值,假设为KV1,KV2,KV3,KV4,KV5;
(10)按照V1到V5五个分块向量对该数据文件的分块结果,将各个数据块按照其结尾字节发送到相应的存储服务器进行重复性检测;
(11)每个存储服务器对接收到的每个数据块,计算其哈希值,根据该哈希值判断该数据块是否是重复数据,将判断结果发送给入库服务器;
(12)所述入库服务器根据步骤11接收到的判断结果,从五种分块方式中选择重复数据量最多的两种,根据这两种分块方式,通知相应的存储服务器进行存储,入库服务器自身保存该数据文件的相关信息,包括其两种分块方式和相应的存储服务器。
进一步地,所述入库服务器是一个Web服务器,接收上传的数据文件。
进一步地,所述入库服务器有多个。
进一步地,所述MinBlockLength=1024字节。
进一步地,同一存储服务器复用多个服务器编号。
本发明的技术效果是:在清洗比对入库时,以较小的粒度进行清洗比对,提高了重复数据的发现率,降低了数据存储的占用空间。
【附图说明】
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明方法所应用的系统结构图。
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的不当限定。
参见附图1,其示出了本发明方法所应用的系统结构,该系统包括入库服务器和多个存储服务器,所述入库服务器负责管理数据文件的清洗比对入库,而存储服务器用于存储数据。为了存储海量的数据,本发明的优选方案是使用256个存储服务器,当然这是对于大型数据存储系统而言的,如果使用者是小型企业,为了减少成本,也可以考虑将其中的多个服务器合并成一个,从而减少存储服务器数量。
在上述系统结构的基础上,本发明方法的具体步骤如下:
(1)入库服务器接收需要存储入库的数据文件。
入库服务器作为整个系统与外界的接口,接收外界发送来的数据文件,并负责采用后续的步骤将该数据文件存储到存储服务器中。一个典型的例子是互联网上的Web服务器相当于入库服务器,接收用户上传的数据文件并存储。另外,本发明的入库服务器也可以是多个,本发明不对其数量做出限制。
(2)所述入库服务器检查所述数据文件的长度L,如果L小于预定义的最小数据块长度MinBlockLength,则提取该数据文件的最后一个字节B,转到步骤3。如果L≥MinBlockLength,则转到步骤5。
上述长度都是以字节为单位,由于一个字节为8位,则必然有0≤B≤255。所述最小数据块长度是本发明对文件分块时的最小长度,其具体值可以由管理员根据具体情况设定。一种优选的情况下,该MinBlockLength=1024字节。
(3)预先给系统中的256个存储服务器编号,分别命名为Server(i),其中0≤i≤255,入库服务器将该数据文件发送到Server(B),同时保存该数据文件的相关信息。
本发明根据数据块结尾的字节,对数据块进行分类,由于一个字节一共有256个取值,因此将数据块分成256类,并且对应的分配到256个存储服务器,每个存储服务器的编号与其负责的数据块的分类(即结尾字节的值)相同。
256个存储服务器是本发明的优选方案,其实现成本较高,适用于大型的数据存储系统,如果需要缩减成本,存储服务器之间可以进行复用,即多个数据块类别共享一个存储服务器,该存储服务器也就具有了多个编号,这样不影响本发明方法的具体实施过程。
所述数据文件的相关信息包括数据文件的名字、大小、存储服务器的编号等等,由此入库服务器可以查询到该数据文件。
(4)所述Server(B)计算该数据文件的哈希值,根据该哈希值判断该数据文件是否已存储在服务器中,如果已存储,则该数据文件是重复数据,仅为该数据文件保留一个指针,指向已存储的数据即可;如果并未存储,则Server(B)存储该数据文件和其哈希值,方法结束。
由于存储服务器保存了每个存储的数据文件或数据块的哈希值,因此将该数据文件的哈希值与已有哈希值进行比较,就可以判断该数据文件是否是重复数据,如果是重复数据,就不用再次存储整个数据文件。
(5)所述入库服务器准备对该数据文件进行数据分块,首先设置初始的分块向量V=0.
(6)所述入库服务器从该数据文件的第MinBlockLength个字节开始向后扫描,当扫描某个字节等于分块向量时,记录该字节的位置P1,然后再从P1+MinBlockLength的位置开始扫描,寻找并记录下一个等于分块向量的字节位置,如此循环,直到数据文件的末尾。换言之,每一次扫描的开始位置与上一次记录位置的距离都是MinBlockLength,直到达到数据文件的末尾。
(7)根据步骤6的所记录的位置,将每个位置作为一个数据块的结尾,对数据文件进行分块,由此可以得到一个或多个数据块,设得到了KV个数据块。
步骤7得到的数据块可能有两类,第一类是以分块向量V结尾的数据块,第二类是数据文件的最后一个数据块,即以B结尾的数据块。其中第二类的数据块的数量只能是1或者0,第一类数据块的数据量也可能为0,这取决于数据文件的具体内容。
(8)分块向量V增加1,如果V≤255,则返回步骤6,否则继续步骤9。
上述步骤6-8是一个循环,基于0到255的每个分块向量值进行文件扫描,从而获得了多种数据块分割形式,数量从K0到K255。但是,本发明写成循环的形式只是为了叙述方便,实际应用中,本领域技术人员可以了解,可以只对数据文件进行一遍扫描就完成上述256个循环,从而提高执行效率。
(9)对K0到K255按照从大到小进行排序(如果有相等的KV,则下标大的在前),获取排在最前的(即最大的)5个值,假设为KV1,KV2,KV3,KV4,KV5。
(10)按照V1到V5五个分块向量对该数据文件的分块结果,将各个数据块按照其结尾字节发送到相应的存储服务器进行重复性检测。
如前所述,如果一个数据块的结尾字节是X,则将该数据块发送到Server(X)。
(11)每个存储服务器对接收到的每个数据块,计算其哈希值,根据该哈希值判断该数据块是否是重复数据(即该数据块与已存储的数据块相同),将判断结果发送给入库服务器。
(12)所述入库服务器根据步骤11接收到的判断结果,从五种分块方式中选择重复数据量最多的两种(如果重复数据量相同,则随机选择)。根据这两种分块方式,通知相应的存储服务器进行存储。入库服务器自身保存该数据文件的相关信息,包括其两种分块方式和相应的存储服务器。
存储服务器的存储方式与步骤4相同,如果是重复的数据块,则只保留指针和相应的哈希值,如果是不重复的数据块,则保存该数据块和相应的哈希值。
保留的两种分块方式是为了冗余备份的考虑,即在一种分块方式的存储服务器出故障后,另外一种分块方式仍然可以组合成原数据文件。
另外,上述步骤中,在五种分块方式中选择两种仅仅是本发明的一种优选的实施方式,本领域技术人员可以根据具体情况选择另外的数值,例如从3种中选择2种,或者5种中选择3种。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。
Claims (5)
1.一种清洗比对入库方法,其特征在于,该方法包括如下步骤:
(1)入库服务器接收需要存储入库的数据文件;
(2)所述入库服务器检查所述数据文件的长度L,如果L小于预定义的最小数据块长度MinBlockLength,则提取该数据文件的最后一个字节B,转到步骤3。如果L≥MinBlockLength,则转到步骤5;
(3)预先给系统中的256个存储服务器编号,分别命名为Server(i),其中0≤i≤255,入库服务器将该数据文件发送到Server(B),同时保存该数据文件的相关信息;
(4)所述Server(B)计算该数据文件的哈希值,根据该哈希值判断该数据文件是否已存储在服务器中,如果已存储,仅为该数据文件保留一个指针,指向已存储的相同数据;如果并未存储,则Server(B)存储该数据文件和其哈希值,方法结束;
(5)所述入库服务器设置初始的分块向量V=0;
(6)所述入库服务器从该数据文件的第MinBlockLength个字节开始向后扫描,当扫描某个字节等于分块向量时,记录该字节的位置P1,然后再从P1+MinBlockLength的位置开始扫描,寻找并记录下一个等于分块向量的字节位置,如此反复,直到数据文件的末尾;
(7)根据步骤6的所记录的位置,将每个位置作为一个数据块的结尾,对数据文件进行分块,由此得到了KV个数据块;
(8)分块向量V增加1,如果V≤255,则返回步骤6,否则继续步骤9;
(9)对K0到K255按照从大到小进行排序,获取排在最前的5个值,假设为KV1,KV2,KV3,KV4,KV5;
(10)按照V1到V5五个分块向量对该数据文件的分块结果,将各个数据块按照其结尾字节发送到相应的存储服务器进行重复性检测;
(11)每个存储服务器对接收到的每个数据块,计算其哈希值,根据该哈希值判断该数据块是否是重复数据,将判断结果发送给入库服务器;
(12)所述入库服务器根据步骤11接收到的判断结果,从五种分块方式中选择重复数据量最多的两种,根据这两种分块方式,通知相应的存储服务器进行存储,入库服务器自身保存该数据文件的相关信息,包括其两种分块方式和相应的存储服务器。
2.根据权利要求1所述的清洗比对入库方法,其特征在于,所述入库服务器是一个Web服务器,接收上传的数据文件。
3.根据权利要求1-2任意一项所述的清洗比对入库方法,其特征在于,所述入库服务器有多个。
4.根据权利要求1-3任意一项所述的清洗比对入库方法,其特征在于,所述MinBlockLength=1024字节。
5.根据权利要求1所述的清洗比对入库方法,其特征在于,同一存储服务器复用多个服务器编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611207614.2A CN106844480B (zh) | 2016-12-23 | 2016-12-23 | 一种清洗比对入库方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611207614.2A CN106844480B (zh) | 2016-12-23 | 2016-12-23 | 一种清洗比对入库方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106844480A true CN106844480A (zh) | 2017-06-13 |
CN106844480B CN106844480B (zh) | 2019-03-15 |
Family
ID=59135991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611207614.2A Active CN106844480B (zh) | 2016-12-23 | 2016-12-23 | 一种清洗比对入库方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844480B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857777A (zh) * | 2019-01-09 | 2019-06-07 | 福建福诺移动通信技术有限公司 | 一种基于位置特征的海量通信网络电平数据处理及使用方法、系统 |
CN110968575A (zh) * | 2018-09-30 | 2020-04-07 | 南京工程学院 | 一种大数据处理系统的去重方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079034A (zh) * | 2006-07-10 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 消除文件存储系统中冗余文件的系统及方法 |
US20080114801A1 (en) * | 2006-11-14 | 2008-05-15 | Microsoft Corporation | Statistics based database population |
US20100098318A1 (en) * | 2008-10-20 | 2010-04-22 | Jpmorgan Chase Bank, N.A. | Method and System for Duplicate Check Detection |
CN103023970A (zh) * | 2012-11-15 | 2013-04-03 | 中国科学院计算机网络信息中心 | 一种物联网海量数据存储方法及系统 |
CN103294702A (zh) * | 2012-02-27 | 2013-09-11 | 上海淼云文化传播有限公司 | 一种数据处理方法、装置及系统 |
CN103955530A (zh) * | 2014-05-12 | 2014-07-30 | 暨南大学 | 一种在线重复数据删除系统的数据重建优化方法 |
CN105049287A (zh) * | 2015-07-28 | 2015-11-11 | 小米科技有限责任公司 | 日志处理方法及装置 |
-
2016
- 2016-12-23 CN CN201611207614.2A patent/CN106844480B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079034A (zh) * | 2006-07-10 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 消除文件存储系统中冗余文件的系统及方法 |
US20080114801A1 (en) * | 2006-11-14 | 2008-05-15 | Microsoft Corporation | Statistics based database population |
US20100098318A1 (en) * | 2008-10-20 | 2010-04-22 | Jpmorgan Chase Bank, N.A. | Method and System for Duplicate Check Detection |
CN103294702A (zh) * | 2012-02-27 | 2013-09-11 | 上海淼云文化传播有限公司 | 一种数据处理方法、装置及系统 |
CN103023970A (zh) * | 2012-11-15 | 2013-04-03 | 中国科学院计算机网络信息中心 | 一种物联网海量数据存储方法及系统 |
CN103955530A (zh) * | 2014-05-12 | 2014-07-30 | 暨南大学 | 一种在线重复数据删除系统的数据重建优化方法 |
CN105049287A (zh) * | 2015-07-28 | 2015-11-11 | 小米科技有限责任公司 | 日志处理方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968575A (zh) * | 2018-09-30 | 2020-04-07 | 南京工程学院 | 一种大数据处理系统的去重方法 |
CN110968575B (zh) * | 2018-09-30 | 2023-06-06 | 南京工程学院 | 一种大数据处理系统的去重方法 |
CN109857777A (zh) * | 2019-01-09 | 2019-06-07 | 福建福诺移动通信技术有限公司 | 一种基于位置特征的海量通信网络电平数据处理及使用方法、系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106844480B (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105630955B (zh) | 一种高效动态的数据集合成员管理方法 | |
US9811546B1 (en) | Storing data and metadata in respective virtual shards on sharded storage systems | |
US20230062238A1 (en) | Pooling Processing Method and System Applied to Convolutional Neural Network | |
CN106294357B (zh) | 数据处理方法和流计算系统 | |
EP3767483A1 (en) | Method, device, system, and server for image retrieval, and storage medium | |
US9639272B2 (en) | Sliding-window multi-class striping | |
CN107436725A (zh) | 一种数据写、读方法、装置及分布式对象存储集群 | |
US10540240B2 (en) | Method and apparatus for data backup in storage system | |
CN104598168B (zh) | 一种数据恢复方法及对象存储设备 | |
CN109522316A (zh) | 日志处理方法、装置、设备和存储介质 | |
CN102469142A (zh) | 重复数据删除程序的数据传输方法 | |
CN102523290A (zh) | 数据的处理方法、设备和系统 | |
CN106330788B (zh) | 报文分片传输方法和装置 | |
CN114943287A (zh) | 一种计算机大数据采集处理系统、方法、设备及介质 | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
CN101630332B (zh) | 数据存储管理方法、数据存储管理装置和系统 | |
CN106844480A (zh) | 一种清洗比对入库方法 | |
CN108241639B (zh) | 一种数据去重方法 | |
US10803018B2 (en) | Compressed data rearrangement to optimize file compression | |
CN108243207B (zh) | 一种网络云盘的数据存储方法 | |
CN109684294A (zh) | 小文件处理方法及分布式系统 | |
KR101128504B1 (ko) | 비트맵을 이용한 스트림 빈발 패턴 마이닝 방법 | |
CN106293996A (zh) | 数据同步方法、主设备、备份设备和系统 | |
CN111787074B (zh) | 一种文件同步方法及终端 | |
US20130218851A1 (en) | Storage system, data management device, method and program |
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 | ||
CB02 | Change of applicant information |
Address after: 101399 No. 2 East Airport Road, Shunyi Airport Economic Core Area, Beijing (1st, 5th and 7th floors of Industrial Park 1A-4) Applicant after: Zhongke Star Map Co., Ltd. Address before: 101399 Building 1A-4, National Geographic Information Technology Industrial Park, Guomen Business District, Shunyi District, Beijing Applicant before: Space Star Technology (Beijing) Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |