CN102737132A - 基于数据库行列混合存储的多规则复合压缩方法 - Google Patents
基于数据库行列混合存储的多规则复合压缩方法 Download PDFInfo
- Publication number
- CN102737132A CN102737132A CN2012102093622A CN201210209362A CN102737132A CN 102737132 A CN102737132 A CN 102737132A CN 2012102093622 A CN2012102093622 A CN 2012102093622A CN 201210209362 A CN201210209362 A CN 201210209362A CN 102737132 A CN102737132 A CN 102737132A
- Authority
- CN
- China
- Prior art keywords
- rule
- data
- compression
- attribute column
- dictionary
- 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
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于数据库行列混合存储的多规则复合压缩方法。结合当前软硬件发展趋势以及数据库业界所面临的严重性能瓶颈,提出了将数据库内数据按元组行组织、按属性列压缩的混合存储压缩模式,既具备了列存储高压缩率的特性同时兼具行存储便于随机定位访问的优点。同时针对不同的数据分布特点提出了多种属性列内的规则编码方法,尤其针对数据库单表内各属性列间可能存在的关系提出了列间压缩规则,结合后端的通用压缩算法,能够高效的为上层数据库应用提供多级别的复合压缩功能,并保证在指定压缩率条件下最大化编解码速度。
Description
技术领域
本发明涉及数据存储技术、数据压缩技术、数据检索技术,特别是涉及一种基于数据库行列混合存储的多规则复合压缩方法。
背景技术
查询处理与数据存储是数据库的两个核心要素,两者相辅相成,共同保证数据库能够为用户提供高效的数据管理与检索服务。但随着信息革命的深入,现实应用无时不在产生海量的新数据,并且用户也更倾向于保留更久时间段的历史数据,数据存储容量的限制已经是刻不容缓需要面临的严重问题。另一方面,存储硬件的发展速度已经大大落后于其它计算机系统硬件,存储系统成为制约数据库整体性能的严重瓶颈。在这种形势下,存储系统面临的压力愈加沉重,为了能够支持海量数据存储同时保证存储系统不会拖慢数据库整体性能,用户往往只能通过堆叠存储系统硬件来实现,随之而来的是无法控制的成本与扩展性问题。
为此,数据库压缩技术应运而生,通过内嵌压缩技术将存储数据压缩,在大幅减少数据存储容量的同时也减少了查询处理时对存储系统的IO消耗,从而降低了整个存储系统的成本,并变相提高了其性能。由于引入压缩技术后数据库需要对数据进行压缩解压操作,这会需要消耗更多的处理器资源。但由于存储系统的发展远远跟不上遵循摩尔定律的处理器发展速度,整体系统中相对存储性能处理器资源相对过剩,因此对其的额外消耗并不会影响数据库性能。
由于数据库压缩能够显著缓解现有的存储性能瓶颈问题,业界如ORACLE、DB2等成熟商业数据库均已引入压缩技术。当前数据库压缩基本使用的都是基于字典的压缩方法,其基本思路是将数据中频繁出现的数据模式抽取出来作为符号表,并在实际存储中用较简短的引用符号代替以达到压缩的目的。这种基于字典的压缩方式对于大部分应用数据能够取得较好的压缩效果,但诸多现实应用越来越表现出具有应用自身特色的数据分布,在此情况下为了达到最佳的压缩效果,基于字典的压缩方法已经远远不够,需要数据库能够根据数据分布特点提供有针对性的压缩方式。
另一方面,当前数据库压缩底层的存储方式可分为行存储和列存储两种方式。行存储中数据按照元组行形式连续存放和读取,但由于数据表中每个元组行各属性基本无数据关联,因此无法取得良好的压缩效果。而列存储与此相对,它将数据表中每个属性列数据单独连续存放,能极大提高连续数据相似度以达到更高的压缩率,但是同时打破了数据元组行的组织方式又会导致数据库做传统行查询时效率极低。因此若要在数据存储与查询效率之间达到性能均衡,需要数据库提供一种能够结合列存储与行存储两者有点的底层数据组织方式。
针对以上问题,本发明在数据库中提供一种基于行列混合存储的多规则复合压缩方法,对于用户应用数据按行组织,按列压缩,同时能够根据数据分布特点自适应选择合适编码规则进行压缩,从而保证更高压缩率。
发明内容
本发明的目的在于提供一种基于数据库行列混合存储的多规则复合压缩方法。
本发明解决其技术问题采用的技术方案是:
1、一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于采用以下步骤实现::
1)接收用户导入数据,并将所有数据按照用户表属性模式重组分割为多个属性列;
2)对当前数据包内每个属性列数据利用字典规则压缩方法构建字典结构及权重表;
3)针对每个属性列利用构建好的字典和权重信息预估该列使用各种列内压缩规则编码后的大小,根据对比为每个属性列选取空间占用最小的压缩规则;
4)根据各个属性列的字典信息执行列间压缩规则发现步骤,发现合适规则后将预估编码后大小与对应列的列内压缩规则比较,选取空间最优方案;
5)根据最优压缩规则选择方案对数据包内每个属性列数掘进行规则压缩编码;
6)根据目标要求压缩级别,利用通用压缩方法对规则编码后的列数据进行复合压缩,达到预期压缩率后即完成该数据包压缩。
2、根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:步骤1)中需要使用压缩缓冲区缓冲外部导入数据,采用行列混合的方式存储导入数据,每当缓冲区接收一定数量行数据即作为一个整体独立的数据包,然后在数据包内结合数据库对应表的模式定义将数据按属性列模式抽取分割并按列存放。
3、根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:步骤2)使用字典编码的目的是为数据包内各列数据分别建立一个与压缩相关的统计信息以供后续规则选择,字典编码与数据导入及属性列分割过程紧密结合实现对数据的动态编码,当压缩缓冲区接收完一个独立数据包的同时其内部数据也将整体以字典编码结构方式存放,方法的具体实施包含以下内容:
1)为数据包内每个属性列上的字典编码建立辅助数据结构并进行相关内容初始化,字典表采用静态哈希结构,初始设置条目数为数据包行数的两倍以保证较少的冲突率;
2)当新数据元组导入到压缩缓冲区后,将该数据行中每个属性元素分配到对应属性列的字典编码结构中,且获取每一个元素的属性值和长度,以此累积记录每个属性列在不使用压缩规则的情况下的原始数据大小;
3)每个属性列对于新加入的属性元素根据其属性值计算针对字典表的哈希值,然后通过哈希索引找到该属性值在字典表中所对应条目项并更新条目项对应的权重值。如果由于哈希索引的原因发生冲突,条目项已经为其它属性值元素所占据,则采用平方探测法继续寻找下一个对应的条目项,并重复之前的判断和操作。在为属性元素找到对应字典表条目后,压缩缓冲区即可将属性值替换为其对应字典表条目项的编号存储在当前属性列的引用表中;
4)在字典表维护过程中,每插入一定数量属性元素过后,需要对当前字典编码总体大小进行评估。首先得到当前属性列所有属性值在无压缩情况的下的原始大小,同时根据字典表所有存在条目项以及引用表大小预估经过字典编码后的存储大小;
5)当压缩缓冲区接收数据元组总数达到数据包行数上限后,每个属性列字典编码结构也对应建立完成。此时需要将每个属性列的字典表使用针对该属性数据类型的快速排序算法将字典表所有存在条目项进行升序排序,并重新填入字典表中,同时同步更新属性列对应的引用表;
4、根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:步骤3)针对每个属性列在之前建立的字典编码结构上,利用基本的字典统计信息进行全面的列内压缩规则评估,具体实施过程包含以下内容:
1)对属性列进行常量编码规则评估,扫描整个字典表寻找权重最大的条目项做为最有可能的常量默认值,同时根据该默认值的权重以及数据包总体行数可估算出异常表的条目数,同时结合属性占用长度可预估出常量编码压缩后大小;
2)对属性列进行游程编码规则评估,扫描属性列上与字典表对应的引用表,在顺序遍历的过程中对连续出现的项进行去重得到游程编码对应的条目项,并最终结合每个条目对应的字典条目项可得到最后游程编码的总体压缩后大小;
3)对属性列进行序列编码规则评估,按行顺序遍历属性列,以首行属性值作为基准计算各行相对差值,然后通过合计各个不同差值的字节长度即可得到最后序列编码规则的压缩大小;
5、根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:步骤4)提出的列间压缩规需要在列内压缩规则基础上进一步执行深度压缩,通过发掘属性列间的数据联系达到更大粒度上的压缩,具体实施方式如下:
1)将所有属性列按照各自字典表的条目项综述进行升序排序,然后顺序遍历按照冒泡排序方式对属性列进行两两规则比较判断,顺序遍历过程中依次为属性列建立列间规则发掘辅助结构;
2)进行列间相等规则编码条件判断,以当前属性列作为被压缩列并依次遍历后续所有属性列,判断是否可能存在与当前列存在相等规则的列,并预估相等规则压缩后大小;
3)进行列间推导规则编码条件判断,当前属性列作为推导列并依次遍历后续所有属性列,判断是否可能存在能够被当前列使用相等规则的目标列,并预估目标列使用推导规则压缩后大小;
6、根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:在完成对所有属性列的列内和列间规则发现和编码评估后,步骤5)将对当前数据包内所有属性列逐个进行遍历,并选取预估压缩率最高的压缩规则对当前属性列进行规则编码。
7、根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:步骤6)继续使用后端的通用压缩算法在当前压缩缓冲区已有的规则编码压缩数据基础上进行深度的复合压缩,这样可以进一步降低整体数据的存储空间,并能够按照用户设计压缩级别控制最后数据的压缩率,在保证压缩达到数据库实际应用的需求下,将最终编解码所需时间和处理器资源降到最低。具体实施步骤如下:
1)将所有规则编码后的属性列数据按照编码后大小降序排列;
2)对每个属性列使用LZOP方法进行压缩,如果压缩后空间增大则继续使用规则编码存储,如果总体压缩率达到上层应用设置压缩级别要求,则停止压缩流程;
3)对每个属性列尝试改用LZMA方法进行压缩,一旦总体压缩率达到压缩级别设置要求,则停止压缩流程;
4)如果剩余属性列大小总和小于之前属性列经过压缩后大小和的十分之一,则停止压缩流程。
附图说明
图1是本发明实施步骤流程图。
图2是多规则复合压缩方法工作原理示意图。
具体实施方式
现结合具体实施和示例对本发明的技术方案作进一步说明。
1、如图1与图2所示,本发明具体实施过程和工作原理如下:
1)接收用户导入数据,并将所有数据按照用户表属性模式重组分割为多个属性列。
2)对当前数据包内每个属性列数据利用字典规则压缩方法构建字典结构及权重表。
3)针对每个属性列利用构建好的字典和权重信息预估该列使用各种列内压缩规则编码后的大小,根据对比为每个属性列选取空间占用最小的压缩规则。
4)根据各个属性列的字典信息进行列间压缩规则发现,发现合适规则后将预估编码后大小与对应列的列内压缩规则比较,选取空间最优方案。
5)根据最优压缩规则选择方案对数据包内每个属性列数据进行规则压缩编码。
6)根据目标要求压缩级别,利用通用压缩方法对规则编码后的列数据进行复合压缩,达到预期压缩率后即完成该数据包压缩。
步骤1)中需要使用压缩缓冲区缓冲外部导入数据,采用行列混合的方式存储导入数据,当行数达到用于指定阈值时,将当前接收的所有数据作为独立数据包,即可由外部事先指定行数阈值N,每当缓冲区接收N行数据即作为一个整体独立的数据包,然后在数据包内结合数据库对应表的模式定义将数据按属性列模式抽取分割并按列存放。这样将在数据包内将数据按列聚集存放相对于纯行存储形式能够增大数据的相似性密度,同时当数据库上层需要按照元组行形式访问数据时,只需要存取该数据包即可快速获得所需元组行的所有属性,避免了类似纯列存储方式需要重新遍历所有列找到元组对应属性。
步骤2)使用字典编码的目的是为数据包内各列数据分别建立一个与压缩相关的统计信息以供后续规则选择,并同时根据字典表将数据替换为针对字典的引用表存储,字典编码与数据导入及属性列分割过程紧密结合实现对数据的动态编码,当压缩缓冲区接收完一个独立数据包的同时其内部数据也将整体以字典编码结构方式存放,方法的具体实施包含以下内容:
1)为数据包内每个属性列上的字典编码建立辅助数据结构并进行相关内容初始化,字典表采用静态哈希结构,初始设置条目数为数据包行数的两倍以保证较少的冲突率。
2)当新数据元组导入到压缩缓冲区后,将该数据行中每个属性元素分配到对应属性列的字典编码结构中,且获取每一个元素的属性值和长度,以此累积记录每个属性列在不使用压缩规则的情况下的原始数据大小
3)每个属性列对于新加入的属性元素根据其属性值计算针对字典表的哈希值,然后通过哈希索引找到该属性值在字典表中所对应条目项。此时如果条目已存在则将该条目对应在数据包内的权重值加一;如果不存在则原地新增一条对应该属性值的条目项,同时设置对应权重值为一;而如果由于哈希索引的原因发生冲突,条目项已经为其它属性值元素所占据,则采用平方探测法,将该属性值对应HASH值取平方继续寻找下一个对应的条目项,并重复之前的判断和操作。在为属性元素找到对应字典表条目后,压缩缓冲区即可将属性值替换为其对应字典表条目项的编号存储在当前属性列的引用表中。
4)在字典表维护过程中,每插入一定数量属性元素过后,需要对当前字典编码总体大小进行评估。首先得到当前属性列所有属性值在无压缩情况的下的原始大小,同时根据字典表所有存在条目项以及引用表大小预估经过字典编码后的存储大小。如果估算经过字典编码压缩后大小已经超过原始数据在无压缩的大小,则放弃字典编码直接存放属性元素的原始数据内容。
5)当压缩缓冲区接收数据元组总数达到数据包行数上限后,每个属性列字典编码结构也对应建立完成。此时需要将每个属性列的字典表使用针对该属性数据类型的快速排序算法将字典表所有存在条目项进行升序排序,并重新填入字典表中。排序过程中需要记录排序前后的条目项编号对应关系表,在字典表排序完成后,根据条目项编号对应表将该属性列的引用表重新更新赋值,改为最新的字典条目对应关系。
步骤3)针对每个属性列在之前建立的字典编码结构上,利用基本的字典统计信息进行全面的列内压缩规则评估,具体实施过程包含以下内容:
1)对属性列进行常量编码规则评估,常量编码主要针对出现大量同一重复值的属性列,编码结构由默认值与异常表构成。其中默认值存放该属性列中大量重复出现的常量值,而其它不等于该常量值的属性元素则在异常表中存放其对应行号和属性值。进行常量规则编码大小评估前,首先需要扫描整个字典表寻找权重最大的条目项做为最有可能的常量默认值,同时根据该默认值的权重以及数据包总体行数可估算出异常表的条目数,同时结合属性占用长度可预估出常量编码压缩后大小。
2)对属性列进行游程编码规则评估,游程编码主要针对数据分布聚集较好同时呈现出众多相同数据连续出现的特征,将这种分布的属性列转化为属性值加起始位置的表达方式,这样多个连续的属性值可以改由一条记录替代,大大降低存储空间开销。游程编码的大小评估需要扫描属性列上与字典表对应的引用表,在顺序遍历的过程中对连续出现的项进行去重得到游程编码对应的条目项,并最终结合每个条目对应的字典条目项可得到最后游程编码的总体压缩后大小。
3)对属性列进行序列编码规则评估,序列规则主要针对数据库中可能出现的有序列特别是主键属性,当属性值随行号的递增表现出有序性且属性值自身占用空间较大时,可改为存储该属性列的基准值以及每个属性值与该基准值的差值,另外考虑到数据的有序性,通常一个属性列上的大部分差值可以继续使用字典规则编码甚至常量规则编码。通过合计各个不同差值的字节长度即可得到最后序列编码规则的压缩大小。
步骤4)提出的列间压缩规则是在列内压缩规则基础上进一步执行的深度压缩方案,通过发掘属性列间的数据联系达到更大粒度上的压缩,具体实施方式如下:
1)将所有属性列按照各自字典表的条目项综述进行升序排序,然后顺序遍历按照冒泡排序方式对属性列进行两两规则比较判断,顺序遍历过程中依次为属性列建立列间规则发掘辅助结构,辅助结构也即通过遍历每个属性列的字典项引用表,根据引用表中每个条目的行号和对应的字典项重构出字典表各个条目项所出现为位置集合表。
2)进行列间相等规则编码条件判断,对数据包内所有属性列顺序遍历的过程中,对当前列建立完规则发掘辅助结构后,即开始以当前属性列作为被压缩列并依次遍历后续所有属性列,判断是否可能存在与当前列存在相等规则的列,相等规则的判断主要包括以下步骤:a)按照权重大小升序扫描当前列的字典表,对每个字典项根据之前建立的辅助结构找到该条目项对应的所有行号位置;b)遍历目标列上所有对应行号位置上的引用表,并找出对应的字典条目项;c)对于每个字典项,统计与目标列相同行号位置上的不相等条目数,并累加到全局异常计数上;d)根据异常计数评估经过相等规则压缩后属性列大小,如果超过当前属性列经过列内规则编码压缩大小的一半,则放弃当前列与目标列的相等规则发掘。
3)进行列间推导规则编码条件判断,发掘两个属性列间是否存在属性元素值一一对应的关系,如果存在则目标属性列可以仅存储基于基准列的属性值对照推导表即可。推导规则的判断主要包括以下步骤:a)按照权重大小降序扫描当前列的字典表,并根据辅助结构字典条目项位置表找到每个字典条目项对应的所有行号位置;b)取得目标列的所有对应行号位置上的属性值,从中选取出现次数最多的属性值作为当前列与目标列在该字典条目项上的推导关系,并将目标列上的其它属性值出现位置累加到全局异常计数上;c)根据异常计数评估经过推导规则压缩后属性列大小,如果超过属性列经过列内规则编码压缩后大小的一半,则放弃当前列与目标列的推导规则发掘。
在完成对所有属性列的列内和列间规则发现和编码评估后,步骤5)将对当前数据包内所有属性列逐个进行遍历,如果当前属性列存在被其它属性列通过列间规则进行压缩的情况下,则直接将当前列按照列间压缩规则进行编码。否则需要检查之前对该属性列所评估的四种列内压缩规则编码的评估大小,并从中选取预估压缩率最高的列内压缩规则对当前属性列进行规则编码。所有属性列经过规则编码后,在压缩数据头部增加规则编码基本描述信息后即可连续存放与当前压缩缓冲区内。
步骤6)继续使用后端的通用压缩算法在当前压缩缓冲区已有的规则编码压缩数据基础上进行深度的复合压缩,这样可以进一步降低整体数据的存储空间,并能够按照用户设计压缩级别控制最后数据的压缩率,在保证压编达到数据库实际应用的需求下,将最终编解码所需时间和处理器资源降到最低。具体实施步骤如下:
1)将所有规则编码后的属性列数据按照编码后大小降序排列。
2)对每个属性列使用LZOP方法进行压缩,如果压缩后空间增大则继续使用规则编码存储,如果总体压缩率达到上层应用设置压缩级别要求,则停止压缩流程。
3)对每个属性列尝试改用LZMA方法进行压缩,一旦总体压缩率达到压缩级别设置要求,则停止压缩流程。
4)如果剩余属性列大小总和小于之前属性列经过压缩后大小和的十分之一,则停止压缩流程。
Claims (7)
1.一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于采用以下步骤实现::
1)接收用户导入数据,并将所有数据按照用户表属性模式重组分割为多个属性列;
2)对当前数据包内每个属性列数据利用字典规则压缩方法构建字典结构及权重表;
3)针对每个属性列利用构建好的字典和权重信息预估该列使用各种列内压缩规则编码后的大小,根据对比为每个属性列选取空间占用最小的压缩规则;
4)根据各个属性列的字典信息进行列间压缩规则发现,发现合适规则后将预估编码后大小与对应列的列内压缩规则比较,选取空间最优方案;
5)根据最优压缩规则选择方案对数据包内每个属性列数据进行规则压缩编码;
6)根据目标要求压缩级别,利用通用压缩方法对规则编码后的列数据进行复合压缩,达到预期压缩率后即完成该数据包压缩。
2.根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:步骤1)中需要使用压缩缓冲区缓冲外部导入数据,采用行列混合的方式存储导入数据,每当缓冲区接收一定数量行数据即作为一个整体独立的数据包,然后在数据包内结合数据库对应表的模式定义将数据按属性列模式抽取分割并按列存放。
3.根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:步骤2)使用字典编码的目的是为数据包内各列数据分别建立一个与压缩相关的统计信息以供后续规则选择,字典编码与数据导入及属性列分割过程紧密结合实现对数据的动态编码,当压缩缓冲区接收完一个独立数据包的同时其内部数据也将整体以字典编码结构方式存放,方法的具体实施包含以下内容:
1)为数据包内每个属性列上的字典编码建立辅助数据结构并进行相关内容初始化,字典表采用静态哈希结构,初始设置条目数为数据包行数的两倍以保证较少的冲突率;
2)当新数据元组导入到压缩缓冲区后,将该数据行中每个属性元素分配到对应属性列的字典编码结构中,且获取每一个元素的属性值和长度,以此累积记录每个属性列在不使用压缩规则的情况下的原始数据大小;
3)每个属性列对于新加入的属性元素根据其属性值计算针对字典表的哈希值,然后通过哈希索引找到该属性值在字典表中所对应条目项并更新条目项对应的权重值。如果由于哈希索引的原因发生冲突,条目项已经为其它属性值元素所占据,则采用平方探测法继续寻找下一个对应的条目项,并重复之前的判断和操作。在为属性元素找到对应字典表条目后,压缩缓冲区即可将属性值替换为其对应字典表条目项的编号存储在当前属性列的引用表中;
4)在字典表维护过程中,每插入一定数量属性元素过后,需要对当前字典编码总体大小进行评估。首先得到当前属性列所有属性值在无压缩情况的下的原始大小,同时根据字典表所有存在条目项以及引用表大小预估经过字典编码后的存储大小;
5)当压缩缓冲区接收数据元组总数达到数据包行数上限后,每个属性列字典编码结构也对应建立完成。此时需要将每个属性列的字典表使用针对该属性数据类型的快速排序算法将字典表所有存在条目项进行升序排序,并重新填入字典表中,同时同步更新属性列对座的引用表。
4.根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:步骤3)针对每个属性列在之前建立的字典编码结构上,利用基本的字典统计信息进行全面的列内压缩规则评估,具体实施过程包含以下内容:
1)对属性列进行常量编码规则评估,扫描整个字典表寻找权重最大的条目项做为最有可能的常量默认值,同时根据该默认值的权重以及数据包总体行数可估算出异常表的条目数,同时结合属性占用长度可预估出常量编码压缩后大小;
2)对属性列进行游程编码规则评估,扫描属性列上与字典表对座的引用表,在顺序遍历的过程中对连续出现的项进行去重得到游程编码对应的条目项,并最终结合每个条目对应的字典条目项可得到最后游程编码的总体压缩后大小;
3)对属性列进行序列编码规则评估,按行顺序遍历属性列,以首行属性值作为基准计算各行相对差值,然后通过合计各个不同差值的字节长度即可得到最后序列编码规则的压缩大小。
5.根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:步骤4)提出的列间压缩规需要在列内压缩规则基础上进一步执行深度压缩,通过发掘属性列间的数据联系达到更大粒度上的压缩,具体实施方式如下:
1)将所有属性列按照各自字典表的条目项综述进行升序排序,然后顺序遍历按照冒泡排序方式对属性列进行两两规则比较判断,顺序遍历过程中依次为属性列建立列间规则发掘辅助结构;
2)进行列间相等规则编码条件判断,以当前属性列作为被压缩列并依次遍历后续所有属性列,判断是否可能存在与当前列存在相等规则的列,并预估相等规则压缩后大小;
3)进行列间推导规则编码条件判断,当前属性列作为推导列并依次遍历后续所有属性列,判断是否可能存在能够被当前列使用相等规则的目标列,并预估目标列使用推导规则压缩后大小。
6.根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:在完成对所有属性列的列内和列间规则发现和编码评估后,步骤5)将对当前数据包内所有属性列逐个进行遍历,并选取预估压缩率最高的压缩规则对当前属性列进行规则编码。
7.根据权利要求1所述的一种基于数据库行列混合存储的多规则复合压缩方法,其特征在于:步骤6)继续使用后端的通用压缩算法在当前压缩缓冲区已有的规则编码压缩数据基础上进行深度的复合压缩,这样可以进一步降低整体数据的存储空间,并能够按照用户设计压缩级别控制最后数据的压缩率,在保证压缩达到数据库实际应用的需求下,将最终编解码所需时间和处理器资源降到最低。具体实施步骤如下:
1)将所有规则编码后的属性列数据按照编码后大小降序排列;
2)对每个属性列使用LZOP方法进行压缩,如果压缩后空间增大则继续使用规则编码存储,如果总体压缩率达到上层应用设置压缩级别要求,则停止压缩流程;
3)对每个属性列尝试改用LZMA方法进行压缩,一旦总体压缩率达到压缩级别设置要求,则停止压缩流程;
4)如果剩余属性列大小总和小于之前属性列经过压缩后大小和的十分之一,则停止压缩流程。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2012102093622A CN102737132A (zh) | 2012-06-25 | 2012-06-25 | 基于数据库行列混合存储的多规则复合压缩方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2012102093622A CN102737132A (zh) | 2012-06-25 | 2012-06-25 | 基于数据库行列混合存储的多规则复合压缩方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN102737132A true CN102737132A (zh) | 2012-10-17 |
Family
ID=46992633
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN2012102093622A Pending CN102737132A (zh) | 2012-06-25 | 2012-06-25 | 基于数据库行列混合存储的多规则复合压缩方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN102737132A (zh) |
Cited By (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103473276A (zh) * | 2013-08-26 | 2013-12-25 | 广东电网公司电力调度控制中心 | 超大型数据存储方法、分布式数据库系统及其检索方法 |
| CN104424287A (zh) * | 2013-08-30 | 2015-03-18 | 深圳市腾讯计算机系统有限公司 | 数据查询方法和装置 |
| CN104462334A (zh) * | 2014-12-03 | 2015-03-25 | 天津南大通用数据技术股份有限公司 | 一种列存数据库的数据压缩方法及装置 |
| CN104572893A (zh) * | 2014-12-24 | 2015-04-29 | 天津南大通用数据技术股份有限公司 | 一种数据库中的数据混合存储方法 |
| CN104657426A (zh) * | 2015-01-22 | 2015-05-27 | 江苏瑞中数据股份有限公司 | 一种基于统一视图的行列混合数据存储模型的建立方法 |
| CN104753539A (zh) * | 2013-12-26 | 2015-07-01 | 中国移动通信集团公司 | 一种数据压缩方法及装置 |
| CN105306063A (zh) * | 2015-10-12 | 2016-02-03 | 浙江大学 | 一种记录型数据存储空间的优化与恢复方法 |
| CN105589969A (zh) * | 2015-12-23 | 2016-05-18 | 浙江大华技术股份有限公司 | 一种数据处理方法及装置 |
| CN106033377A (zh) * | 2015-03-13 | 2016-10-19 | 中国移动通信集团浙江有限公司 | 数据容灾方法及容灾服务器 |
| CN106528896A (zh) * | 2016-12-29 | 2017-03-22 | 网易(杭州)网络有限公司 | 一种数据库优化方法和装置 |
| CN106557494A (zh) * | 2015-09-25 | 2017-04-05 | 北京国双科技有限公司 | 更新列存储表的方法及装置 |
| CN107682016A (zh) * | 2017-09-26 | 2018-02-09 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
| CN107851063A (zh) * | 2015-07-28 | 2018-03-27 | 华为技术有限公司 | 智能编码存储器系统的动态编码算法 |
| CN109101516A (zh) * | 2017-11-30 | 2018-12-28 | 新华三大数据技术有限公司 | 一种数据查询方法和服务器 |
| WO2019114753A1 (zh) * | 2017-12-12 | 2019-06-20 | 清华大学 | 一种自适应编码长度的时序数据存储的方法和装置 |
| CN109995373A (zh) * | 2018-01-03 | 2019-07-09 | 上海艾拉比智能科技有限公司 | 一种整数数组的混合打包压缩方法 |
| CN110147202A (zh) * | 2019-05-15 | 2019-08-20 | 杭州云象网络技术有限公司 | 一种减少区块链智能合约代码存储体积的方法 |
| CN110268397A (zh) * | 2016-12-30 | 2019-09-20 | 日彩电子科技(深圳)有限公司 | 应用于数据仓库系统的高效优化数据布局方法 |
| CN111817722A (zh) * | 2020-07-09 | 2020-10-23 | 北京奥星贝斯科技有限公司 | 数据压缩方法、装置及计算机设备 |
| CN113688127A (zh) * | 2020-05-19 | 2021-11-23 | Sap欧洲公司 | 数据压缩技术 |
| CN114782148A (zh) * | 2022-06-16 | 2022-07-22 | 青岛农村商业银行股份有限公司 | 农产品收购管理平台及其业务数据压缩方法 |
| CN116185971A (zh) * | 2023-04-27 | 2023-05-30 | 济宁市质量计量检验检测研究院(济宁半导体及显示产品质量监督检验中心、济宁市纤维质量监测中心) | 一种电子压力称重数据的智能处理系统 |
| WO2025050943A1 (zh) * | 2023-09-06 | 2025-03-13 | 北京奥星贝斯科技有限公司 | 列数据压缩 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1770150A (zh) * | 2004-11-03 | 2006-05-10 | 北京神舟航天软件技术有限公司 | 数据库压缩及解压缩方法 |
| CN102112962A (zh) * | 2008-07-31 | 2011-06-29 | 微软公司 | 用于大规模数据存储的高效的基于列的数据编码 |
-
2012
- 2012-06-25 CN CN2012102093622A patent/CN102737132A/zh active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1770150A (zh) * | 2004-11-03 | 2006-05-10 | 北京神舟航天软件技术有限公司 | 数据库压缩及解压缩方法 |
| CN102112962A (zh) * | 2008-07-31 | 2011-06-29 | 微软公司 | 用于大规模数据存储的高效的基于列的数据编码 |
Cited By (37)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103473276B (zh) * | 2013-08-26 | 2017-08-25 | 广东电网公司电力调度控制中心 | 超大型数据存储方法、分布式数据库系统及其检索方法 |
| CN103473276A (zh) * | 2013-08-26 | 2013-12-25 | 广东电网公司电力调度控制中心 | 超大型数据存储方法、分布式数据库系统及其检索方法 |
| CN104424287A (zh) * | 2013-08-30 | 2015-03-18 | 深圳市腾讯计算机系统有限公司 | 数据查询方法和装置 |
| CN104424287B (zh) * | 2013-08-30 | 2019-06-07 | 深圳市腾讯计算机系统有限公司 | 数据查询方法和装置 |
| CN104753539A (zh) * | 2013-12-26 | 2015-07-01 | 中国移动通信集团公司 | 一种数据压缩方法及装置 |
| CN104462334A (zh) * | 2014-12-03 | 2015-03-25 | 天津南大通用数据技术股份有限公司 | 一种列存数据库的数据压缩方法及装置 |
| CN104572893A (zh) * | 2014-12-24 | 2015-04-29 | 天津南大通用数据技术股份有限公司 | 一种数据库中的数据混合存储方法 |
| CN104572893B (zh) * | 2014-12-24 | 2018-02-27 | 天津南大通用数据技术股份有限公司 | 一种数据库中的数据混合存储方法 |
| CN104657426A (zh) * | 2015-01-22 | 2015-05-27 | 江苏瑞中数据股份有限公司 | 一种基于统一视图的行列混合数据存储模型的建立方法 |
| CN104657426B (zh) * | 2015-01-22 | 2018-07-03 | 江苏瑞中数据股份有限公司 | 一种基于统一视图的行列混合数据存储模型的建立方法 |
| CN106033377A (zh) * | 2015-03-13 | 2016-10-19 | 中国移动通信集团浙江有限公司 | 数据容灾方法及容灾服务器 |
| CN106033377B (zh) * | 2015-03-13 | 2019-06-28 | 中国移动通信集团浙江有限公司 | 数据容灾方法及容灾服务器 |
| CN107851063B (zh) * | 2015-07-28 | 2020-12-25 | 华为技术有限公司 | 智能编码存储器系统的动态编码算法 |
| CN107851063A (zh) * | 2015-07-28 | 2018-03-27 | 华为技术有限公司 | 智能编码存储器系统的动态编码算法 |
| CN106557494A (zh) * | 2015-09-25 | 2017-04-05 | 北京国双科技有限公司 | 更新列存储表的方法及装置 |
| CN106557494B (zh) * | 2015-09-25 | 2019-09-20 | 北京国双科技有限公司 | 更新列存储表的方法及装置 |
| CN105306063A (zh) * | 2015-10-12 | 2016-02-03 | 浙江大学 | 一种记录型数据存储空间的优化与恢复方法 |
| CN105306063B (zh) * | 2015-10-12 | 2018-11-02 | 浙江大学 | 一种记录型数据存储空间的优化与恢复方法 |
| CN105589969A (zh) * | 2015-12-23 | 2016-05-18 | 浙江大华技术股份有限公司 | 一种数据处理方法及装置 |
| CN106528896A (zh) * | 2016-12-29 | 2017-03-22 | 网易(杭州)网络有限公司 | 一种数据库优化方法和装置 |
| CN106528896B (zh) * | 2016-12-29 | 2019-05-14 | 网易(杭州)网络有限公司 | 一种数据库优化方法和装置 |
| CN110268397B (zh) * | 2016-12-30 | 2023-06-13 | 日彩电子科技(深圳)有限公司 | 应用于数据仓库系统的高效优化数据布局方法 |
| CN110268397A (zh) * | 2016-12-30 | 2019-09-20 | 日彩电子科技(深圳)有限公司 | 应用于数据仓库系统的高效优化数据布局方法 |
| CN107682016A (zh) * | 2017-09-26 | 2018-02-09 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
| US11269881B2 (en) | 2017-11-30 | 2022-03-08 | New H3C Big Data Technologies Co., Ltd. | Data query |
| CN109101516A (zh) * | 2017-11-30 | 2018-12-28 | 新华三大数据技术有限公司 | 一种数据查询方法和服务器 |
| US11101818B2 (en) | 2017-12-12 | 2021-08-24 | Tsinghua University | Method and device for storing time series data with adaptive length encoding |
| WO2019114753A1 (zh) * | 2017-12-12 | 2019-06-20 | 清华大学 | 一种自适应编码长度的时序数据存储的方法和装置 |
| CN109995373A (zh) * | 2018-01-03 | 2019-07-09 | 上海艾拉比智能科技有限公司 | 一种整数数组的混合打包压缩方法 |
| CN109995373B (zh) * | 2018-01-03 | 2023-08-15 | 上海艾拉比智能科技有限公司 | 一种整数数组的混合打包压缩方法 |
| CN110147202A (zh) * | 2019-05-15 | 2019-08-20 | 杭州云象网络技术有限公司 | 一种减少区块链智能合约代码存储体积的方法 |
| CN113688127A (zh) * | 2020-05-19 | 2021-11-23 | Sap欧洲公司 | 数据压缩技术 |
| CN111817722A (zh) * | 2020-07-09 | 2020-10-23 | 北京奥星贝斯科技有限公司 | 数据压缩方法、装置及计算机设备 |
| CN114782148A (zh) * | 2022-06-16 | 2022-07-22 | 青岛农村商业银行股份有限公司 | 农产品收购管理平台及其业务数据压缩方法 |
| CN114782148B (zh) * | 2022-06-16 | 2022-09-02 | 青岛农村商业银行股份有限公司 | 农产品收购管理平台及其业务数据压缩方法 |
| CN116185971A (zh) * | 2023-04-27 | 2023-05-30 | 济宁市质量计量检验检测研究院(济宁半导体及显示产品质量监督检验中心、济宁市纤维质量监测中心) | 一种电子压力称重数据的智能处理系统 |
| WO2025050943A1 (zh) * | 2023-09-06 | 2025-03-13 | 北京奥星贝斯科技有限公司 | 列数据压缩 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102737132A (zh) | 基于数据库行列混合存储的多规则复合压缩方法 | |
| CN102419752B (zh) | 一种工业数据库报文存储方法 | |
| CN102663090B (zh) | 元数据查询方法和装置 | |
| CN101673307B (zh) | 空间数据索引方法及系统 | |
| CN105205146B (zh) | 一种计算微博用户影响力的方法 | |
| CN102609490B (zh) | 一种面向列存储dwms的b+树索引方法 | |
| CN106250523A (zh) | 一种分布式列存储系统索引的方法 | |
| CN102402617A (zh) | 一种利用分片及稀疏位图的易压缩数据库索引存储系统及其相应的构建、调度和查询处理方法 | |
| CN103345496A (zh) | 多媒体信息检索方法和系统 | |
| CN102737123B (zh) | 一种多维数据分布方法 | |
| Islambekov et al. | Unsupervised space–time clustering using persistent homology | |
| CN106991102A (zh) | 倒排索引中键值对的处理方法及处理系统 | |
| CN103020296A (zh) | 一种高精度多维计数布鲁姆过滤器及其大数据处理方法 | |
| CN110297952A (zh) | 一种基于网格索引的并行化高速铁路勘测数据检索方法 | |
| CN104199821B (zh) | 一种基于概要结构的流数据立方体构建方法 | |
| CN107330094A (zh) | 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法 | |
| CN101464995B (zh) | 基于空间拓扑的二维矢量空间数据数字水印方法 | |
| CN101692231B (zh) | 一种适合空间查询的遥感影像分块排序存储方法 | |
| CN102567213B (zh) | 相变存储器的写均衡方法 | |
| Gutiérrez et al. | cKd-tree: A Compact Kd-tree | |
| CN106407221B (zh) | 地址数据检索方法及装置 | |
| US20140067751A1 (en) | Compressed set representation for sets as measures in olap cubes | |
| US8533167B1 (en) | Compressed set representation for sets as measures in OLAP cubes | |
| CN104298475A (zh) | 一种数据存储的优化方法 | |
| US7577673B2 (en) | Organising data in a database |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| DD01 | Delivery of document by public notice |
Addressee: Tianjin Shenzhou General Data Co., Ltd. Document name: the First Notification of an Office Action |
|
| DD01 | Delivery of document by public notice |
Addressee: Tianjin Shenzhou General Data Co., Ltd. Document name: Notification that Application Deemed to be Withdrawn |
|
| C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
| WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121017 |