CN111817722A - 数据压缩方法、装置及计算机设备 - Google Patents
数据压缩方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN111817722A CN111817722A CN202010656511.4A CN202010656511A CN111817722A CN 111817722 A CN111817722 A CN 111817722A CN 202010656511 A CN202010656511 A CN 202010656511A CN 111817722 A CN111817722 A CN 111817722A
- Authority
- CN
- China
- Prior art keywords
- compression
- compressed
- data
- encoding rule
- recommended
- 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 70
- 238000013144 data compression Methods 0.000 title claims abstract description 40
- 238000007906 compression Methods 0.000 claims abstract description 545
- 230000006835 compression Effects 0.000 claims abstract description 529
- 230000008569 process Effects 0.000 claims abstract description 31
- 230000006837 decompression Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002407 reforming Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
- H03M7/3062—Compressive sampling or sensing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3079—Context modeling
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
-
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3077—Sorting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/607—Selection between different types of compressors
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)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本说明书实施例提供一种数据压缩方法、装置及计算机设备,该方法包括:获取待压缩对象;查找推荐记录中是否存在满足压缩率条件的推荐压缩编码规则,所述推荐记录用于记录:历史压缩对象的压缩编码规则及对应的压缩率信息,所述历史压缩对象与所述待压缩对象类型相同;若存在,则利用所述推荐压缩编码规则对所述待压缩对象进行压缩;若不存在,则启动常规压缩编码流程获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用所述目标压缩编码规则对所述待压缩对象进行压缩。
Description
技术领域
本说明书涉及数据处理技术领域,尤其涉及数据压缩方法、装置及计算机设备。
背景技术
数据压缩可以理解为用更少的编码来表示更多的信息,数据压缩时需要选取合适的压缩编码规则以获得较好的压缩效率;目前压缩编码规则越来越多,需要付出较大的计算代价来选取合适的压缩编码规则。
发明内容
为克服相关技术中存在的问题,本说明书提供了数据压缩方法、装置及计算机设备。
根据本说明书实施例的第一方面,提供一种数据压缩方法,包括:
获取待压缩对象;
查找推荐记录中是否存在满足压缩率条件的推荐压缩编码规则,所述推荐记录用于记录:历史压缩对象的压缩编码规则及对应的压缩率信息,所述历史压缩对象与所述待压缩对象类型相同;
若存在,则利用所述推荐压缩编码规则对所述待压缩对象进行压缩;
若不存在,则启动常规压缩编码流程获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用所述目标压缩编码规则对所述待压缩对象进行压缩。
可选的,所述待压缩对象包括:对待压缩数据切分得到的待压缩数据单元;所述历史压缩对象包括:对所述待压缩数据切分得到的其他历史压缩数据单元。
可选的,所述待压缩对象包括:对数据表的待压缩数据切分得到的待压缩数据单元;所述历史压缩对象包括:对应所述数据表的历史压缩数据单元。
可选的,所述待压缩对象包括:数据表中待压缩的一列数据;所述历史压缩对象包括:所述数据表中与所述待压缩的一列数据同一列的历史压缩数据。
可选的,所述待压缩对象包括:数据表副本;所述历史压缩对象包括:所述数据表副本对应的主数据表。
可选的,所述压缩率条件至少包括:推荐压缩编码规则的压缩率信息高于设定阈值。
可选的,所述对所述待压缩对象进行压缩后,还包括:基于所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新。
可选的,所述基于所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新,包括:
获取所述待压缩对象的实际压缩率,至少基于所述实际压缩率和所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新。
可选的,所述方法还包括:获取所述待压缩对象的访问需求信息,所述访问需求信息与所述待压缩对象的解压效率相关;
所述压缩率条件包括:推荐压缩编码规则的压缩率信息与所述访问需求信息匹配。
可选的,所述至少基于所述预估压缩率选取目标压缩编码规则,包括:
基于所述预估压缩率和所述访问需求信息选取目标压缩编码规则。
可选的,所述待压缩对象的访问需求通过获取所述待压缩对象和/或所述历史压缩对象的历史访问数据而确定。
可选的,所述历史访问数据包括:历史访问频率。
可选的,所述至少基于所述实际压缩率和所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新,包括:
基于所述实际压缩率、所述访问需求信息以及所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新。
可选的,所述压缩编码规则的压缩率信息包括:表征压缩编码规则的实际压缩率高低的置信度;
所述基于所述实际压缩率、所述访问需求信息以及所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新,包括:
在所述待压缩对象所使用的压缩编码规则是推荐记录中记录的推荐压缩编码规则的情况下,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则增加所述推荐压缩编码规则的置信度,否则降低所述推荐压缩编码规则的置信度;
在所述待压缩对象所使用的压缩编码规则不同于推荐记录中记录的推荐压缩编码规则的情况下,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则将推荐记录中的推荐压缩编码规则替换为所述待压缩对象所使用的压缩编码规则。
根据本说明书实施例的第二方面,提供一种数据压缩装置,所述装置包括:
获取模块,用于:获取待压缩对象;
查找模块,用于:查找推荐记录中是否存在满足压缩率条件的推荐压缩编码规则,所述推荐记录用于记录:历史压缩对象的压缩编码规则及对应的压缩率信息,所述历史压缩对象与所述待压缩对象类型相同;
第一压缩模块,用于:若存在满足压缩率条件的推荐压缩编码规则,则利用所述推荐压缩编码规则对所述待压缩对象进行压缩;
第二压缩模块,用于:若不存在满足压缩率条件的推荐压缩编码规则,则启动常规压缩编码流程获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用所述目标压缩编码规则对所述待压缩对象进行压缩。
根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现前述数据压缩方法的实施例。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,由于推荐记录中记录有历史压缩对象的压缩编码规则及对应的压缩率信息,可以基于压缩率条件从推荐记录中查找是否有合适的压缩编码规则,如果没有则启动常规编码压缩流程对待压缩对象进行压缩;如果有可以直接利用该压缩编码规则进行压缩,因此无需耗费时间和资源对当前待压缩对象计算合适的压缩编码规则,从而显著提高压缩效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种数据压缩方法的流程图。
图2是本说明书根据一示例性实施例示出的一种数据压缩方法示意图。
图3是本说明书根据一示例性实施例示出的一种数据压缩装置所在计算机设备的一种硬件结构图。
图4是本说明书根据一示例性实施例示出的一种数据压缩装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
对于关系数据库来说,数据查询处理和数据存储一直是最核心的两个要素。一般来说,数据查询处理更多的需要消耗CPU和内存资源,而数据存储主要消耗磁盘等存储硬件资源,但是时至今日,存储硬件的发展始终未跟上其它系统硬件的发展速度。一方面存储硬件空间增长速度总是跟不上用户希望存储更多范围以及更长时间数据的存储需求;另一方面当前存储硬件的访问延时始终落后于CPU、内存至少一个数量级。总体来说,空间和访问延时问题已经成为阻碍数据库存储快速发展的两大难题。
为解决上述问题,业内各个数据库厂商均积极引入了通用数据压缩技术,基于各自数据库本身存储在页面/块级别对数据进行压缩,这样不仅大幅减少存储空间占用,对于大范围数据扫描查询时,存储访问延时也因为数据IO(input/output,输入/输出)量减少得到了提升,而付出的代价是压缩和解压过程中更多的CPU和内存消耗。从数据库整体来看压缩技术的引入能够让整体资源使用更加平衡,相同硬件条件下能够满足用户更多更苛刻的业务要求。
压缩可以理解为用更少的编码来表示更多的信息,数据库行列混合压缩中常见的压缩方式是根据数据的分布,将不同的数据用不同的编码规则来进行压缩。
数据压缩的理论极限就是相应的信息熵,也即对数据信息获取的越多,最终数据的压缩率就会越高。通用数据压缩技术一般为了支持更多使用场景,只是针对字节流建立滑动字典进行编码压缩,会利用一定范围内的上下文信息。而关系数据库对内部的数据天然具有更多的背景知识,例如数据列的类型能够推知数据的值域分布,相同列的数据会具有更强的聚簇性。因此越来越多的数据库厂商会把数据按照压缩单元切分,每个压缩单元内部使用列存储格式存储,并利用列内的上下文关系以及列间的数据关系来和找到最匹配的编码规则进行压缩,比如字典编码、游程编码、增量编码等。相比较于通用压缩,这些编码规则因为利用了内置的数据信息能够带来更高的压缩率,同时使用内置的存储格式也让数据库具备了基于编码数据直接查询的能力。尤其对于LSM-Tree(The Log-StructuredMerge-Tree)架构的数据库来说,由于需要不断地对存储数据做合并,而合并操作会涉及到对数据的整体重写,很自然地能够在数据重整过程中加入行列混合编码压缩。
数据库内部支持基于行列混合编码压缩虽然能够带来更高的压缩率,但是随之而来的是压缩编码规则选择和检测的复杂问题,数据库需要遍历所有压缩单元内的列数据提炼概要数据,然后根据不同压缩规则来评估最终压缩大小并决定最后选择的编码规则,整个编码规则检测流程需要耗费大量的预计算以及匹配比较;另外目前压缩编码规则检测一般只针对同一个压缩单元的所有数据上下文,一旦扩大范围就会导致检测复杂度指数级上升。
各个数据库的编码规则压缩基本都是基于行列混合存储模式实现的,选取一定数量的数据记录元组作为一个整体压缩单元,在这个压缩单元内所有数据按列组织存储。数据库会对每列数据进行遍历扫描,获取该列数据的基本分布和数据特征,然后根据具体数据特征来选择合适的规则进行编码压缩。不同的数据库各自实现不同的编码压缩规则,总体来说,基本都会包含字典编码、游程编码、增量编码、数值型编码以及部分开源通用压缩编码。这种实现方式中,压缩编码规则选择速度较慢,数据库在确定对一列数据最终选择的压缩编码规则前,必须经历数据扫描分析、不同编码规则压缩率预计算、编码规则选择、数据压缩几个阶段,每个阶段都需要付出较大的计算代价。
基于此,本说明书实施例提供一种数据压缩方案,本实施例方案涉及推荐记录,推荐记录用于记录历史压缩对象的压缩编码规则及对应的压缩率信息,所述历史压缩对象与所述待压缩对象类型相同,因此,本说明书实施例在对待压缩对象进行压缩时,可以基于压缩率条件先从推荐记录中查找是否有合适的压缩编码规则,如果没有则启动常规编码压缩流程对待压缩对象进行压缩;如果有可以直接利用该压缩编码规则进行压缩,因此无需耗费时间和资源对当前待压缩对象计算合适的压缩编码规则,从而显著提高压缩效率。
接下来对本说明书实施例进行详细说明。如图1所示,图1是本说明书根据一示例性实施例示出的一种方法的流程图,包括以下步骤:
在步骤102、获取待压缩对象;
在步骤104、查找推荐记录中是否存在满足压缩率条件的推荐压缩编码规则,所述推荐记录用于记录:历史压缩对象的压缩编码规则及对应的压缩率信息,所述历史压缩对象与所述待压缩对象类型相同。
在步骤106、若存在,则利用所述推荐压缩编码规则对所述待压缩对象进行压缩
在步骤108、若不存在,则启动常规压缩编码流程获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用所述目标压缩编码规则对所述待压缩对象进行压缩。
本实施例适用于多种数据压缩场景,待压缩对象可以是数据表、视频文件、音频文件或图像等等多种类型的对象,本实施例对此不作限定。历史压缩对象是与待压缩对象同类型的、在待压缩对象压缩之前已被压缩的对象;针对不同的待压缩对象,历史压缩对象与所述待压缩对象类型相同可以有多种不同的实现方式。作为例子,待压缩对象与历史压缩对象可以是不同时间产生的、不同版本的数据,例如程序源文件等;待压缩对象与历史压缩对象也可以是格式相同的数据,例如同为视频格式的数据;待压缩对象与历史压缩对还可以是归属于同一母数据的各个子数据,例如将原始数据切分得到的多个子数据,或者是归属于同一数据表的多个数据单元等等。
作为例子,假设当前需要对待压缩对象Data-A1进行压缩;首次压缩过程,由于没有与待压缩对象同类型的历史压缩对象可供参考,推荐记录为空,不存在满足压缩率条件的推荐压缩编码规则,因此启动常规压缩编码流程,可以获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用选取的目标压缩编码规则对所述待压缩对象进行压缩。
在首次压缩完成后,基于所述待压缩对象Data-A1所使用的压缩编码规则对所述推荐记录进行更新,例如可以将本次压缩情况记录于推荐记录中,具体的,可以是在推荐记录中写入目标压缩编码规则以及该目标压缩编码规则的压缩率信息。在一些例子中,压缩编码规则对待压缩对象的预估压缩率与实际压缩率相差不大,压缩率信息可以是与预估压缩率相关的信息;在另一些例子中,压缩编码规则对待压缩对象的预估压缩率与实际压缩率可能有一定差异,可能实际压缩率比预估压缩率低,也可能比预估压缩率高,因此本实施例中还可以获取所述待压缩对象的实际压缩率,至少基于所述实际压缩率和所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新;则压缩率信息可以是与实际压缩率相关的信息,实际压缩率可以在Data-A1压缩完成后计算得到,例如根据待压缩对象压缩后的实际大小与待压缩对象的原始大小的比值而确定。其中,压缩率信息可以直接采用压缩率的数值,也可以是利用压缩率根据需要采用设定方式转换得到的相关信息。
后续的,Data-A1由于插入新数据或其他原因,在Data-A1的基础上新生成了Data-A2;本次压缩流程中,Data-A2作为新的待压缩对象,与Data-A2的类型相同,采用Data-A1作为历史压缩对象参考其压缩过程。
对Data-A2的压缩过程中,可以参考Data-A1的压缩情况选择压缩编码规则;例如,推荐记录中记录有压缩Data-A1的压缩编码规则及对应的压缩率信息,可以根据压缩率条件确定是否选取Data-A1的压缩编码规则进行编码;若选取Data-A1的压缩编码规则,则可直接利用该压缩编码规则对所述Data-A2进行压缩。其中,本实施例中的压缩率条件可以根据需要灵活配置,例如有些待压缩对象对压缩率有一定要求,而不同压缩编码规则对压缩对象的压缩效果不一,本实施例可以设定压缩率条件选取合适的推荐压缩编码规则,作为例子,压缩率条件可以包括:推荐压缩编码规则的压缩率信息高于设定阈值,具体的阈值可根据实际需要灵活配置,本实施例对此不作限定。
可以理解,在对Data-A2的压缩过程中,由于可以选取历史压缩对象的压缩编码规则进行压缩,因此无需耗费时间和资源对当前待压缩对象计算合适的压缩编码规则,从而显著提高压缩效率。
当然,若Data-A1的压缩编码规则不满足Data-A2的压缩率条件,Data-A2也可以启动常规压缩编码流程获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用所述目标压缩编码规则对所述待压缩对象进行压缩。
在对Data-A2压缩后,还可以基于Data-A2的压缩情况更新推荐记录;例如,实际业务中可能出现由于Data-A1插入新数据导致Data-A2可能不适用于原有Data-A1的压缩编码规则,因此,本实施例中可以获取Data-A2的实际压缩率,并至少基于所述实际压缩率和所述Data-A2所使用的压缩编码规则对所述推荐记录进行更新。例如,将推荐记录更新为Data-A2所使用的压缩编码规则,以及根据Data-A2的实际压缩率更新压缩率信息。
实际压缩业务场景中,可能面临待压缩数据较大的问题,因此可以将待压缩数据按需要切分为多个待压缩数据单元,此类业务场景采用本实施例的数据压缩方法可获得较好的压缩效率提升。作为例子,待压缩对象可以包括:对待压缩数据切分得到的待压缩数据单元;历史压缩对象包括:所述待压缩数据切分得到的其他历史压缩数据单元。
作为例子,如图2所示,Data-B可以切分为Data-b1至Data-b4共4个待压缩数据单元。
对于Data-b1,首次压缩过程,由于没有历史压缩对象可供参考,推荐记录为空,不存在满足压缩率条件的推荐压缩编码规则,因此启动常规压缩编码流程,可以获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用选取的目标压缩编码规则对所述待压缩对象进行压缩。
在首次压缩完成后,可以将本次压缩情况记录于推荐记录中;例如,将目标压缩编码规则记录于推荐记录中,以及该目标压缩编码规则的压缩率信息。后续的,对Data-b2的压缩过程中,可以参考Data-b1的压缩情况选择压缩编码规则;例如,推荐记录中记录有压缩Data-b1的压缩编码规则及对应的压缩率信息,可以根据压缩率条件确定是否选取Data-b1的压缩编码规则进行编码;若选取Data-b1的压缩编码规则,则可直接利用该压缩编码规则对所述Data-b2进行压缩。在Data-b2压缩后,根据压缩情况确定是否更新推荐记录。后续的,Data-b3和Data-b4也可以利用相同流程实现快速压缩,以及对推荐记录的更新。
在另一些例子中,以数据表的压缩场景为例,LSM-Tree架构等分布式关系数据库,数据表可能面临多次合并,每次合并的新数据需要进行压缩处理。利用本说明书实施例的方案,不需要重复进行预估多个压缩编码规则的压缩率的工作,可以利用历史压缩对象的压缩知识构建推荐记录,在后续的其他次压缩过程中,可以基于推荐记录快速地获得压缩编码规则。
作为例子,当前需要对tableC中的待压缩数据进行压缩,由于tableC中的待压缩数据较大,根据设定的数据单元大小,将tableC中的待压缩数据切分为table-c1至table-c5共5个待压缩数据单元。
对于table-c1,首次压缩过程,由于没有历史压缩对象可供参考,推荐记录为空,因此启动常规压缩编码流程,可以获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用选取的目标压缩编码规则对所述待压缩对象进行压缩。
在首次压缩完成后,可以将本次压缩情况记录于推荐记录中;例如,将目标压缩编码规则记录于推荐记录中,以及该目标压缩编码规则的压缩率信息。后续的,对table-c2的压缩过程中,可以参考table-c1的压缩情况选择压缩编码规则;例如,推荐记录中记录有压缩table-c1的压缩编码规则及对应的压缩率信息,可以根据压缩率条件确定是否选取table-c1的压缩编码规则进行编码;若选取table-c1的压缩编码规则,则可直接利用该压缩编码规则对所述table-c2进行压缩。在table-c2压缩后,根据压缩情况确定是否更新推荐记录。后续的,table-c3和table-c4也可以利用相同流程实现快速压缩,以及对推荐记录的更新。
在另一些例子中,数据表通常含有多列不同属性的数据,各列的数据可能差异较大,数据表的不同列数据可以采用不同的压缩编码规则。例如用户数据表中,有关用户年龄的一列数据是整数型数据,有关用户名称的一列数据是字符串型数据,可以针对这两列数据分别选取合适的压缩编码规则。基于此,本实施例的待压缩对象可以包括:数据表中待压缩的一列数据;所述目标压缩对象可以包括:所述数据表中与所述待压缩的一列数据同一列的历史压缩数据。基于此,本实施例可以通过对列数据进行区分,推荐记录中记录的压缩编码规则与列数据相对应,当数据表中某一列数据压缩后,后续的该数据表中该列数据出现更新后需要压缩时,可以基于数据表中同一列的历史压缩数据的压缩编码规则进行压缩,从而可提高压缩效率。
在另一些例子中,所述待压缩对象包括:数据表副本;所述历史压缩对象包括:所述数据表副本对应的主数据表。
与前述例子相似,数据表副本与主数据表内容完全相同,数据表副本与主数据表保持一致,通常是主数据表更新后,数据表副本依据主数据表的更新操作进行更新。若主数据表涉及更新后压缩存储,数据表副本同样需要进行更新后压缩存储。基于此,数据表副本的压缩过程中,可以直接使用主数据表的压缩编码规则执行压缩。可选的,在对数据表副本压缩时,查找推荐记录中主数据表的压缩编码规则及对应的压缩率信息,直接使用主数据表的压缩编码规则进行压缩。当然,实际业务中也可能存在对主数据表选取压缩编码规则的实际压缩率不高的情况,在查找推荐记录中可以根据需要确定推荐记录中不存在满足压缩率条件的推荐压缩编码规则,进而启动常规压缩编码流程对数据表副本进行压缩。
实际业务中,压缩编码规则评价标准单一,压缩编码规则选择的主要依据是最终实际压缩率的高低,并未综合考虑不同压缩编码规则对实际数据库业务负载下不同数据访问模式所带来的额外开销。例如,假设数据压缩率较高,则对应的数据解压过程耗费时间会越大,压缩率与解压效率负相关。如果数据需要经常访问,且数据压缩率较高,而每次访问都需要对数据进行解压处理,则必然会带来较大的额外解压开销。基于此,本实施例中,获取所述待压缩对象的访问需求信息,所述访问需求信息可以是与解压效率相关,例如访问需求越大,则相应的解压效率应越快,该访问需求信息可以是由业务方配置,也可以是由数据访问方配置,还可以是收集待压缩对象和/或所述历史压缩对象的历史访问数据而确定;例如,假设历史压缩对象经常被访问,则数据访问需求较大,相应的解压效率需求较大,基于此可以设置较高的访问需求;如果历史压缩对象很少被访问,则数据访问需求较小,相应的解压效率需求较小,基于此可以设置较低的访问需求。可选的,待压缩对象的历史访问信息可以基于与待压缩对象同类型的历史压缩数据获取到,可选的,历史访问信息可以包括数据的操作类型,例如增删改查;或者是对数据在一定时间段内的操作次数,或者是历史访问频率等。
相应的,压缩率条件包括:推荐压缩编码规则的压缩率信息与访问需求匹配,从而可基于压缩率要求和访问需求信息选取合适的压缩编码规则,而不是只基于压缩率一个单一因素进行选择,使得最终压缩的数据还能够满足业务的访问需求。
基于此,在获取有访问需求信息的情况下,还可以基于所述实际压缩率、所述访问需求信息以及所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新。作为例子,在压缩初始阶段,推荐记录中开始写入待压缩对象所使用的压缩编码规则,后续随着待压缩数据的内容变动,或者是待压缩数据的访问情况有变动,后续待压缩对象所使用的压缩编码规则可能有变动。基于此需要实现推荐记录的动态更新。可选的,本实施例中所述压缩编码规则的压缩率信息采用置信度实现,该置信度表征压缩编码规则的实际压缩率高低,以在持续的压缩过程中能够动态调整压缩编码规则的可信度;可选的,本实施例中所述基于所述实际压缩率及所述访问需求对所述推荐记录中压缩编码规则及对应的压缩率信息进行更新,可以包括:在所述待压缩对象所使用的压缩编码规则是推荐记录中记录的推荐压缩编码规则的情况下,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则增加所述推荐压缩编码规则的置信度,否则降低所述推荐压缩编码规则的置信度;在所述待压缩对象所使用的压缩编码规则不同于推荐记录中记录的推荐压缩编码规则的情况下,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则将推荐记录中的推荐压缩编码规则替换为所述待压缩对象所使用的压缩编码规则。
由上述实施例可见,当待压缩对象使用推荐记录中记录的推荐压缩编码规则进行压缩时,在压缩结束后通过实际压缩率和访问需求信息来检验该推荐压缩编码规则是否合适,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则增加所述推荐压缩编码规则的置信度,使得后续压缩时可以继续采用该压缩编码规则;否则降低所述推荐压缩编码规则的置信度,使得该推荐压缩编码规则的置信度低于阈值时可以启动常规压缩编码流程以获取新的压缩编码规则。若推荐记录中没有合适的压缩编码规则,则启动常规压缩编码流程获取到新的压缩编码规则,该新的压缩编码规则不同于推荐记录中记录的推荐压缩编码规则,同样在压缩结束后通过实际压缩率和访问需求信息来检验该推荐压缩编码规则是否合适,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则可将推荐记录中的推荐压缩编码规则替换为所述待压缩对象所使用的压缩编码规则,使得最新的合适的压缩编码能够记录于推荐记录中,以供后续压缩所使用。若待压缩对象的实际压缩率不匹配所述访问需求信息,则该压缩编码规则不适用,可不对推荐记录进行更新。
接下来再通过一实施例对本申请的数据压缩方法再次进行说明。在LSM-Tree(TheLog-Structured Merge-Tree)架构等分布式数据库面临较多的数据合并需求。以LSM-tree架构的关系数据库为例,LSM-tree是一种多层结构,类似于树结构,上小下大。首先是内存的C0层,保存了所有最近写入的数据元组记录,这个内存结构是有序的,并且可以随时原地更新,同时支持随时查询。剩下的C1到Cn层都在磁盘上。
数据写入流程为:一个数据写入操作来了,首先追加到写前日志(Write AheadLog,也就是真正写入之前记录的日志)中,接下来加到C0层。当C0层的数据达到一定大小,就把C0层和C1层合并,类似归并排序,这个过程就是Compaction(合并)。合并出来的新的new-C1会顺序写磁盘,替换掉原来的old-C1。当C1层达到一定大小,会继续和下层合并。合并之后所有旧文件都可以删掉,留下新的文件。
由此可见,当发生合并时需要对数据进行重整写入到新的存储文件中,新的存储文件需要进行压缩。
合并写入时会按照用户建表时指定的固定大小将数据切分成独立的压缩单元,在每个压缩单元内将数据进行行列混合编码压缩。
另外,在分布式数据库场景中,每个数据表都会有多个数据副本,主数据表和数据表副本需要错开合并时间,以交替提供服务保证用户业务访问的可用性及稳定性。
作为例子,数据库内部配置的统计信息模块可以获取归属表的访问数据,基于该访问数据可以快速确定数据表的访问需求,例如根据历史访问的操作类型及历史访问频度,数据的点查询操作越多、数据表访问次数越高,对于数据表的访问延时要求就更高,对于这些数据压缩所节省的存储资源无法弥补多出来的计算资源开销,需要使用压缩率较低的压缩编码规则,从而保证用户的访问速度;而对于数据的点查询操作越少、数据表访问次数越低,用户不会有较多的查询并且对访问延时要求较低,则可以使用压缩率较高的压缩规则。
数据表的合并过程中需要对大量的数据单元进行压缩,同时维护一个包含有当前最佳压缩编码规则的推荐记录,每次对待压缩对象选择好压缩编码规则压缩后,会将压缩编码规则的压缩情况更新到推荐库中,始终保持推荐记录中维护有当前状态下最新的压缩编码规则。
数据表对每个待压缩数据单元在压缩前,接受两个输入信息:数据表的访问需求信息和最新的推荐记录。
当推荐记录为空或者推荐记录中的压缩编码规则置信度没有达到指定阈值时,启动常规编码压缩流程检测待压缩数据单元,利用常规编码压缩流程对每列数据进行数据特征分析,并基于不同压缩编码规则的预估压缩率进行压缩率排序,最后基于数据表的访问需求信息,在多个不同预估压缩率的压缩编码规则中,选取符合数据表访问需求的压缩编码规则作为本次压缩所使用的压缩编码规则;其中,待压缩数据单元中可能涉及多列不同类型的数据,可以针对每列数据选取对应的压缩编码规则,也即是待压缩数据单元可以对应两个或以上的压缩编码规则。
当推荐记录中,压缩编码规则的置信度超过指定阈值时,可以直接使用推荐记录中的压缩编码规则作为本次待压缩数据单元使用的压缩编码规则;其中,待压缩数据单元中可能涉及多列不同类型的数据,可以针对每列数据选取对应的压缩编码规则;在一些例子中,可能有些数据列可以从推荐记录中选取到压缩编码规则,有些数据列无法选取到,则可以启动常规压缩编码流程进行检测后选取。
在选择好本次待压缩数据单元所需要的一个或多个压缩编码规则后,在该待压缩数据单元内将数据按列组织扫描,并开始使用所选择的压缩编码规则进行压缩,每个数据列压缩完成后,获取每个数据列的实际压缩率信息。
在数据单元完成整体压缩之后,基于每个数据列的实际压缩率信息更新推荐记录:
在所述待压缩对象所使用的压缩编码规则是推荐记录中记录的推荐压缩编码规则的情况下,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则增加所述推荐压缩编码规则的置信度,否则降低所述推荐压缩编码规则的置信度;
在所述待压缩对象所使用的压缩编码规则不同于推荐记录中记录的推荐压缩编码规则的情况下,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则将推荐记录中的推荐压缩编码规则替换为所述待压缩对象所使用的压缩编码规则。
针对数据表副本的压缩过程,可以直接利用相同数据的主数据表的压缩编码规则,对数据表副本进行数据压缩。
由上述实施例可见,本说明书实施例的数据压缩方法通过半监督学习的方式,充分利用了更多的历史上下文信息来即时调整推荐记录中的压缩编码规则。
对于主数据表,在合并过程中,处于压缩前期的待压缩数据单元需要启动常规压缩编码流程对各个压缩编码规则进行检测,从而可以训练得到最新的推荐记录,当置信度超过指定阈值后,后续的待压缩数据单元即可以直接利用推荐记录的压缩编码规则开始压缩,不再需要做复杂的规则检测工作;而对于数据表副本,由于数据和主数据表完全相同,可以直接使用主数据表最终的推荐编码规则进行压缩,可以完全省去所有的压缩编码规则的检测开销。
在本实施例中,对于每个待压缩数据单元对应的压缩编码规则的选择,一方面加入了对所属数据表的访问需求的调优,针对访问延时的需求来调整最终压缩编码规则的选择;另一方面,每个待压缩数据单元对应的压缩编码规则的选择并不只是基于本单元的数据来决策,而是通过更多压缩单元实际压缩率结果来综合考量最佳的压缩编码规则。
上述实施例针对LSM-Tree架构分布式关系数据库提出了数据压缩方法,结合数据库的行列混合压缩编码规则,实现了一种半监督的多级反馈机制,利用数据表的访问需求信息来修正调整每个数据单元的具体压缩编码规则选择,同时能够在压缩过程中不断学习合适的压缩规则以更新推荐记录,加速整个合并过程中的编码规则选择。对于数据表能够快速根据分布式数据库集群内其它数据副本、以及本机历史压缩数据知识大幅加速压缩编码规则的检测速度,同时根据数据的访问需求特点自适应选择合适的压缩编码规则,在提高压缩率的同时尽可能提升数据的访问速度。
尤其针对数据表副本,可以直接利用主数据表的推荐记录,从而可以跳过耗费计算资源的规则推荐和训练流程,总体上能够充分利用更多上下文信息来加速和优化压缩编码规则的检测。
与前述数据压缩方法的实施例相对应,本说明书还提供了数据压缩装置及其所应用的计算机设备的实施例。
本说明书数据压缩装置的实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书数据压缩装置所在计算机设备的一种硬件结构图,除了图3所示的处理器310、内存330、网络接口320、以及非易失性存储器340之外,实施例中装置331所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
如图4所示,图4是本说明书根据一示例性实施例示出的一种数据压缩装置的框图,所述装置包括:
获取模块41,用于:获取待压缩对象;
查找模块42,用于:查找推荐记录中是否存在满足压缩率条件的推荐压缩编码规则,所述推荐记录用于记录:历史压缩对象的压缩编码规则及对应的压缩率信息,所述历史压缩对象与所述待压缩对象类型相同;
第一压缩模块43,用于:若存在满足压缩率条件的推荐压缩编码规则,则利用所述推荐压缩编码规则对所述待压缩对象进行压缩;
第二压缩模块44,用于:若不存在满足压缩率条件的推荐压缩编码规则,则启动常规压缩编码流程获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用所述目标压缩编码规则对所述待压缩对象进行压缩。
可选的,所述待压缩对象包括:对待压缩数据切分得到的待压缩数据单元;所述历史压缩对象包括:对所述待压缩数据切分得到的其他历史压缩数据单元。
可选的,所述待压缩对象包括:对数据表的待压缩数据切分得到的待压缩数据单元;所述历史压缩对象包括:对应所述数据表的历史压缩数据单元。
可选的,所述待压缩对象包括:数据表中待压缩的一列数据;所述历史压缩对象包括:所述数据表中与所述待压缩的一列数据同一列的历史压缩数据。
可选的,所述待压缩对象包括:数据表副本;所述历史压缩对象包括:所述数据表副本对应的主数据表。
可选的,所述压缩率条件至少包括:推荐压缩编码规则的压缩率信息高于设定阈值。
可选的,所述装置还包括更新模块,用于:对所述待压缩对象进行压缩后,基于所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新。
可选的,所述更新模块,还用于:
获取所述待压缩对象的实际压缩率,至少基于所述实际压缩率和所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新。
可选的,所述获取模块还用于:获取所述待压缩对象的访问需求信息,所述访问需求信息与所述待压缩对象的解压效率相关;
所述压缩率条件包括:推荐压缩编码规则的压缩率信息与访问需求信息匹配。
可选的,所述第二压缩模块,还用于:
基于所述预估压缩率和所述访问需求信息选取目标压缩编码规则。
可选的,所述待压缩对象的访问需求通过获取所述待压缩对象和/或所述历史压缩对象的历史访问数据确定。
可选的,所述历史访问数据包括:历史访问频率。
可选的,所述更新模块,还用于:
基于所述实际压缩率、所述访问需求信息以及所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新。
可选的,所述压缩编码规则的压缩率信息包括:表征压缩编码规则的实际压缩率高低的置信度;
所述更新模块,还用于:
在所述待压缩对象所使用的压缩编码规则是推荐记录中记录的推荐压缩编码规则的情况下,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则增加所述推荐压缩编码规则的置信度,否则降低所述推荐压缩编码规则的置信度;
在所述待压缩对象所使用的压缩编码规则不同于推荐记录中记录的推荐压缩编码规则的情况下,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则将推荐记录中的推荐压缩编码规则替换为所述待压缩对象所使用的压缩编码规则。
相应的,本说明书还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现前述数据压缩方法的实施例。
上述数据压缩装置中各个模块的功能和作用的实现过程具体详见上述数据压缩方法中对应步骤的实现过程,在此不再赘述。
对于数据压缩装置实施例而言,由于其基本对应于数据压缩方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (16)
1.一种数据压缩方法,包括:
获取待压缩对象;
查找推荐记录中是否存在满足压缩率条件的推荐压缩编码规则,所述推荐记录用于记录:历史压缩对象的压缩编码规则及对应的压缩率信息,所述历史压缩对象与所述待压缩对象类型相同;
若存在,则利用所述推荐压缩编码规则对所述待压缩对象进行压缩;
若不存在,则启动常规压缩编码流程获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用所述目标压缩编码规则对所述待压缩对象进行压缩。
2.根据权利要求1所述的方法,所述待压缩对象包括:对待压缩数据切分得到的待压缩数据单元;所述历史压缩对象包括:对所述待压缩数据切分得到的其他历史压缩数据单元。
3.根据权利要求1所述的方法,所述待压缩对象包括:对数据表的待压缩数据切分得到的待压缩数据单元;所述历史压缩对象包括:对应所述数据表的历史压缩数据单元。
4.根据权利要求1所述的方法,所述待压缩对象包括:数据表中待压缩的一列数据;所述历史压缩对象包括:所述数据表中与所述待压缩的一列数据同一列的历史压缩数据。
5.根据权利要求1所述的方法,所述待压缩对象包括:数据表副本;所述历史压缩对象包括:所述数据表副本对应的主数据表。
6.根据权利要求1所述的方法,所述压缩率条件至少包括:推荐压缩编码规则的压缩率信息高于设定阈值。
7.根据权利要求1所述的方法,所述对所述待压缩对象进行压缩后,还包括:基于所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新。
8.根据权利要求7所述的方法,所述基于所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新,包括:
获取所述待压缩对象的实际压缩率,至少基于所述实际压缩率和所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新。
9.根据权利要求1或6或8所述的方法,所述方法还包括:获取所述待压缩对象的访问需求信息,所述访问需求信息与所述待压缩对象的解压效率相关;
所述压缩率条件包括:推荐压缩编码规则的压缩率信息与所述访问需求信息匹配。
10.根据权利要求9所述的方法,所述至少基于所述预估压缩率选取目标压缩编码规则,包括:
基于所述预估压缩率和所述访问需求信息选取目标压缩编码规则。
11.根据权利要求9所述的方法,所述待压缩对象的访问需求信息通过获取所述待压缩对象和/或所述历史压缩对象的历史访问数据而确定。
12.根据权利要求11所述的方法,所述历史访问数据包括:历史访问频率。
13.根据权利要求9所述的方法,所述至少基于所述实际压缩率和所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新,包括:
基于所述实际压缩率、所述访问需求信息以及所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新。
14.根据权利要求13所述的方法,所述压缩编码规则的压缩率信息包括:表征压缩编码规则的实际压缩率高低的置信度;
所述基于所述实际压缩率、所述访问需求信息以及所述待压缩对象所使用的压缩编码规则对所述推荐记录进行更新,包括:
在所述待压缩对象所使用的压缩编码规则是推荐记录中记录的推荐压缩编码规则的情况下,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则增加所述推荐压缩编码规则的置信度,否则降低所述推荐压缩编码规则的置信度;
在所述待压缩对象所使用的压缩编码规则不同于推荐记录中记录的推荐压缩编码规则的情况下,若所述待压缩对象的实际压缩率匹配所述访问需求信息,则将推荐记录中的推荐压缩编码规则替换为所述待压缩对象所使用的压缩编码规则。
15.一种数据压缩装置,所述装置包括:
获取模块,用于:获取待压缩对象;
查找模块,用于:查找推荐记录中是否存在满足压缩率条件的推荐压缩编码规则,所述推荐记录用于记录:历史压缩对象的压缩编码规则及对应的压缩率信息,所述历史压缩对象与所述待压缩对象类型相同;
第一压缩模块,用于:若存在满足压缩率条件的推荐压缩编码规则,则利用所述推荐压缩编码规则对所述待压缩对象进行压缩;
第二压缩模块,用于:若不存在满足压缩率条件的推荐压缩编码规则,则启动常规压缩编码流程获取多个压缩编码规则对所述待压缩对象的预估压缩率,至少基于所述预估压缩率选取目标压缩编码规则,利用所述目标压缩编码规则对所述待压缩对象进行压缩。
16.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至14任一所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010656511.4A CN111817722A (zh) | 2020-07-09 | 2020-07-09 | 数据压缩方法、装置及计算机设备 |
EP21179447.4A EP3937381A1 (en) | 2020-07-09 | 2021-06-15 | Data compression method and apparatus, and computer device |
US17/357,143 US11469774B2 (en) | 2020-07-09 | 2021-06-24 | Data compression method and apparatus, and computer device |
JP2021107589A JP2022016325A (ja) | 2020-07-09 | 2021-06-29 | データ圧縮方法および装置、ならびにコンピュータデバイス |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010656511.4A CN111817722A (zh) | 2020-07-09 | 2020-07-09 | 数据压缩方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111817722A true CN111817722A (zh) | 2020-10-23 |
Family
ID=72843235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010656511.4A Pending CN111817722A (zh) | 2020-07-09 | 2020-07-09 | 数据压缩方法、装置及计算机设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11469774B2 (zh) |
EP (1) | EP3937381A1 (zh) |
JP (1) | JP2022016325A (zh) |
CN (1) | CN111817722A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113542225A (zh) * | 2021-06-17 | 2021-10-22 | 深圳市合广测控技术有限公司 | 一种数据的压缩方法、装置、终端设备及存储介质 |
CN114697070A (zh) * | 2021-12-31 | 2022-07-01 | 成都思维世纪科技有限责任公司 | 一种针对http协议流量动态压缩存储的方法及系统 |
CN115934730A (zh) * | 2023-01-09 | 2023-04-07 | 阿里云计算有限公司 | 数据处理方法和装置、介质和计算机设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4304094A1 (en) * | 2022-07-05 | 2024-01-10 | Sap Se | Compression service using fpga compression |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102684705A (zh) * | 2012-05-30 | 2012-09-19 | 奇智软件(北京)有限公司 | 数据压缩方法及装置 |
CN102761540A (zh) * | 2012-05-30 | 2012-10-31 | 北京奇虎科技有限公司 | 数据压缩方法、装置、系统以及服务器 |
CN103326732A (zh) * | 2013-05-10 | 2013-09-25 | 华为技术有限公司 | 压缩数据的方法、解压数据的方法、编码器和解码器 |
CN105846825A (zh) * | 2015-01-30 | 2016-08-10 | 富士通株式会社 | 压缩方法、解压缩方法、压缩装置以及解压缩装置 |
CN108322220A (zh) * | 2018-02-08 | 2018-07-24 | 华为技术有限公司 | 编解码方法、装置及编解码设备 |
CN108427704A (zh) * | 2018-01-05 | 2018-08-21 | 平安科技(深圳)有限公司 | 压缩工具调用方法、装置及存储介质 |
CN109756230A (zh) * | 2019-01-03 | 2019-05-14 | Oppo广东移动通信有限公司 | 数据压缩存储方法、数据压缩方法、装置、设备及介质 |
CN110196836A (zh) * | 2019-03-29 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据存储方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101049699B1 (ko) * | 2009-07-17 | 2011-07-15 | (주)이스트소프트 | 데이터의 압축방법 |
US8670654B2 (en) * | 2010-10-29 | 2014-03-11 | JVC Kenwood Corporation | Image capturing device and image capturing method |
US9147374B2 (en) * | 2013-05-21 | 2015-09-29 | International Business Machines Corporation | Controlling real-time compression detection |
US9384204B2 (en) * | 2013-05-22 | 2016-07-05 | Amazon Technologies, Inc. | Efficient data compression and analysis as a service |
US10715177B2 (en) * | 2017-06-20 | 2020-07-14 | Samsung Electronics Co., Ltd. | Lossy compression drive |
CN109962710A (zh) * | 2017-12-14 | 2019-07-02 | 阿里巴巴集团控股有限公司 | 数据压缩方法、电子设备及计算机可读存储介质 |
JP7108784B2 (ja) * | 2018-08-21 | 2022-07-28 | 華為技術有限公司 | データ記憶方法、データ取得方法、及び機器 |
KR102416160B1 (ko) * | 2019-12-20 | 2022-07-05 | 라인플러스 주식회사 | 영상 저장 서비스 제공 방법, 컴퓨터 프로그램 및 컴퓨팅 장치 |
-
2020
- 2020-07-09 CN CN202010656511.4A patent/CN111817722A/zh active Pending
-
2021
- 2021-06-15 EP EP21179447.4A patent/EP3937381A1/en active Pending
- 2021-06-24 US US17/357,143 patent/US11469774B2/en active Active
- 2021-06-29 JP JP2021107589A patent/JP2022016325A/ja active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102684705A (zh) * | 2012-05-30 | 2012-09-19 | 奇智软件(北京)有限公司 | 数据压缩方法及装置 |
CN102761540A (zh) * | 2012-05-30 | 2012-10-31 | 北京奇虎科技有限公司 | 数据压缩方法、装置、系统以及服务器 |
CN103326732A (zh) * | 2013-05-10 | 2013-09-25 | 华为技术有限公司 | 压缩数据的方法、解压数据的方法、编码器和解码器 |
CN105846825A (zh) * | 2015-01-30 | 2016-08-10 | 富士通株式会社 | 压缩方法、解压缩方法、压缩装置以及解压缩装置 |
CN108427704A (zh) * | 2018-01-05 | 2018-08-21 | 平安科技(深圳)有限公司 | 压缩工具调用方法、装置及存储介质 |
CN108322220A (zh) * | 2018-02-08 | 2018-07-24 | 华为技术有限公司 | 编解码方法、装置及编解码设备 |
CN109756230A (zh) * | 2019-01-03 | 2019-05-14 | Oppo广东移动通信有限公司 | 数据压缩存储方法、数据压缩方法、装置、设备及介质 |
CN110196836A (zh) * | 2019-03-29 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据存储方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113542225A (zh) * | 2021-06-17 | 2021-10-22 | 深圳市合广测控技术有限公司 | 一种数据的压缩方法、装置、终端设备及存储介质 |
CN113542225B (zh) * | 2021-06-17 | 2023-08-22 | 深圳市合广测控技术有限公司 | 一种数据的压缩方法、装置、终端设备及存储介质 |
CN114697070A (zh) * | 2021-12-31 | 2022-07-01 | 成都思维世纪科技有限责任公司 | 一种针对http协议流量动态压缩存储的方法及系统 |
CN114697070B (zh) * | 2021-12-31 | 2024-04-02 | 成都思维世纪科技有限责任公司 | 一种针对http协议流量动态压缩存储的方法及系统 |
CN115934730A (zh) * | 2023-01-09 | 2023-04-07 | 阿里云计算有限公司 | 数据处理方法和装置、介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3937381A1 (en) | 2022-01-12 |
JP2022016325A (ja) | 2022-01-21 |
US11469774B2 (en) | 2022-10-11 |
US20220014210A1 (en) | 2022-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111817722A (zh) | 数据压缩方法、装置及计算机设备 | |
US9280579B2 (en) | Hierarchy of servers for query processing of column chunks in a distributed column chunk data store | |
US8799229B2 (en) | Searchable archive | |
US9710517B2 (en) | Data record compression with progressive and/or selective decomposition | |
US7587401B2 (en) | Methods and apparatus to compress datasets using proxies | |
US7447839B2 (en) | System for a distributed column chunk data store | |
US7454403B2 (en) | Method and mechanism of improving performance of database query language statements using data duplication information | |
US8214388B2 (en) | System and method for adding a storage server in a distributed column chunk data store | |
US7921131B2 (en) | Method using a hierarchy of servers for query processing of column chunks in a distributed column chunk data store | |
US8738572B2 (en) | System and method for storing data streams in a distributed environment | |
US7457935B2 (en) | Method for a distributed column chunk data store | |
US20070143248A1 (en) | Method using query processing servers for query processing of column chunks in a distributed column chunk data store | |
US20070061544A1 (en) | System and method for compression in a distributed column chunk data store | |
EP2924594A1 (en) | Data encoding and corresponding data structure in a column-store database | |
US9535940B2 (en) | Intra-block partitioning for database management | |
US7921087B2 (en) | Method for query processing of column chunks in a distributed column chunk data store | |
WO2008154029A1 (en) | Data classification and hierarchical clustering | |
US9262511B2 (en) | System and method for indexing streams containing unstructured text data | |
CN111611250A (zh) | 数据存储设备、数据查询方法、装置、服务器及存储介质 | |
US20240126762A1 (en) | Creating compressed data slabs that each include compressed data and compression information for storage in a database system | |
CN114610708A (zh) | 一种向量数据处理方法及装置、电子设备及存储介质 | |
US11221999B2 (en) | Database key compression | |
EP2881870B1 (en) | Data compression method | |
CN114896250B (zh) | 一种键值分离的键值存储引擎索引优化方法及装置 | |
CN111414527A (zh) | 相似项目的查询方法、装置及存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40040099 Country of ref document: HK |