CN117370617A - 一种基于最小哈希的大规模冗余数据压缩方法 - Google Patents
一种基于最小哈希的大规模冗余数据压缩方法 Download PDFInfo
- Publication number
- CN117370617A CN117370617A CN202311393457.9A CN202311393457A CN117370617A CN 117370617 A CN117370617 A CN 117370617A CN 202311393457 A CN202311393457 A CN 202311393457A CN 117370617 A CN117370617 A CN 117370617A
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- hash
- signature
- data block
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000013144 data compression Methods 0.000 title abstract description 10
- 238000007906 compression Methods 0.000 claims description 23
- 230000006835 compression Effects 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000004220 aggregation Methods 0.000 claims description 2
- 230000002776 aggregation Effects 0.000 claims description 2
- 230000017105 transposition Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 3
- 238000013135 deep learning Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于最小哈希的大规模冗余数据压缩方法。首先将原始数据转化为固定长度(8KB)、byte数据类型的数据块,然后提取生成的数据块中长度为k的连续段,进行MinHash,得到数据块的签名,使用局部敏感哈希(LSH)利用数据块的签名进行聚类,最后采用采用滑动band,拓展签名的计算维度,提高准确率。此外,在查询阶段,可以计算出数据块在不同bucket出现的其他数据块的数量和,以此做为当前数据块的重要性,从重要性最大的点开始查询。
Description
技术领域
本发明属于数据压缩领域,更为具体地讲,涉及一种基于最小哈希的大规模冗余数据压缩方法。
背景技术
随着云时代的来临,大数据也吸引了越来越多的关注,数据产生的速度越来越快,也规模越来越大,随之带来的存储问题也越来越多。大数据的5V特点(IBM提出)分别是:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性),其中大量数据的存储是当今研究人员关注的热点问题,压缩算法和存储硬件是主要的研究方向,但存储硬件的发展周期较长,因此,研究人员主要以压缩算法的研究作为突破点。
现今主流压缩算法分为两大类:一是传统的编码压缩算法,二是在传统压缩算法基础上进行数据挖掘和深度学习的压缩算法。传统编码压缩算法主要有Lempel Zip(LZ)类算法和Delta压缩。LZ类算法是一类基于字典的编码的压缩算法,它利用字典来存储已经遇到的字符串,并用相应的索引来代替重复出现的字符串,从而实现压缩效果,主要包括LZ77、LZ78和LZW等。Delta压缩涉及delta文件(也可以称为different file)。如文件A,经过修改得到文件A’,那么delta A文件内容就是A与A’不同的东西,不同算法的不同之处即从A和A’中生成delta A。第二类压缩算法一是使用深度学习等算法学习一个编码器来替代压缩算法,从而实现更高效的压缩,主要针对图像和视频等规则数据,主要有基于生成式对抗网络(GAN)的图像压缩算法、基于视频压缩的深度神经算法(DeepCoder)等;二是用度量学习等方法把相似数据合并到一起压缩,此类方法由于算法计算等原因,基本难以实现。
最小哈希(MinHash)是一种将不同长度的文本转化成相同长度的hash值,用这些相同长度的hash值来表示原文本,并且相似的文本会生成相似的hash,随后只需要计算一个个特定长度的hash值之间相似度,就可以近似得到原文本之间的相似度。因此,提出了一种基于最小哈希的大规模冗余数据压缩方法,不仅限于文本,也可应用于其他数据类型。首先,提取某块数据中固定长度的k-shingle,并计算出数据块的签名,最后利用局部敏感哈希将签名映射到bucket中,拥有相似签名的数据可以被分配到同一个bucket中。同时,在进行相似数据查询时,提出利用点重要性进行查询,避免将不相似的数据分配到一起。针对现有编码压缩算法和实际应用情况,将有重复部分的数据放在一起压缩能够提升数据压缩比,在不需要对编码压缩算法进行改进的情况下,取得好的收益。
发明内容
本发明的目的在于克服现有技术的不足,提出一种基于最小哈希的大规模冗余数据压缩方法,在现有技术基础上充分利用数据,可以显著提升压缩比。
为实现上述发明目的,本发明基于最小哈希的大规模冗余数据压缩方法,其特征在于,包括以下步骤:
(1)、将原始数据转化为固定长度(8KB)、byte数据类型的数据块。
(2)、签名矩阵生成。首先提取生成的数据块中长度为k的连续段,称为k-shingle,将k-shingle转化为hash值,随后进行MinHash,得到数据块的签名。
(3)、局部敏感哈希(LSH)聚类。得到数据块的签名后,利用LSH划分band和row,将数据块映射到bucket中。
(4)、查询。采用滑动band,计算出数据块在不同bucket出现的其他数据块的数量和,以此做为当前数据块的重要性,查询会从中重要性最大的点开始。
本发明的目的是这样实现的。
本发明利用最小哈希算法,采用一种最小哈希的大规模冗余数据压缩方法。首先将原始数据转化为固定长度、byte数据类型的数据块,然后提取数据块中的k-shingle,通过MinHash计算签名矩阵,随后用LSH对签名矩阵进行映射,将数据块序号分配到相应bucket中,并计算其重要性,最后从重要性最大的点进行查询。
附图说明
图1是本发明一种基于最小哈希的大规模冗余数据压缩方法的一种具体实施方式流程图;
图2是MinHash计算流程图;
图3是LSH计算示意图;
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图1是本发明一种基于最小哈希的大规模冗余数据压缩方法的一种具体实施方式流程图。
在本实施例中,如图1所示,本发明一种基于最小哈希的大规模冗余数据压缩方法包括以下步骤:
S1:数据块切割
将原始数据转化为固定长度(8KB)、byte数据类型的数据块。在业界中,8KB常常作为一个度量标准,存储、传输和数据库等常以8KB作为最小单位,因此将数据块切割为8KB大小。
S2:Shingling
Shingling是为了提取数据块的k-shingle,即特征向量,类似于自然语言处理中的n-gram,都是将数据块里面的内容按照字节进行大小为k的滑动窗口操作,形成了长度是k的字节片段序列,每个k-shingle就是一个特征向量。
S3:MinHashing
MinHashing用于计算数据块签名。MinHash的假设是两个集合的最小哈希值相等(即签名的Jaccard相似性)的概率等于这两个集合之间的Jaccard相似性。证明:
集合:S1、S2;
X=S1∩S2,元素个数:x;
Y=S1∪S2-S1∩S2,元素个数:y;
因此,sim(S1,S2)=Jaccard(S1、S2)=x/(x+y)。
随机打乱行,从上到下扫描。
在遇到Y行之前遇到X行的概率(hash(S1)=hash(S2))是x/(x+y)。
MinHash原理如图2所示,使用一个hash函数将每个提取出的shingle映射到0-2^32之间,避免hash冲突,随后用N个不同的转置函数将对hash值进行计算,取其中的最小值组成数据块的签名,维度为N。
S4:局部敏感哈希
所有数据块组成的签名矩阵可以使用局部敏感哈希(LSH)进行聚类。
LSH将整个维度划分为b个band,每个band包含r行签名,如图3所示即b×r≤N,每个band中的r行签名都会被一个hash函数映射成一个字典中的key,数据块序号作为value,这个字典被称为bucket。因此,如果两个数据块比较相似,那么就会在至少一个band上被映射到同一个bucket。且对于band而言,可以在签名维度上进行滑动,每次固定向前移动某个距离,可以有效利用较短维度签名。
S5:查询
查询阶段是为了适应业界要求,即在小于某个固定数据长度上进行压缩,多个小数据块会拼接成一个大数据块进行压缩。查询阶段要求我们找到相似的固定数量块,但LSH在查询时为了加快速度,只会针对一个块进行查询,找到所有与其在同一个bucket中的块,因此找到一个好的参考块尤其重要。我们查询方式基于这样一种假设:与块所在bucket中的数量越多,此块越重要,那么将某个块所在的所有bucket中的数量进行加和则可以得到其整体重要性,最后将所有块按照其重要性降序排序,将重要性靠前的块作为参考块进行查询,找到拼接起来小于等于要求长度的块一起输出即可。
本发明中,针对数据压缩方法中的不足提出了一种基于最小哈希的大规模冗余数据压缩方法。本发明在加入滑动band和重要点查询等关键技术上做出了创新。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (2)
1.一种基于最小哈希的大规模冗余数据压缩方法,其特征在于,包括以下步骤:
(1)、将原始数据转化为固定长度(8KB)、byte数据类型的数据块。
(2)、签名矩阵生成。首先提取生成的数据块中长度为k的连续段,称为k-shingle,将k-shingle转化为hash值,随后进行MinHash,得到数据块的签名。
(3)、局部敏感哈希(LSH)聚类。得到数据块的签名后,利用LSH划分band和row,将数据块映射到bucket中。
(4)、查询。采用滑动band,计算出数据块在不同bucket出现的其他数据块的数量和,以此做为当前数据块的重要性,查询会从中重要性最大的点开始。
2.根据权利要求1所述的数据压缩方法,其特征在于,步骤(4)中,所述的滑动band与重要性查询:
2.1)、MinHashing用于计算数据块签名。MinHash的假设是两个集合的最小哈希值相等(即签名的Jaccard相似性)的概率等于这两个集合之间的Jaccard相似性。证明:
集合:S1、S2;
X=S1∩S2,元素个数:x;
Y=S1∪S2-S1∩S2,元素个数:y;
因此,sim(S1,S2)=Jaccard(S1、S2)=x/(x+y)。
随机打乱行,从上到下扫描。
在遇到Y行之前遇到X行的概率(hash(S1)=hash(S2))是x/(x+y)。
MinHash原理如图2所示,使用一个hash函数将每个提取出的shingle映射到0-2^32之间,避免hash冲突,随后用N个不同的转置函数将对hash值进行计算,取其中的最小值组成数据块的签名,维度为N。
2.2)、所有数据块组成的签名矩阵可以使用局部敏感哈希(LSH)进行聚类。LSH将整个维度划分为b个band,每个band包含r行签名,如图3所示即b×r≤N,每个band中的r行签名都会被一个hash函数映射成一个字典中的key,数据块序号作为value,这个字典被称为bucket。因此,如果两个数据块比较相似,那么就会在至少一个band上被映射到同一个bucket。且对于band而言,可以在签名维度上进行滑动,每次固定向前移动某个距离,可以有效利用较短维度签名。
2.3)、查询阶段是为了适应业界要求,即在小于某个固定数据长度上进行压缩,多个小数据块会拼接成一个大数据块进行压缩。查询阶段要求我们找到相似的固定数量块,但LSH在查询时为了加快速度,只会针对一个块进行查询,找到所有与其在同一个bucket中的块,因此找到一个好的参考块尤其重要。我们查询方式基于这样一种假设:与块所在bucket中的数量越多,此块越重要,那么将某个块所在的所有bucket中的数量进行加和则可以得到其整体重要性,最后将所有块按照其重要性降序排序,将重要性靠前的块作为参考块进行查询,找到拼接起来小于等于要求长度的块一起输出即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311393457.9A CN117370617A (zh) | 2023-10-25 | 2023-10-25 | 一种基于最小哈希的大规模冗余数据压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311393457.9A CN117370617A (zh) | 2023-10-25 | 2023-10-25 | 一种基于最小哈希的大规模冗余数据压缩方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117370617A true CN117370617A (zh) | 2024-01-09 |
Family
ID=89392550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311393457.9A Pending CN117370617A (zh) | 2023-10-25 | 2023-10-25 | 一种基于最小哈希的大规模冗余数据压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117370617A (zh) |
-
2023
- 2023-10-25 CN CN202311393457.9A patent/CN117370617A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105868305B (zh) | 一种支持模糊匹配的云存储数据去重复方法 | |
EP3238344B1 (en) | Lossless reduction of data by deriving data from prime data elements resident in a content-associative sieve | |
CN109299086B (zh) | 最优排序键压缩和索引重建 | |
US5049881A (en) | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique | |
US8244767B2 (en) | Composite locality sensitive hash based processing of documents | |
US20110125722A1 (en) | Methods and apparatus for efficient compression and deduplication | |
CN101464910B (zh) | 基于数据相似的平衡聚类压缩方法 | |
CN108595710B (zh) | 一种快速的海量图片去重方法 | |
US9916314B2 (en) | File extraction method, computer product, file extracting apparatus, and file extracting system | |
US9535954B2 (en) | Join processing device, data management device, and string similarity join system | |
CN106557777B (zh) | 一种基于SimHash改进的Kmeans文档聚类方法 | |
CN109271487A (zh) | 一种相似文本分析方法 | |
CN105574212A (zh) | 一种多索引磁盘哈希结构的图像检索方法 | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
Sirén | Burrows-Wheeler transform for terabases | |
CN104008119A (zh) | 一种一对多的混合字符串融合比对方法 | |
CN105183792A (zh) | 一种基于局部敏感哈希的分布式快速文本分类方法 | |
CN110362560A (zh) | 一种无业务主键数据在存储数据库时去重的方法 | |
CN105515586B (zh) | 一种快速差量压缩方法 | |
CN1251449A (zh) | 两类字典压缩算法在数据压缩中的组合带参运用 | |
Quispe-Ayala et al. | Image classification using data compression techniques | |
Ni et al. | Incremental updates based on graph theory for consumer electronic devices | |
CN117370617A (zh) | 一种基于最小哈希的大规模冗余数据压缩方法 | |
CN113378163A (zh) | 基于DEX文件分区特性的Android恶意软件家族分类方法 | |
Moia et al. | A comparative analysis about similarity search strategies for digital forensics investigations |
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 |