位图索引压缩方法和位图索引解压方法

文档序号:6548429阅读:167来源:国知局
位图索引压缩方法和位图索引解压方法
【专利摘要】本发明实施例提供一种位图索引压缩方法及装置,通过按预设段宽度分段,得到索引关键字对应的位图索引的各段位图信息,并将各段位图信息中各有效值的偏移值按对应的二进制存储位数进行存储,得到该段位图信息的压缩信息,由于只存储各段位图信息中各有效值的偏移值,因此能够减小位图索引的存储空间。相应地,本发明实施例提供一种位图索引解压方法及装置,利用各有效值的偏移值的二进制表示信息的存储位数,得到各段位图信息的压缩信息中各有效值的偏移值,并通过将所述初始化位图信息中各有效值的偏移值对应的位设置为有效值,得到该段位图信息的压缩信息对应的解压信息,能够降低位图索引的解压复杂度,并提高了位图索引的检索查询效率。
【专利说明】位图索弓丨压缩方法和位图索弓I解压方法
【技术领域】
[0001]本发明实施例涉及数据库【技术领域】,尤其涉及一种位图索引压缩方法和位图索引解压方法。
【背景技术】
[0002]随着计算机信息技术的快速发展,越来越多的用户对海量数据的存储和检索提出了更高的要求。位图索引对应于数据基表中的索引关键字,位图索引在海量数据上的应用是普遍的,例如在数据基表上通过位图索引检索某个产品在某个时间段的销售情况等等。在提升位图索引检索性能的同时,对位图索引存储空间的要求也越来越高,因此位图索引压缩技术应运而生。
[0003]现有的位图索引压缩技术,一般是通过计算数据基表的索引关键字对应的位图索引中每个I之前的O的个数,并确定该个数的二进制表示位数,同时通过添加控制信息对该个数的二进制表示位数以及该个数的二进制数进行编码,从而实现数据基表的索引关键字对应的位图索引的压缩存储。
[0004]上述位图索引压缩技术的缺陷在于:虽然通过将每个I前面的O的个数用相应位数的二进制记录,可以减少每个I前面的O的个数的存储空间,但在编码中添加的控制信息会导致位图索引的存储空间的增大;而且复杂的编码方式增加了位图索引的解压复杂度,从而影响位图索引的检索查询效率。

【发明内容】

[0005]本发明实施例提供一种位图索引压缩方法及装置,以减小位图索引的存储空间;本发明实施例还提供一种位图索引解压方法及装置,以降低位图索引的解压复杂度,以提高位图索引的检索查询效率。
[0006]第一方面,本发明实施例提供了一种位图索引压缩方法,包括:
[0007]对于预先建立的数据基表中所包含的索引关键字的位图索引,将该位图索引按预设段宽度分段,得到多段位图信息;
[0008]对于各段位图信息,确定该段位图信息中各有效值的偏移值,其中,所述偏移值为对应的有效值在该段位图信息中的位数;根据各有效值的偏移值确定各偏移值的二进制存储位数;根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息,生成并存储该段位图信息的压缩信息,该压缩信息包含各偏移值的二进制表示信息。
[0009]第二方面,本发明实施例提供了一种位图索引压缩装置,包括:
[0010]分段模块,用于对于预先建立的数据基表中所包含的索引关键字的位图索引,将该位图索引按预设段宽度分段,得到多段位图信息;
[0011]偏移值确定模块,用于对于各段位图信息,确定该段位图信息中各有效值的偏移值,其中,所述偏移值为对应的有效值在该段位图信息中的位数;
[0012]二进制存储位数确定模块,用于根据各有效值的偏移值确定各偏移值的二进制存储位数;
[0013]第一存储模块,用于根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息,生成并存储该段位图信息的压缩信息,该压缩信息包含各偏移值的二进制表不信息。
[0014]第三方面,本发明实施例提供了一种位图索引解压方法,包括:
[0015]获取数据基表中所包含的索引关键字的位图索引的各段位图信息的压缩信息,其中,所述各段位图信息通过将该位图索引按预设段宽度分段获得,对于各段位图信息的压缩信息,该段位图信息的压缩信息包含二进制表示信息和二进制存储位数,所述二进制表示信息包含该段位图信息中各有效值的偏移值的二进制表示信息;所述二进制存储位数包含该段位图信息中各有效值的偏移值的二进制表示信息的存储位数,所述偏移值为对应的有效值在该段位图信息中的位数;
[0016]对于各段位图信息的压缩信息,生成宽度为预设段宽度的初始化位图信息;根据该段位图信息的压缩信息中的二进制存储位数,将该段位图信息的压缩信息中的二进制表示信息转换为十进制信息,得到该段位图信息的压缩信息中各有效值的偏移值;通过将所述初始化位图信息中各有效值的偏移值对应的位设置为有效值,得到该段位图信息的压缩信息对应的解压信息。
[0017]第四方面,本发明实施例提供了一种位图索引解压装置,包括:
[0018]压缩信息获取模块,用于获取数据基表中所包含的索引关键字的位图索引的各段位图信息的压缩信息,其中,所述各段位图信息通过将该位图索引按预设段宽度分段获得,对于各段位图信息的压缩信息,该段位图信息的压缩信息包含二进制表示信息和二进制存储位数,所述二进制表示信息包含该段位图信息中各有效值的偏移值的二进制表示信息;所述二进制存储位数包含该段位图信息中各有效值的偏移值的二进制表示信息的存储位数,所述偏移值为对应的有效值在该段位图信息中的位数;
[0019]初始化位图信息生成模块,用于对于各段位图信息的压缩信息,生成宽度为预设段宽度的初始化位图信息;
[0020]偏移值确定模块,用于根据该段位图信息的压缩信息中的二进制存储位数,将该段位图信息的压缩信息中的二进制表示信息转换为十进制信息,得到该段位图信息的压缩信息中各有效值的偏移值;
[0021]第一解压模块,用于通过将所述初始化位图信息中各有效值的偏移值对应的位设置为有效值,得到该段位图信息的压缩信息对应的解压信息。
[0022]本发明实施例提供的位图索引压缩方法及装置,通过按预设段宽度分段,得到索引关键字对应的位图索引的各段位图信息,并将各段位图信息中各有效值的偏移值按对应的二进制存储位数进行存储,得到该段位图信息的压缩信息,由于只存储各段位图信息中各有效值的偏移值,因此能够减小位图索引的存储空间。相应地,本发明实施例提供的位图索引解压方法及装置,利用各有效值的偏移值的二进制表示信息的存储位数,得到各段位图信息的压缩信息中各有效值的偏移值,并通过将所述初始化位图信息中各有效值的偏移值对应的位设置为有效值,得到该段位图信息的压缩信息对应的解压信息,能够降低位图索引的解压复杂度,并提高了位图索引的检索查询效率。【专利附图】

【附图说明】
[0023]为了更清楚地说明本发明,下面将对本发明中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0024]图1为本发明实施例一提供的一种位图索引压缩方法的流程图;
[0025]图2为本发明实施例二提供的一种位图索引压缩方法的流程图;
[0026]图3为本发明实施例三提供的一种位图索引压缩方法的流程图;
[0027]图4为本发明实施例四提供的一种位图索引压缩装置的结构示意图;
[0028]图5为本发明实施例五提供的一种位图索引解压方法的流程图;
[0029]图6为本发明实施例六提供的一种位图索引解压方法的流程图;
[0030]图7为本发明实施例七提供的一种位图索引解压装置的结构示意图。
【具体实施方式】
[0031]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案作进一步详细描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0032]实施例一
[0033]请参阅图1,为本发明实施例一提供的一种位图索引压缩方法的流程图。本发明实施例的方法可以由配置以硬件和/或软件实现的位图索引压缩装置来执行,该实现装置典型的是配置于能够提供位图索引压缩服务的服务器中。如图1所示,所述方法包括:
[0034]步骤110、对于预先建立的数据基表中所包含的索引关键字的位图索引,将该位图索引按预设段宽度分段,得到多段位图信息;
[0035]数据基表是数据库中一个重要的对象,由各元素组成。数据基表中所包含的索引关键字代表数据基表中各列属性所包含的元素的取值情况。位图索引是一种使用位图的特殊的数据库索引技术,在位图索引中,每个位的取值为I或0,表示对应的基行的元素是否满足对应的索引关键字的值,因此,索引关键字的位图索引的长度等于基行的长度。
[0036]在本步骤中,优选地,所述预设段宽度为8的整数倍。
[0037]需要说明的是,一个位图索引划分为了若干段,每个段的宽度为预设段宽度,当最后一段对应的位图索引信息小于预设段宽度时,在末尾以O补足。
[0038]示例性地,通过表I中的数据基表为例进行说明。表I中的数据基表中基行的长度为n,包含A和B两列,其中A的取值包括L、T和M三种情况,B的取值包括X和Y两种情况,因此,A的索引关键字分别为L、T和M, B的索引关键字分别为X和Y。表2为A的索引关键字及对应的位图索引,表3为B的索引关键字及对应的位图。以A的索引关键字L
为例说明,由表I可知,A取值为L时所对应的行号分别为1、3.....和n,由表2可知,A的
索引关键字L对应的位图索引101000...1,该索引关键字的位图索引的长度为n,等于基行的长度。其中,第一位的值为1,表示数据基表中A列第I行的元素的值为L,第二位的值为O,表示数据基表中A列第2行的元素的值不为L,第三位的值为1,表示数据基表中A列第3行的元素的值为L,依次类推。
[0039]表1
[0040]
【权利要求】
1.一种位图索引压缩方法,其特征在于,包括: 对于预先建立的数据基表中所包含的索引关键字的位图索引,将该位图索引按预设段宽度分段,得到多段位图信息; 对于各段位图信息,确定该段位图信息中各有效值的偏移值,其中,所述偏移值为对应的有效值在该段位图信息中的位数;根据各有效值的偏移值确定各偏移值的二进制存储位数;根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息,生成并存储该段位图信息的压缩信息,该压缩信息包含各偏移值的二进制表示信息。
2.根据权利要求1所述的方法,其特征在于,在对于预先建立的数据基表中所包含的索引关键字的位图索引,将该位图索引按预设段宽度分段,得到多段位图信息之后、在确定各段位图信息中各有效值的偏移值之前,还包括: 所述对于各段位图信息,确定当前段位图信息的稀疏因子,其中当有效值为I时,所述稀疏因子为当前段位图信息中O的个数与预设段宽度的比值;或当有效值为O时,所述稀疏因子为当前段位图信息中I的个数与预设段宽度的比值; 确定该段位图信息中各有效值的偏移值,其中,所述偏移值为对应的有效值在该段位图信息中的位数;根据各有效值的偏移值确定各偏移值的二进制存储位数;根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息,生成并存储该段位图信息的压缩信息,该压缩信息包含各偏移值的二进制表示信息,包括: 当当前位图信息的稀疏因子大于等于预设稀疏阈值时,确定该段位图信息中各有效值的偏移值,其中,所述偏移值为对应的有效值在该段位图信息中的位数;根据各有效值的偏移值确定各偏移值的二进制存储位数;根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息,生成并存储该段位图信息的压缩信息,该压缩信息包含各偏移值的二进制表示信息。
3.根据权利要求2所述的方法,其特征在于,在当前段位图信息的稀疏因子小于稀疏阈值时,还包括: 利用普通位图压缩算法对当前段位图信息进行压缩,生成并存储该段位图信息的压缩信息,其中所述普通位图压缩算法包括zip压缩算法或rar压缩算法。
4.根据权利要求2所述的方法,其特征在于,在根据各有效值的偏移值确定各偏移值的二进制存储位数之后、在根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息之前,还包括: 判断各偏移值的二进制存储位数的总和是否小于预设段宽度; 根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息,生成并存储该段位图信息的压缩信息,该压缩信息包含各偏移值的二进制表示信息,包括: 当各偏移值的二进制存储位数的总和小于预设段宽度时,根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息,生成并存储该段位图信息的压缩信息,该压缩信息包含各偏移值的二进制表不信息。
5.根据权利要求4所述的方法,其特征在于,当各偏移值的二进制存储位数的总和不小于预设段宽度时,还包括: 利用普通位图压缩算法对当前段位图信息进行压缩,生成并存储该段位图信息的压缩信息,其中所述普通位图压缩算法包括zip压缩算法或rar压缩算法。
6.根据权利要求1所述的方法,其特征在于,将该位图索引按预设段宽度分段的步骤,与确定一个段位图信息中各有效值的偏移值,根据各有效值的偏移值确定各偏移值的二进制存储位数,根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息,生成并存储该段位图信息的压缩信息的步骤,并行执行。
7.根据权利要求1所述的方法,其特征在于,所述预设段宽度为8的整数倍。
8.根据权利要求1所述的方法,其特征在于,在对于预先建立的数据基表中所包含的索引关键字的位图索引,将该位图索引按预设段宽度分段,得到多段位图信息之后、在确定各段位图信息中各有效值I的偏移值之前,还包括: 确定该段位图信息的第一辅助信息,所述第一辅助信息至少包括该段位图信息的起始行号和该段位图信息的结束行号; 在根据各有效值的偏移值确定各偏移值的二进制存储位数之后、在根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息之前,还包括: 确定该段位图信息的第二辅助信息,所述第二辅助信息至少包括各偏移值的二进制存储位数; 所述根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息,生成并存储该段位图信息的压缩信息,该压缩信息包含各偏移值的二进制表示信息,包括: 根据所述二进制存储位数得到该段位图信息中各偏移值的二进制表示信息,生成并存储该段位图信息的压缩 信息,该压缩信息包含各偏移值的二进制表示信息、该段位图信息的第一辅助信息和/或该段位图信息的第二辅助信息。
9.一种位图索引解压方法,其特征在于,包括: 获取数据基表中所包含的索引关键字的位图索引的各段位图信息的压缩信息,其中,所述各段位图信息通过将该位图索引按预设段宽度分段获得,对于各段位图信息的压缩信息,该段位图信息的压缩信息包含二进制表示信息和二进制存储位数,所述二进制表示信息包含该段位图信息中各有效值的偏移值的二进制表示信息;所述二进制存储位数包含该段位图信息中各有效值的偏移值的二进制表示信息的存储位数,所述偏移值为对应的有效值在该段位图信息中的位数; 对于各段位图信息的压缩信息,生成宽度为预设段宽度的初始化位图信息;根据该段位图信息的压缩信息中的二进制存储位数,将该段位图信息的压缩信息中的二进制表示信息转换为十进制信息,得到该段位图信息的压缩信息中各有效值的偏移值;通过将所述初始化位图信息中各有效值的偏移值对应的位设置为有效值,得到该段位图信息的压缩信息对应的解压信息。
10.根据权利要求9所述的方法,其特征在于,所述获取数据基表中所包含的索引关键字的位图索引的各段位图信息的压缩信息,还包括:获取各段位图信息的稀疏因子,其中当有效值为I时,所述稀疏因子为该段位图信息中O的个数与预设段宽度的比值;或当有效值为O时,所述稀疏因子为该段位图信息中I的个数与预设段宽度的比值; 所述根据该段位图信息的压缩信息中的二进制存储位数,将该段位图信息的压缩信息中的二进制表示信息转换为十进制信息,得到该段位图信息的压缩信息中各有效值的偏移值;通过将所述初始化位图信息中各有效值的偏移值对应的位设置为有效值,得到该段位图信息的压缩信息对应的解压信息,包括:在当前段位图信息的压缩信息中该段位图信息的稀疏因子大于等于预设稀疏阈值时,根据该段位图信息的压缩信息中的二进制存储位数,将该段位图信息的压缩信息中的二进制表示信息转换为十进制信息,得到该段位图信息的压缩信息中各有效值的偏移值;通过将所述初始化位图信息中各有效值的偏移值对应的位设置为有效值,得到该段位图信息的压缩信息对应的解压信息。
11.根据权利要求10所述的方法,其特征在于,在当前段位图信息的压缩信息中该段位图信息的稀疏因子小于预设稀疏阈值时,还包括: 利用普通位图解压算法对当前段位图信息的压缩信息进行解压,得到该段位图信息的压缩信息对应的解压信息,其中所述普通位图压缩算法包括zip压缩算法或rar压缩算法。
12.根据权利要求10所述的方法,其特征在于,在当前段位图信息的压缩信息中该段位图信息的稀疏因子大于等于预设稀疏阈值时、在根据该段位图信息的压缩信息中的二进制存储位数,将该段位图信息的压缩信息中的二进制表示信息转换为十进制信息之前,还包括: 判断各偏移值的二进制存储位数的总和是否小于预设段宽度; 所述在当前段位图信息的压缩信息中该段位图信息的稀疏因子大于等于预设稀疏阈值时,根据该段位图 信息的压缩信息中的二进制存储位数,将该段位图信息的压缩信息中的二进制表示信息转换为十进制信息,得到该段位图信息的压缩信息中各有效值的偏移值;通过将所述初始化位图信息中各有效值的偏移值对应的位设置为有效值,得到该段位图信息的压缩信息对应的解压信息,包括: 在当前段位图信息的压缩信息中该段位图信息的稀疏因子大于等于预设稀疏阈值时,并且当各偏移值的二进制存储位数的总和小于预设段宽度时,根据该段位图信息的压缩信息中的二进制存储位数,将该段位图信息的压缩信息中的二进制表示信息转换为十进制信息,得到该段位图信息的压缩信息中各有效值的偏移值;通过将所述初始化位图信息中各有效值的偏移值对应的位设置为有效值,得到该段位图信息的压缩信息对应的解压信息。
13.根据权利要求10所述的方法,其特征在于,当各偏移值的二进制存储位数的总和不小于预设段宽度时,还包括: 利用普通位图解压算法对当前段位图信息的压缩信息进行解压,得到该段位图信息的压缩信息对应的解压信息,其中所述普通位图压缩算法包括zip压缩算法或rar压缩算法。
14.根据权利要求9所述的方法,其特征在于,所述预设段宽度为8的整数倍。
15.根据权利要求9所述的方法,其特征在于,所述获取数据基表中所包含的索引关键字的位图索引的各段位图信息的压缩信息,还包括:获取各段位图信息的压缩信息对应的各段位图信息的第一辅助信息,所述第一辅助信息至少包括该段位图信息的起始行号和该段位图信息的结束行号; 在通过将所述初始化位图信息中各有效值的偏移值对应的位设置为有效值,得到该段位图信息的压缩信息对应的解压信息之后,还包括: 根据各段位图信息的压缩信息对应的解压信息,并根据对应的第一辅助信息,得到对应的索引关键字的位图索引。
【文档编号】G06F17/30GK103995887SQ201410240532
【公开日】2014年8月20日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】彭青松, 朱仲颖, 汪龙重 申请人:上海达梦数据库有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1