[发明专利]用于主存储器列存储装置的基于字典的保持顺序的串压缩有效
申请号: | 201010211014.X | 申请日: | 2010-06-28 |
公开(公告)号: | CN101937448A | 公开(公告)日: | 2011-01-05 |
发明(设计)人: | 卡斯滕·比宁格;弗朗兹·费伯;斯蒂芬·希尔登布兰德 | 申请(专利权)人: | SAP股份公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 邵亚丽 |
地址: | 德国瓦*** | 国省代码: | 德国;DE |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 主存储器 存储 装置 基于 字典 保持 顺序 压缩 | ||
技术领域
本发明的实施例一般地涉及软件领域,并且更具体地涉及数据结构,该数据结构支持具有可随时间改变的大的域的大小(domain size)的串属性的保持顺序的字典压缩。
背景技术
在计算领域中,数据库管理系统(DBMS)是控制数据库存储单元中的数据的组织、存储、管理和检索的一组软件程序。传统上,DBMS是面向行的数据库系统;然而,存在面向列的数据库系统。面向列的数据库系统按照列而不是按照行来存储其内容。对于数据库来说,这可以具有优势,其中,在大量类似的数据项上计算总和(aggregate)。DBMS的面向列的实现将依次存储给定列的属性,并且依次存储同一列的列值,一列的末尾之后跟着在下一列的开头。当必须在很多行上、但是仅对所有数据列的较小的子集计算总和时,面向列的数据库系统可以更高效。之所以能够这样,至少是因为读取数据的较小子集可以比读取所有数据更快。当一次对所有行提供一列的新值时,面向列的数据库系统也可以更高效,因为该列数据可以被高效地写入,并且可以替换旧的列数据,而不干扰所述行的任何其它列。
发明内容
描述了这样的方法和系统,该方法和系统涉及支持可变长度的串属性的保持顺序的字典压缩的数据结构,其中,域的大小较大或者预先未知。在一个实施例中,所述方法包括:将多个串值经由编码索引传播到字典的共享树叶结构的压缩数据。对于所述多个串值,通过查找操作来获取多个保持顺序的整数代码。如果在所述获取期间没有找到所述多个整数代码的子集,则将没有找到的所述多个整数代码的子集所针对的所述多个串值的子集插入共享树叶结构中。该方法还包括:产生所述多个串值的对应子集的所述多个整数代码的子集。最后,提供保持顺序的所述多个整数代码的列表,其中,该列表也包括所产生的所述多个整数代码的子集。
在一个实施例中,所述系统包括面向列的数据库系统和基于字典的存储单元,该存储单元指定在该面向列的数据库系统中,在多个可变长度的串值和多个整数代码之间的映射。此外,所述系统包括共享树叶数据结构,该数据结构在其树叶中按照排序(sort)顺序来保存基于字典的存储单元的数据。此外,包括与基于字典的存储单元通信的处理器,其中,该处理器可操作以使用共享树叶数据结构将所述多个可变长度的串值编码为所述多个整数代码以及将所述多个整数代码解码为所述多个可变长度的串值。
当考虑结合附图提供的对本发明的优选实施例的以下详细描述时,本发明的实施例的这些和其它益处和特征将显而易见,在附图中,自始至终使用相同的参考标号来标识相同的元件。
附图说明
在附图的各个图中,作为示例而不是作为限制图示了本发明,在附图中,相同的参考标号指示相似的元件。应当注意,在本公开中,对于“一”或“一个”实施例的提及不一定针对同一个实施例,这样的提及是指至少一个。
图1是可变长度的串属性的保持顺序的字典压缩的实施例的图。
图2是示出用于对表T的属性编制索引的直接、间接和共享树叶方法的图。
图3是示出共享树叶方法如何支持字典内的数据加载和查询处理的实施例的流程图。
图4是示出全部成批(all-bulked)策略和混合策略的实施例的图。
图5是根据本发明实施例的用于可变长度的串值的树叶结构的存储器布局的示例。
图6是用于使用CS数组trie来将数据编码的实施例的图。
图7是根据实施例的CS前缀树的示例的图。
图8是从给定的树叶层级开始的CS前缀树的批量(bulk)加载过程的实施例的流程图。
图9是根据实施例的来自示出树叶结构的性能和存储器开销的实验的结果的图。
图10是根据实施例的来自示出编码索引的查找和更新成本的实验的结果的图。
图11是根据实施例的来自示出字典的可扩展性的实验的结果的图。
图12是根据本发明实施例的计算系统的示例的示意图。
具体实施方式
本发明的实施例涉及支持具有可能随时间改变的大的域的大小的串属性的保持顺序的字典压缩的数据结构。所认为的是,面向列的数据库系统在分析工作负荷(workload)上比传统的面向行的数据库系统表现更好。用于面向列的数据库系统的轻量级压缩方案可以使能对压缩数据进行查询处理,从而提高查询处理性能。字典编码利用较短的固定长度的整数代码来代替可变长度的属性值。为了以这种方式压缩列数据,现有的列存储器通常创建不同值的字典数组(dictionary array),然后将每个属性值作为索引存储到该数组中。如果域的大小小,则可以在列存储器中使用字典。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于SAP股份公司,未经SAP股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010211014.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:表面具有光催化功能的自洁减反膜制备方法
- 下一篇:触点定制系统