[发明专利]列存储数据库中基于多维数组的分组聚集计算方法有效
申请号: | 201310263880.7 | 申请日: | 2013-06-27 |
公开(公告)号: | CN103294831A | 公开(公告)日: | 2013-09-11 |
发明(设计)人: | 张延松;张宇;王珊 | 申请(专利权)人: | 中国人民大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京汲智翼成知识产权代理事务所(普通合伙) 11381 | 代理人: | 陈曦 |
地址: | 100872 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 存储 数据库 基于 多维 数组 分组 聚集 计算方法 | ||
技术领域
本发明涉及一种数据库分组聚集计算方法,尤其涉及一种针对多核处理器和/或众核协处理器平台的技术特点,在列存储数据库中基于多维数组的分组聚集计算方法,属于数据库管理技术领域。
背景技术
OLAP(联机分析处理)是数据库系统最主要的一种应用,提高OLAP查询处理的性能是数据库领域的关键性研究问题之一。OLAP查询处理中通常都会包含多表连接和分组聚集计算,提高这些操作的性能是提高OLAP响应速度的关键。当前,随着数据量的迅速增长和分析型查询处理需求的不断提高,以及多核处理器和众核协处理器平台(例如通用GPU或英特尔至强融核TM协处理器等)的并行计算需求,大数据分组聚集计算日益成为新的性能瓶颈。提高分组聚集操作的性能和效率成为一个重要的研究课题。
在现有的数据库技术中,分组聚集计算主要采用两种实现方案:一是对输出记录按分组属性排序,然后在顺序扫描记录时将相同分组属性值的记录对应的聚集属性值进行聚集处理(如sum对应累加操作);二是采用哈希分组聚集处理,用分组属性构造哈希分组聚集表,每个哈希入口(哈希桶)相当于一个聚集器(如sum对应的累加器),每一个输出记录通过分组属性值的哈希探测找到其对应的哈希桶,并将聚集计算属性值推到哈希桶中进行聚集计算。在基于排序的分组聚集计算方案中,排序操作的代价较大。在分组聚集的记录集较大时,需要O(n*log2n)的排序代价和O(n)的记录扫描代价。在基于哈希表的分组聚集计算方案中,执行代价包括哈希探测的代价和聚集计算的代价。当分组属性为高势集时,即分组数量较大时,分组聚集哈希表需要较大的内存空间(哈希表需要相对原始数据较大的内存空间以使数据尽量分散,保证哈希探测的O(1)性能)。而当采用多核并行处理技术时,每个处理线程需要维护一个私有的哈希分组聚集表,而较大的哈希分组聚集表导致缓存缺失(cache miss)增加,并行处理性能下降。对于复杂的分组聚集函数,如中位数、百分位、top k、rank等函数涉及计算代价更高的处理过程,当聚集计算属性增多时,分组聚集计算的代价会不断增长。特别是在现有的分析查询中,聚集计算的数量越来越多,逐渐成为计算代价较大的操作符。
另一方面,目前越来越多的分析型数据库采用列存储,但基于哈希表的分组聚集操作需要将查询相关的列物化为行记录后才能进行分组聚集计算。这种先物化策略不利用发挥列存储一次一列的访问效率,因此需要在列存储数据库中提供基于列存储的分组聚集操作。对于多核处理器和众核协处理器平台而言,sum、count、average等聚集函数可以转换为并行处理过程,由各线程独立完成各自数据子集上的聚集计算,并通过全局聚集结果归并得到最终的聚集结果。这种并行的分组聚集计算需要将哈希分组聚集表最小化以减少多核处理器共享缓存中的数据访问冲突,因此需要比哈希表存储效率更高的分组聚集数据结构。对于众核处理器而言,向量结构比内存哈希表结构更加适合众核处理器的高并行计算模式,因此需要将以内存哈希表为基础的分组聚集处理技术向更加轻量化、向量化的分组聚集处理技术过渡,以更好地适应当前多核处理器和众核协处理器平台的需要,提高大数据分组聚集计算的性能。
发明内容
本发明所要解决的技术问题在于提供一种列存储数据库中基于多维数组的分组聚集计算方法。该方法降低了哈希表的存储空间开销和哈希探测的CPU代价,尤其适合多核处理器和众核协处理器平台使用。
为实现上述的发明目的,本发明采用下述的技术方案:
一种列存储数据库中基于多维数组的分组聚集计算方法,包括如下步骤:
在分组聚集计算过程中,将哈希表分解为多个同构的多维数组,每个多维数组对应一个聚集计算表达式,每个数组单元表示一个多维分组向量;
将查询的星形连接过程输出记录的多个分组属性映射为对应的多维数组各维上的下标,并转换为一维数组下标;
为查询生成连接向量,记录每一个满足连接条件记录的ID和分组属性对应的一维数组下标值;
在聚集计算过程中,各个聚集计算表达式根据连接向量独立进行聚集计算,在扫描连接向量时根据记录的ID直接访问聚集计算表达式对应的度量属性值,按照连接向量中分组属性映射的一维数组下标将聚集属性计算结果送至对应的多维数组单元中进行聚集计算。
其中较优地,对分组属性进行编码并映射为多维数组,输出记录根据分组编码可以直接映射到多维数组指定的数组单元中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民大学,未经中国人民大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310263880.7/2.html,转载请声明来源钻瓜专利网。