CN102708183A - 数据压缩的方法和装置 - Google Patents
数据压缩的方法和装置 Download PDFInfo
- Publication number
- CN102708183A CN102708183A CN2012101421691A CN201210142169A CN102708183A CN 102708183 A CN102708183 A CN 102708183A CN 2012101421691 A CN2012101421691 A CN 2012101421691A CN 201210142169 A CN201210142169 A CN 201210142169A CN 102708183 A CN102708183 A CN 102708183A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- digital finger
- 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.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施例提供了一种数据压缩方法和装置。方法包括:根据原始数据生成用于数据相似性检测的数字指纹;根据所述数字指纹确定与所述原始数据具有数据相似性的数据块,将所述原始数据路由到确定的数据块的压缩进程;执行所述确定的数据块的压缩进程,完成对所述原始数据的压缩。方法对应的装置包括:数字指纹生成器、数据路由模块、压缩模块和数据块。上述技术方案可以利用原始数据生成的数字指纹的相似性,将原始数据压缩到指定的数据块,从而提高数据压缩的压缩比。
Description
技术领域
本发明实施例涉及数据存储领域,并且更具体地,涉及数据压缩的方法和装置。
背景技术
经过多年的系统建设和优化完善,电信领域经营分析系统已经建立了面向电信企业运营的数据信息平台。但是随着时间推移和加速增长的业务量,数据仓库中存储的数据加速膨胀,必须通过不断扩容满足存储要求,造成了数据仓库的成本高收益低,最终扩无可扩的局面。为应对上述挑战,电信行业数据仓库系统逐步引入了分级存储策略,根据数据创建时间、访问频率和访问时间的响应要求将数据按生命周期分为在线、近线、归档和销毁等级别。通过生命周期策略和分级存储策略的有机结合,将数据动态迁移或加载到最适合的存储介质中,达到各类存储的最佳搭配,以便控制信息技术(IT,Information Technology)设备的投资规模,同时获得更好的效益。
生命周期为近线级别的数据也称为近线数据。近线数据常用来完成历史数据对比分析、营销轨迹分析和数据挖掘等对电信领域经营分析具有重要意义的数据分析,其显著特点是数据量大,扫描范围广;以查询为主,但并发量小。近线数据采用数据压缩机制进行压缩既能提升存储利用率,又可提高数据分析效率。电信领域中的近线数据有以下适合压缩的特点:
1、属性值为特征串时,有固定的编码约定。
字符串包括特征串。举例来说,国际移动装备辨识码(IMEI,InternationalMobile Equipment Identity)或国际移动用户识别码(IMSI,International MobileSubscriber Identification number)是典型的特征串。对于特定运营商,特征串类型的属性值中大量地重复前缀或后缀编码。其中属性在编码中与一个或多个字段对应,属性值与字段值对应。
2、属性值为低基数的可选值,并且属性之间存在组合关系的基数同样较低。
低基数是指这个属性只有很少的可选取值。如属性为话单类型时,话单类型的基数为2,目前只包括语音话单和短信话单两种属性值;如属性为呼叫类型时,呼叫类型的基数为3。话单类型和呼叫类型之间存在基数为6的组合关系。在这6种组合关系中,其中个别组合关系出现的重复性远大于其他几种组合关系。
3、属性值之间存在逻辑或计算关系。
举例来说,如用户信息表中的属性“用户标识”对应的字段的编码编号规则如下:
用户标识=所属地区编号(字段)+‘0’+所属地区编号(字段)+流水号。属性值存在字段间的重复编码,例如上述等式中的“所述地区编号”。
4、非连续存储的许多记录间存在逻辑关联,且只存在少数属性的差异,而大部分属性相同。最常见场景为以时间轴模式保存业务办理变更,最新记录被从当前记录复制,更新业务对应的字段;更新当前的记录为历史记录状态。
数据压缩的基本原理是:按照特定的编码机制,以比未经编码数据少的数据比特,或者其它信息相关的数据单位表示原数据。出现概率高的数据,也称为重复数据尽量以短编码标识,而概率低的数据则可以使用长编码标识。因此,重复数据越多,可能获得的压缩比越高,相应地存储利用率也就越高。其中压缩比是数据压缩器压缩效率的质量标识,满足以下公式:
压缩比=压缩掉的数据单位/压缩前的数据单位
近线数据采用数据压缩机制进行压缩既能提升存储利用率,又可提高数据分析效率。然而,现有技术中对近线数据进行压缩的压缩比较低。
发明内容
本发明实施例提供一种数据压缩的方法和装置,能够提高数据压缩的压缩比。
一方面,提供了一种数据压缩方法,包括:
根据原始数据生成用于数据相似性检测的数字指纹;根据所述数字指纹确定与所述原始数据具有数据相似性的数据块,将所述原始数据路由到确定的数据块的压缩进程;执行所述确定的数据块的压缩进程,完成对所述原始数据的压缩。
另一方面,提供了一种数据压缩装置,包括:
所述数字指纹生成器用于根据原始数据生成用于数据相似性检测的数字指纹;所述数据路由模块用于根据所述数字指纹生成器生成的所述数字指纹确定与所述原始数据具有数据相似性的数据块,将所述原始数据路由到确定的所述数据块的压缩进程;所述压缩模块用于执行所述确定的数据块的压缩进程,完成原始数据的压缩。
上述技术方案可以利用原始数据生成的数字指纹的数据相似性,将数据压缩到指定的数据块,从而提高数据压缩的压缩比。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的数据压缩的方法的示意流程图。
图2是本发明另一实施例的数据压缩的方法的示意流程图。
图3是用于数据相似性检测的数字指纹算法生成具有数据相似性的数字指纹的原理示意图。
图4A和图4B是本发明实施例的数据压缩的装置的示意框图。
图5是本发明实施例的一个应用场景的原始数据。
图6是图5的原始数据进行用于数据相似性检测的数字指纹算法后的数据。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中主流的关系型数据库基本采用行方式存储数据,压缩的方法为:通过顺序扫描整个表,找到重复的字符和字符串后,将上述字符和字符串存储在一个压缩字典中,然后用一个存储在字典中对应数据字符串的替代符号来替代表中的实际数据,从而达到了压缩数据的目的。由于顺序扫描的数据行中的数据重复程度不高,导致数据无法获得较高压缩率。此外,因为无有效手段判断数据行之间的数据相似性和重复分布,从而无法将相似数据保存到同一个块中,以提升压缩比。进一步地,按行存储的模式,对低基数列和上述提及的电信领域特有的近线数据无法实现高压缩比。上述低基数列是指该列中只有很少的可选取值,比如性别属性中的可选取值包括男、女和未知。
列式数据库常用的提高压缩比的方法为:利用列数据库架构优势,按数据类型特点压缩,如按照基数的聚合度范围,建立搜索(英文为lookup)表,动态优化不同基数聚合度的压缩比;直接采用位图索引(英文为bitmap index)表达列值,同时提高扫描效率和压缩存储效率。基数聚合度定义指:在该列上取值的可能的个数,在一定的范围内呈现出的聚合规律。如在一段数据中,一列数据只出现3种可选值:红、蓝和绿,则lookup表可用单字节编码,起到压缩作用。位图索引主要针对低基数列。针对每一个可选值,如性别属性,可选值:“男”的位图索引可以表示为"010111",每一位比特值为1时代表"是",为0时代表“否”。列式数据库可以直接将低基数列使用位图索引表示,因此能提高扫描效率和压缩率。
列式数据库由于架构上的特点,在数据压缩和扫描性能上有优势,但针对电信领域中具有近线数据的特点1、3和4的数据无法对行间存在的重复数据进行有效去重。因此,仅从通用性角度出发,未能从重复数据的检测方面进一步提升压缩比。
本发明中“数据块的压缩进程”表明了在本发明中使用了主控模块为每一个数据块分配压缩进程方式,但这并不是唯一方式,本发明还可以采用多个数据块共用一个压缩进程的方式。
本发明实施例提供了一种数据压缩的方法,能够提高数据压缩的压缩比。
图1是本发明实施例的数据压缩的方法10的示意流程图。方法10包括以下内容。
11,根据原始数据生成用于数据相似性检测的数字指纹;。
12,根据所述数字指纹确定与所述原始数据具有数据相似性的数据块,将所述原始数据路由到确定的数据块的压缩进程。
13,执行所述确定的数据块的压缩进程,完成原始数据的压缩;
本发明实施例中可以利用数据生成的数字指纹的数据相似性,将数据压缩到指定的数据块,从而提高数据压缩的压缩比。
可选的,所述根据所述数字指纹确定数据块,将所述原始数据路由到确定的数据块的压缩进程,具体包括:
获取数据块的数字指纹范围,将所述数字指纹与所述数据块的数字指纹范围进行比对,将所述数字指纹所落入的数字指纹范围对应的数据块确定为与所述原始数据具有数据相似性的数据块,并将所述数据指纹对应的所述原始数据路由到所述确定的数据块的压缩进程。
其中,可选的,当所述数字指纹不在任何数据块的数字指纹范围内,则新建压缩进程;并将所述原始数据路由到该新建的压缩进程,执行所述新建的压缩进程,完成原始数据的压缩,生成新的数据块,并指定所述数字指纹为所述新建的数据块的主数字指纹。
其中,可选的,所述数据块的数字指纹范围在确认要新建数据块时被设置,具体包括:以原始数据生成的用于数据相似性检测的数字指纹作为主数字指纹;以所述主数字指纹作为中心,并以到所述中心的汉明距离作为所述新建数据块的数字指纹范围。
可选的,将压缩后的所述原始数据存储到所述确定的数据块后,所述方法还包括:获取所述数据块和/或数据块的压缩进程的即时状态,并根据所述即时状态和压缩策略确定是否新建数据块和/或新建压缩进程。
当前数据块的大小是否在压缩策略限定的范围内,如果到达限定的数据块大小范围,则新建数据块;当前数据块的压缩进程中排队等待完成压缩的原始数据个数是否超过压缩策略的阈值,如果超过所述阈值,则新建压缩进程。
可选的,所述执行所述确定的数据块的压缩进程,完成原始数据的压缩,具体包括:将所述原始数据和确定的数据块作为所述压缩进程的压缩参数,并按照字典压缩算法重新生成数据块。
所述根据原始数据生成用于数据相似性检测的数字指纹包括:使用用于数据相似性检测的数字指纹算法根据原始数据生成用于数据相似性检测的数字指纹。
所述根据原始数据生成具有数据相似性的数字指纹前,所述方法还包括:利用分布式并行方式加载需要进行压缩的各原始数据。
图2是本发明另一实施例的数据压缩的方法20的示意流程图。方法20包括以下内容。
21,加载原始数据。
数据压缩装置中的数据加载器可以通过各种不同方式,例如文件、传输协议等将原始数据载入。其中传输协议可以是套接字(英文为Socket)、超文本传送协议(HTTP,HyperText Transfer Protocol)或消息队列(MQ,MessageQueue)等。
原始数据的整个加载过程即可以支持顺序扫描数据例如源表,也可以支持导入流式数据,甚至可以同时支持这两种方式,从而实现利用分布式并行方式加载,不存在现有技术中加载数据时排序或等待的情况。
22,根据原始数据生成具有数据相似性的数字指纹。
数据压缩装置使用用于数据相似性检测的数字指纹算法为载入的原始数据生成具有数据相似性的数字指纹。所生成的具有数据相似性的数字指纹上下文中简称为生成的数字指纹或数字指纹。其中,数据压缩装置中的数字指纹生成器(FIGURE_GENERATOR)可以用来生成数字指纹。可以由多个数字指纹生成器组成数字指纹生成器集群,与现有技术处理数据时需要排序或等待不同,进而可以实现利用分布式并行方式处理原始数据,工作效率高。
下文中,以SimHash(英文Hash-based Similarity Detection的缩写)算法为例,参考图3进行生成数字指纹的说明。SimHash算法是用于数据相似性检测的数字指纹算法的一种。原始数据经过用于数据相似性检测的数字指纹算法生成数字指纹,通过比对两个数字指纹间的汉明(英文为Hamming)距离,可以获知两者的数据相似性。
接下来介绍几个概念:
哈希(Hash)算法:Hash算法将原始数据尽量均匀随机地映射为一个签名值,变换成固定长度的输出,该输出就是散列值,也称为数字指纹。不同的特征串进行Hash算法后得到的数字指纹,简称为Hash数字指纹。不同的特征串得到的Hash数字指纹不同。
用于数据相似性检测的数字指纹算法:算法将原始数据进行转换,输出不同于进行传统Hash算法后得到的数字指纹。数字指纹之间的数据相似性可以体现原始数据的数据相似性。用于数据相似性检测的数字指纹算法包括SimHash算法、Shingling算法、I-Match算法和随机映射(英文为RandomProjection)算法等。以SimHash方法为例,两个进行SimHash算法后得到的数字指纹,通过汉明距离可以判定数字指纹对应的原始数据是否相似。其中进行SimHash算法后得到的数字指纹简称为SimHash数字指纹。
汉明距离:两个等长字符串之间对应位置的不同字符的个数。比如2143896与2233796比较数据相似性,如斜字体突出显示的字符所示,两者之间的汉明距离是3。
23,获取数据块的数字指纹范围。
数据块可以是多个,由此可以实现分布式压缩处理。首先数据压缩装置的数据路由模块(DATA_ROUTER)可以向数据压缩装置中的主控模块(Master)查询数据块中的数字指纹范围。
24,确定数字指纹是否落入数据块的数字指纹范围。
数据路由模块将数字指纹生成器生成的数字指纹与数据压缩装置中的数据块的数字指纹范围比对,确定数字指纹是否落入数据块的数字指纹范围。
数据块的数字指纹范围可以由两个上下限数字指纹限定,例如可以由一个主数字指纹及主数字指纹上的汉明距离限定。主数字指纹为设定的用来与根据原始数据生成的具有数据相似性的数据指纹进行汉明距离比对的一个数字指纹。例如主数字指纹为100110,且主数字指纹的汉明距离为小于等于3。比对的方法可以是将生成的数字指纹与主数字指纹比较,如果汉明距离为小于等于3,则上述生成的数字指纹落入该数字压缩单元的数字指纹范围,该数字压缩单元即为确定的数据块。生成的数字指纹对应的原始数据将被数据路由模块路由到上述确定的数据块的压缩进程,且被压缩到上述确定的数据块存储。
如果确定根据原始数据生成的数字指纹在一个数据块的数字指纹范围,也就是图2的24的判断结果为“是”,则执行图2的25;否则,也就是图2的24的判断结果为“否”,则执行图2的26。
25,将原始数据路由到确定的数据块的压缩进程。
数据压缩装置的数据路由模块在前一步骤中已确定原始数据存储时对应的的数据块,根据路由信息,将原始数据路由到确定的数据块对应的压缩进程,然后执行图2的27。
26,新建数据块。
当数据路由模块确定生成的数字指纹没有落入任何数据块的数字指纹范围时,则主控模块新建压缩进程,并由路由模块将所述原始数据路由到该新建的压缩进程,压缩模块执行所述新建的数据块的压缩进程,所述压缩进程完成原始数据的压缩,生成新的数据块;主控模块指定所述数字指纹为所述新建的数据块的主数字指纹,进入步骤28。
27,执行压缩进程,该压缩进程对原始数据进行压缩。
数据压缩装置的压缩模块(COMPRESS_WORKER)执行压缩进程。压缩模块可以是多个,组成一个用于处理压缩任务的集群。每个压缩模块可以并行处理一个或多个压缩进程,以提高工作效率,压缩时不需排序或等待。同一压缩进程可以将原始数据和已有的数据块重新压缩生成数据块或直接将原始数据压缩生成新的数据块。此外,同一压缩进程可以将原始数据分别和不同的数据块完成压缩。并且,不同的压缩进程可以将不同的原始数据和同一个数据块重新压缩生成数据块或将不同的原始数据和不同的数据块重新压缩。需要特别指出的是,在采用字典压缩算法时,重新压缩生成数据块后还要更新原有数据块的压缩字典,从而进一步提高数据重复性的压缩率。
原始数据的整个加载实现分布式并行加载后,在接下来的后续的压缩过程通过并行执行不同压缩进程同样可以实现分布式并行压缩,不存在现有技术中压缩原始数据时排序或等待的情况,由此工作效率高。
28,所述原始数据压缩完成后,获取所述数据块和/或数据块的压缩进程的即时状态。
压缩模块执行压缩进程,所述压缩进程将所述原始数据压缩到所述数据块,压缩模块向数据压缩装置的主控模块反馈所述数据块的即时状态,例如数据块大小、压缩比等指标。
29,根据即时状态确定是否新建数据块或新建压缩进程。
数据压缩装置的主控模块接收压缩模块执行压缩进程后反馈的分布式压缩处理的实时信息,按压缩策略决定是否需要新建数据块,以及是否需要新建立压缩进程。例如可以在数据块大小饱和时新建数据块,或者在当前的压缩进程不能处理过多待压缩的原始数据时,新建压缩进程。
所述即时状态包括当前各数据块的大小以及处于等待压缩进程执行压缩的数据块。
所述压缩策略包括单个数据块允许的最大容量、允许等待压缩进数据块最大原数据阈值;并在数据块的容量要超过策略中设置最大容量时,后续的检测到满足所述数据块的数字指纹范围的原数据就通过创建新数据块,进一步利用压缩进程完成压缩;并在等待压缩进数据块最大原数据阈值,创建新的压缩进程来处理超过所述阈值的原数据的压缩任务。
数据路由模块、主控模块和压缩模块通过消息队列(MQ,Message queue)进行通信。
本发明实施例中可以利用数据生成的数字指纹的数据相似性,将数据压缩到指定的数据块,从而提高数据压缩的压缩比。
接下来,以SimHash算法为例说明用于数据相似性检测的数字指纹算法的原理。图3是用于数据相似性检测的数字指纹算法生成具有数据相似性的数字指纹的原理示意图。如图3所示,包括以下几个步骤。
首先,原始数据31,其中col1…coln(其中n为正整数)为原始数据31中的各属性值,所述属性如“年龄”、“性别”、“城市”等。随后各个属性值值进行Hash算法得到原始数据31对应Hash散列值32。图3中属性值col3进行Hash算法获得Hash散列值为101101。
然后,计算原始数据31的加权向量,具体过程为Hash散列值对应位上为1的,则为正,否则为负1,得到未加权的向量,如所述col3的未加权向量为(1,-1,1,1,-1,1),并针对col1…coln各属性值的给上述未加权向量加权;图中w1、w3…wn即各属性值对应的加权值,由此得到了属性31的加权向量。
进一步将上述各属性值对应的加权向量按对应向量位求和。拿图3中的col1和col2对应的加权向量求和为例,如:
(w1,-w1,-w1,w1,-w1,-w1)+(w2,w2,-w2,-w2,-w2,w2)=
(w1+w2,-w1+w2,-w1-w2,w1-w2,-w1-w2,-w1+w2)。
按上述方法,将col1…coln对应的加权向量求和,得到图3中的向量V=(28,-2,-36,411,21,-54),然后将向量V映射为6位的二进制数,规则为:对应向量V从左到右的各位按照向量位大于0则取二进制1,向量位小于0则取二进制0。得到的映射为6位的二进制数即为经过SimHash算法得到的数字指纹34,简称为SimHash数字指纹,则原始数据31的SimHash数字指纹为100110。可以将原始数据31的SimHash数字指纹100110与另一个属性值的数字指纹进行比较,确认两者间的汉明距离,汉明距离的大小反映了原始数据31与所述另一个属性值的数据相似性。汉明距离越小,用于比较的两个数字指纹对应的属性值,所述属性值即本发明的原始数据的相似程度越高。其中,另一个数字指纹就是指上下文中的主数字指纹。
接下来,具体针对一个实例进行说明。图5是本发明实施例的一个应用场景的原始数据。图6是图5的原始数据进行用于数据相似性检测的数字指纹算法后的数据。为说明清楚,其中以斜体突出指示数据相似性较高的原始数据,如编号为1和编号为1221所在行的原始数据以斜体突出显示,所在行的原始数据下面称为数据行。
数字指纹生成器集群采用用于数据相似性检测的数字指纹算法对上述原始数据加载,然后进行运算,生成具有数据相似性的数字指纹,如图6的最后一列所示。
数据路由模块根据图6中的数字指纹将原始数据路由到对应的数据块的压缩进程。此时,编号1的数据行即为原始数据,也可以认为是图3的原始数据31,其中“用户标识”、“地区编号”等就是对应的属性,而“315000000000”、“315”就是对应编号1的属性值,得到经过SimHash计算获得编号1的SimHash值为10011000110010100…,数据路由模块查询发现无对应的数据块,则主控模块新建一个数据块,例如指定数据块编号为0001,主数字指纹为10011000110010100…,汉明距离范围为3。当编号为1221数据行,进行数据路由时,数据路由模块历遍数据块列表,发现与编号0001数据块的主数字指纹的汉明距离为1,参见图6中编号1和编号1221的数字指纹中黑色字体突出显示的字符。表明编号1221行数据,与编号0001的数据块的数据相似程度非常高,则将编号1221行数据路由至编号0001数据块对应的压缩进程。随后压缩模块执行该编号0001数据块对应的压缩进程,对编号1221行数据路进行压缩。压缩后的原始数据被存储在编号0001数据块。
本发明实施例中针对记录中的数据,生成具有数据相似性的数字指纹,通过汉明距离确定数据间的相似程度,在顺序扫描数据或对导入流式数据进行分布式并行加载过程中,不存在排序或等待情况,且将相似的记录聚合到同一个或同一组的数据块中,可以提高压缩比,同时也提高了数据分析效率。
图4A是本发明实施例的数据压缩的装置40的示意框图。装置40包括:数字指纹生成器41、数据路由模块42、压缩模块43和数据块44。
数字指纹生成器41用于根据原始数据生成用于数据相似性检测的数字指纹。
数据路由模块42用于根据所述数字指纹生成器41生成的所述数字指纹确定与所述原始数据具有数据相似性的数据块,将所述原始数据路由到确定的所述数据块的压缩进程。
压缩模块43用于执行所述确定的数据块的压缩进程,完成原始数据的压缩。
装置40实现了方法10,出于简洁,具体细节此处不再赘述。
本发明实施例中可以利用数据生成的数字指纹的数据相似性,将数据压缩到指定的数据块,从而提高数据压缩的压缩比。
图4B是本发明另一实施例的数据压缩的装置40的示意框图,与图4A的装置40不同的是,图4B的装置40还包括主控模块45和数据加载器46。
可选的,主控模块45向所述路由模块42提供数所述据块的数字指纹范围;所述数据路由模块42具体用于将所述数字指纹与所述数据块的数字指纹范围进行比对,将所述数字指纹所落入的数字指纹范围对应的数据块确定为与所述原始数据具有数据相似性的数据块,并将所述数据指纹对应的所述原始数据路由到所述确定的数据块的压缩进程。
可选的,当所述数据路由模块42确定所述数字指纹不在任何数据块的数字指纹范围内,则由主控模块45新建压缩进程;所述数据路由模块42还用于将所述原始数据路由到所述新建的压缩进程;所述压缩模块43执行所述新建的压缩进程,完成原始数据的压缩,生成新的数据块。所述主控模块45还用于设置所述数字指纹为所述新建的数据块的主数字指纹。
可选的,主控模块45还用于通过压缩模块43获取所述数据块和/或所述数据块的压缩进程的即时状态,并根据所述即时状态和所述装置的压缩策略确定是否新建数据块和/或新建压缩进程。
可选的,所述数字指纹生成器41使用用于数据相似性检测的数字指纹算法根据原始数据生成用于数据相似性检测的数字指纹。
可选的,所述数据加载器46利用分布式并行方式加载所述原始数据,并发送到所述数字指纹生成器41。
装置40实现了方法10和20,出于简洁,具体细节此处不再赘述。
本发明实施例中可以利用数据生成的数字指纹的数据相似性,将数据压缩到指定的数据块,从而提高数据压缩的压缩比。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种数据压缩的方法,其特征在于,包括:
根据原始数据生成用于数据相似性检测的数字指纹;
根据所述数字指纹确定与所述原始数据具有数据相似性的数据块,将所述原始数据路由到确定的数据块的压缩进程;
执行所述确定的数据块的压缩进程,完成对所述原始数据的压缩。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数字指纹确定与所述原始数据具有数据相似性的数据块,将所述原始数据路由到确定的数据块的压缩进程,具体包括:
获取数据块的数字指纹范围,将所述数字指纹与所述数据块的数字指纹范围进行比对,将所述数字指纹所落入的数字指纹范围对应的数据块确定为与所述原始数据具有数据相似性的数据块,并将所述数据指纹对应的所述原始数据路由到所述确定的数据块的压缩进程。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述数字指纹不在任何数据块的数字指纹范围内,则新建压缩进程;并将所述原始数据路由到该新建的压缩进程,执行所述新建的压缩进程,完成对所述原始数据的压缩,生成新的数据块,并指定所述数字指纹为所述新建的数据块的主数字指纹。
4.根据权利要求1-3任一所述的方法,其特征在于,所述数据块的数字指纹范围在确认要新建数据块时被设置,具体包括:
以原始数据生成的用于数据相似性检测的数字指纹作为主数字指纹;
以所述主数字指纹作为中心,并以到所述中心的汉明距离作为所述新建数据块的数字指纹范围。
5.根据权利要求1-4任一所述的方法,其特征在于,所述方法还包括:获取所述数据块和/或数据块的压缩进程的即时状态,并根据所述即时状态和压缩策略确定是否新建数据块和/或新建压缩进程。
6.根据权利要求5所述的方法,其特征在于,所述即时状态和压缩策略包括:
当前数据块的大小是否在压缩策略限定的范围内,如果到达限定的数据块大小范围,则新建数据块;
当前数据块的压缩进程中排队等待完成压缩的原始数据个数是否超过压缩策略的阈值,如果超过所述阈值,则新建压缩进程。
7.根据权利要求1-6任一所述的方法,其特征在于,所述根据原始数据生成用于数据相似性检测的数字指纹前,所述方法还包括:
利用分布式并行方式加载需要进行压缩的各原始数据。
8.根据权利要求1-7任一所述的方法,其特征在于,所述执行所述确定的数据块的压缩进程,完成原始数据的压缩,具体包括:
将所述原始数据和确定的数据块作为所述压缩进程的压缩参数,并按照字典压缩算法重新生成数据块。
9.一种数据压缩的装置,其特征在于,包括数字指纹生成器、数据路由模块和压缩模块:
所述数字指纹生成器用于根据原始数据生成用于数据相似性检测的数字指纹;
所述数据路由模块用于根据所述数字指纹生成器生成的所述数字指纹确定与所述原始数据具有数据相似性的数据块,将所述原始数据路由到确定的所述数据块的压缩进程;
所述压缩模块用于执行所述确定的数据块的压缩进程,完成原始数据的压缩。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括主控模块:
所述主控模块用于向所述数据路由模块提供所述数据块的数字指纹范围;
所述数据路由模块具体用于将所述数字指纹与所述数据块的数字指纹范围进行比对,将所述数字指纹所落入的数字指纹范围对应的数据块确定为与所述原始数据具有数据相似性的数据块,并将所述数据指纹对应的所述原始数据路由到所述确定的数据块的压缩进程。
11.根据权利要求10所述的装置,其特征在于所述主控模块还用于:
当所述数据路由模块确定所述数字指纹不在任何数据块的数字指纹范围内,则新建压缩进程;
所述数据路由模块还用于将所述原始数据路由到所述新建的压缩进程;
所述压缩模块执行所述新建的压缩进程,完成原始数据的压缩,生成新的数据块。
所述主控模块还用于设置所述数字指纹为所述新建的数据块的主数字指纹。
12.根据权利要求10所述的装置,其特征在于:
所述主控模块还用于通过压缩模块获取所述数据块和/或所述数据块的压缩进程的即时状态,并根据所述即时状态和所述装置的压缩策略确定是否新建数据块和/或新建压缩进程。
13.根据权利要求9所述的装置,其特征在于所述装置还包括数据加载器:
所述数据加载器利用分布式并行方式加载所述原始数据,并发送到所述数字指纹生成器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210142169.1A CN102708183B (zh) | 2012-05-09 | 2012-05-09 | 数据压缩的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210142169.1A CN102708183B (zh) | 2012-05-09 | 2012-05-09 | 数据压缩的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102708183A true CN102708183A (zh) | 2012-10-03 |
CN102708183B CN102708183B (zh) | 2015-03-25 |
Family
ID=46900949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210142169.1A Expired - Fee Related CN102708183B (zh) | 2012-05-09 | 2012-05-09 | 数据压缩的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102708183B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753540A (zh) * | 2015-03-05 | 2015-07-01 | 华为技术有限公司 | 数据压缩方法、数据解压方法和装置 |
CN104753626A (zh) * | 2013-12-25 | 2015-07-01 | 华为技术有限公司 | 一种数据压缩方法、设备及系统 |
CN106126728A (zh) * | 2016-07-04 | 2016-11-16 | 上海电气集团股份有限公司 | 一种实时数据分布式并行压缩的方法 |
CN106557469A (zh) * | 2015-09-24 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 一种处理数据仓库中数据的方法及装置 |
CN108243146A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种高效的信息提交方法 |
WO2019128409A1 (zh) * | 2017-12-28 | 2019-07-04 | 中国银联股份有限公司 | 一种数据压缩存储方法以及数据压缩存储装置 |
CN110704407A (zh) * | 2019-09-04 | 2020-01-17 | 苏宁云计算有限公司 | 一种数据去重的方法和系统 |
CN112099725A (zh) * | 2019-06-17 | 2020-12-18 | 华为技术有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN112534427A (zh) * | 2018-08-07 | 2021-03-19 | 昕诺飞控股有限公司 | 在分布式计算网络的边缘节点中使用聚类和形状匹配来压缩传感器数据的系统和方法 |
CN115099193A (zh) * | 2022-08-22 | 2022-09-23 | 北京永洪商智科技有限公司 | 一种分布式数据压缩存储方法及系统 |
CN116415159A (zh) * | 2023-06-12 | 2023-07-11 | 青岛市城市规划设计研究院 | 一种海绵城市数据管理方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101820426A (zh) * | 2010-04-22 | 2010-09-01 | 华中科技大学 | 一种在线备份服务软件中的数据压缩方法 |
-
2012
- 2012-05-09 CN CN201210142169.1A patent/CN102708183B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101820426A (zh) * | 2010-04-22 | 2010-09-01 | 华中科技大学 | 一种在线备份服务软件中的数据压缩方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753626A (zh) * | 2013-12-25 | 2015-07-01 | 华为技术有限公司 | 一种数据压缩方法、设备及系统 |
CN104753540A (zh) * | 2015-03-05 | 2015-07-01 | 华为技术有限公司 | 数据压缩方法、数据解压方法和装置 |
CN104753540B (zh) * | 2015-03-05 | 2019-02-26 | 华为技术有限公司 | 数据压缩方法、数据解压方法和装置 |
CN106557469A (zh) * | 2015-09-24 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 一种处理数据仓库中数据的方法及装置 |
CN106557469B (zh) * | 2015-09-24 | 2020-11-20 | 创新先进技术有限公司 | 一种处理数据仓库中数据的方法及装置 |
CN106126728A (zh) * | 2016-07-04 | 2016-11-16 | 上海电气集团股份有限公司 | 一种实时数据分布式并行压缩的方法 |
CN108243146B (zh) * | 2016-12-23 | 2020-01-24 | 中科星图股份有限公司 | 一种信息提交方法 |
CN108243146A (zh) * | 2016-12-23 | 2018-07-03 | 航天星图科技(北京)有限公司 | 一种高效的信息提交方法 |
WO2019128409A1 (zh) * | 2017-12-28 | 2019-07-04 | 中国银联股份有限公司 | 一种数据压缩存储方法以及数据压缩存储装置 |
CN112534427A (zh) * | 2018-08-07 | 2021-03-19 | 昕诺飞控股有限公司 | 在分布式计算网络的边缘节点中使用聚类和形状匹配来压缩传感器数据的系统和方法 |
CN112099725A (zh) * | 2019-06-17 | 2020-12-18 | 华为技术有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
US11797204B2 (en) | 2019-06-17 | 2023-10-24 | Huawei Technologies Co., Ltd. | Data compression processing method and apparatus, and computer-readable storage medium |
CN110704407A (zh) * | 2019-09-04 | 2020-01-17 | 苏宁云计算有限公司 | 一种数据去重的方法和系统 |
CN110704407B (zh) * | 2019-09-04 | 2022-07-05 | 苏宁云计算有限公司 | 一种数据去重的方法和系统 |
CN115099193A (zh) * | 2022-08-22 | 2022-09-23 | 北京永洪商智科技有限公司 | 一种分布式数据压缩存储方法及系统 |
CN116415159A (zh) * | 2023-06-12 | 2023-07-11 | 青岛市城市规划设计研究院 | 一种海绵城市数据管理方法及系统 |
CN116415159B (zh) * | 2023-06-12 | 2023-08-18 | 青岛市城市规划设计研究院 | 一种海绵城市数据管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102708183B (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102708183A (zh) | 数据压缩的方法和装置 | |
US9405790B2 (en) | System, method and data structure for fast loading, storing and access to huge data sets in real time | |
US8996464B2 (en) | Efficient partitioning techniques for massively distributed computation | |
US20180196609A1 (en) | Data Deduplication Using Multi-Chunk Predictive Encoding | |
US8214388B2 (en) | System and method for adding a storage server in a distributed column chunk data store | |
US10831747B2 (en) | Multi stage aggregation using digest order after a first stage of aggregation | |
US9727308B2 (en) | Sorting multiple records of data using ranges of key values | |
CN102687404B (zh) | 用于数据压缩的数据值出现信息 | |
CN109325032B (zh) | 一种索引数据存储及检索方法、装置及存储介质 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
KR102104193B1 (ko) | 서비스 파라미터 선택 방법 및 관련된 디바이스 | |
US10783163B2 (en) | Instance-based distributed data recovery method and apparatus | |
US9740734B2 (en) | Group-by processing for data containing singleton groups | |
CN113836084A (zh) | 一种数据存储方法、装置和系统 | |
CN111046045A (zh) | 处理数据倾斜的方法、装置、设备及存储介质 | |
CN103150260A (zh) | 重复数据删除方法和装置 | |
CN104298736A (zh) | 数据集合连接方法、装置及数据库系统 | |
US20230325375A1 (en) | Measuring and improving index quality in a distrubuted data system | |
US20220083246A1 (en) | Variable Length Deduplication of Stored Data | |
CN111949681A (zh) | 数据的聚合处理装置、方法和存储介质 | |
CN105243027A (zh) | 在存储设备中存储数据的方法和存储控制器 | |
WO2022007596A1 (zh) | 图像检索系统、方法和装置 | |
CN109285015B (zh) | 一种虚拟资源的分配方法及系统 | |
CN106682047A (zh) | 一种数据导入方法以及相关装置 | |
CN116578558A (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: 20150325 |
|
CF01 | Termination of patent right due to non-payment of annual fee |