一种列存数据库的数据压缩方法及装置制造方法

文档序号:7527484阅读:182来源:国知局
一种列存数据库的数据压缩方法及装置制造方法
【专利摘要】本发明旨在提供一种在列存储数据库中自适应的智能压缩方法。包括,多种压缩算法构成的复合压缩引擎,对一列中的数据进行抽样分析特征,按照特征缩减压缩引擎中备选算法的范围,通过采样压缩的方式选定压缩算法,以及同一压缩方法的步长控制防止抽样异常造成整列压缩效果不佳。本发明可以在列存数据库中对存储数据进行有效的压缩,通过复合算法引擎适应不同的数据。而数据抽样以及采样可以有效的在相近算法中做出选择,避免了传统复合算法下追求压缩比而造成的过量计算,兼顾压缩速度与压缩比的综合结果。
【专利说明】一种列存数据库的数据压缩方法及装置

【技术领域】
[0001]本发明属于计算机技术应用领域,特别是涉及到一种列存数据库的数据压缩方法。

【背景技术】
[0002]压缩是数据库中一项很重要的技术,它不仅仅可以减少磁盘存储空间的占用,还可以很大程度的提高查询速度,特别是在早期存储设备I/o性能较差的时候。随着现代数据库技术的发展,特别是列存数据库出现后,压缩技术发挥了更大的作用。因为传统的行存数据库不同类型的数据混杂在一起,很难从中找出数据规律以实现压缩。为了达到理想的压缩比,通常要进行大量的计算。
[0003]列存数据库中各列的数据独立存储,因为同一列的数据类型相同,而且实际应用场景下的数据往往具有很强的局部性,所以更具备可压缩性。然而随着信息量的急速增长,对压缩效能的要求也越来越高,这不仅仅体现在压缩比方面。因为不同硬件环境存储设备与计算设备的处理能力不同,所以对压缩比和压、解压速率的要求也不同。一种方式是在数据库实现中集成多种压缩算法,对每一列采用不同的算法,一般是在建表的时候指定。这种方法的缺点是依赖于人的判断,此外无法解决不同数据特征下选定最适宜的方法,因为即使数据类型或列的类型相同,数据仍然可以有不同的特征。如取值范围、离散度、有序、连续性等。


【发明内容】

[0004]本发明主要解决的是如何在列存数据库中智能的采用自适应的方式实现压缩算法的自主选取,既达到较好的压缩效果,又能降低运行及维护成本。
[0005]为了实现上述目的,本发明采取的技术方案为:一种列存数据库的数据压缩方法,其特征在于,包括如下步骤:
[0006](I)多种压缩算法构建压缩引擎并分类;
[0007](2)数据采样分析,找到相应的压缩算法分类;
[0008](3)选定列存数据的步长并抽样,使用压缩算法分类中的各压缩算法进行压缩;
[0009](4)评估压缩结果,选定一种压缩算法;
[0010](5)对步长范围内的数据都采用步骤(4)确认的压缩算法进行处理;
[0011](6)取得下一步长的数据从步骤(2)开始循环。
[0012]优选的,所述步骤(I)压缩引擎由多种压缩算法共同构建而成,并按照各压缩算法擅长处理的数据类型进行分类。
[0013]进一步的,所述分类的每个类中可以有多种备选算法,每种算法也可能被划分至多个类中。
[0014]优选的,所述步骤(2)是利用数据库中知识库的规则对数据进行特征分析。
[0015]本发明的另一方面,一种列存数据库的数据压缩装置,其特征在于,包括:
[0016]压缩引擎构建模块,用于以多种压缩算法构建压缩引擎;
[0017]分类模块,用于多种压缩算法的分类;
[0018]数据采样模块,用于对数据进行采样;
[0019]数据分析模块,用于对采样数据进行分析,找到相应的压缩算法分类;
[0020]步长选定模块,选定列存数据的步长;
[0021]抽样模块,从一个步长的数据中抽样;
[0022]压缩模块,对数据进行压缩;
[0023]评估模块,用于评估压缩结果,选定压缩引擎中的一种压缩算法;
[0024]循环模块,用于按照步长循环取得数据。
[0025]优选的,所述分类模块为数据类型分类模块,按照各压缩算法擅长处理的数据类型进行分类。
[0026]优选的,所述数据分析模块包括规则分析模块,用于利用数据库中知识库的规则对数据进行特征分析。
[0027]本发明的有益效果为:
[0028]通过本发明的实施,使用多种压缩算法构成压缩引擎,对列数据进行采样初步分析数据特征,包括类型、数值范围等信息,结合系统中的知识库对算法进行初选。在数据中进行抽样,使用备选的压缩方法进行压缩,并借助评估体系对压缩结果进行对比,综合考量选定最适合的算法。在后续的一定量的数据范围内采用选定的压缩方法。本发明可以在列存数据库中对存储数据进行有效的压缩,通过复合算法引擎适应不同的数据。而数据抽样以及采样可以有效的在相近算法中做出选择,避免了传统复合算法下追求压缩比而造成的过量计算,兼顾压缩速度与压缩比的综合结果。

【专利附图】

【附图说明】
[0029]图1是本发明的流程示意图。

【具体实施方式】
[0030]下面结合具体实施例对本发明作进一步说明。
[0031]如图1所示,本发明采取如下的流程步骤:
[0032]1.多种压缩算法构成压缩引擎
[0033]针对常见的数据类型和特征,如整型、浮点、字符窜、超长字符串、有序数据等,选择一批压缩算法,并按照其擅长处理的数据类型进行分类。每个类中可以有多种备选算法,每种算法也可能被划分至多个类中。
[0034]2.数据采样分析
[0035]对数据进行采样,并利用知识库中的规则对数据进行特征分析,以找到相应的备选算法分类。
[0036]3.选定步长并抽样进行压缩
[0037]—般列存数据是分块进行存储的,可以根据需要选定步长,如果数据量较大时,可选择大的步长,例如步长可以选择为1000个数据块。
[0038]从一个步长的数据量中进行抽样,可以使随机抽取也可以直接取前几个数据块。对抽样数据,使用步骤2中确认的备选算法逐一进行压缩。
[0039]4.评估
[0040]使用评估系统对压缩结果进行评估,根据需要确定各种压缩指标的权重,获得最终结论一选定一种压缩算法。
[0041]5.压缩
[0042]对步长范围内的数据都采用步骤4确认的压缩方法进行处理。
[0043]6.循环
[0044]取得下一个步长的数据,转至步骤2,直至所有数据处理结束。
[0045]通过上述步骤,在列存数据库中对存储数据进行有效的压缩,通过复合算法引擎适应不同的数据。而数据抽样以及采样可以有效的在相近算法中做出选择,避免了传统复合算法下追求压缩比而造成的过量计算,兼顾压缩速度与压缩比的综合结果。
【权利要求】
1.一种列存数据库的数据压缩方法,其特征在于,包括如下步骤: (1)多种压缩算法构建压缩引擎并分类; (2)数据采样分析,找到相应的压缩算法分类; (3)选定列存数据的步长并抽样,使用压缩算法分类中的各压缩算法进行压缩; (4)评估压缩结果,选定一种压缩算法; (5)对步长范围内的数据都采用步骤(4)确认的压缩算法进行处理; (6)取得下一步长的数据从步骤(2)开始循环。
2.根据权利要求1所述的一种列存数据库的数据压缩方法,其特征在于,所述步骤(1)压缩引擎由多种压缩算法共同构建而成,并按照各压缩算法擅长处理的数据类型进行分类。
3.根据权利要求2所述的一种列存数据库的数据压缩方法,其特征在于,所述分类的每个类中可以有多种备选算法,每种算法也可能被划分至多个类中。
4.根据权利要求1所述的一种列存数据库的数据压缩方法,其特征在于,所述步骤(2)是利用数据库中知识库的规则对数据进行特征分析。
5.一种列存数据库的数据压缩装置,其特征在于,包括: 压缩引擎构建模块,用于以多种压缩算法构建压缩引擎; 分类模块,用于多种压缩算法的分类; 数据采样模块,用于对数据进行采样; 数据分析模块,用于对采样数据进行分析,找到相应的压缩算法分类; 步长选定模块,选定列存数据的步长; 抽样模块,从一个步长的数据中抽样; 压缩模块,对数据进行压缩; 评估模块,用于评估压缩结果,选定压缩引擎中的一种压缩算法; 循环模块,用于按照步长循环取得数据。
6.根据权利要求5所述的一种列存数据库的数据压缩装置,其特征在于,所述分类模块为数据类型分类模块,按照各压缩算法擅长处理的数据类型进行分类。
7.根据权利要求5所述的一种列存数据库的数据压缩装置,其特征在于,所述数据分析模块包括规则分析模块,用于利用数据库中知识库的规则对数据进行特征分析。
【文档编号】H03M7/30GK104462334SQ201410727736
【公开日】2015年3月25日 申请日期:2014年12月3日 优先权日:2014年12月3日
【发明者】刘威, 鹿明, 武新, 崔维力 申请人:天津南大通用数据技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1