[发明专利]一种面向列存储DWMS的B+树索引方法有效
申请号: | 201210019935.5 | 申请日: | 2012-01-20 |
公开(公告)号: | CN102609490A | 公开(公告)日: | 2012-07-25 |
发明(设计)人: | 夏小玲;乐嘉锦;王梅;李晔锋 | 申请(专利权)人: | 东华大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海申汇专利代理有限公司 31001 | 代理人: | 翁若莹;柏子雵 |
地址: | 201620 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 存储 dwms 索引 方法 | ||
技术领域
本发明涉及一种面向列存储DWMS(Data Warehouse Management System)的B+树索引技术。
背景技术
互联网应用的高度发展,高吞吐量和大存储量成为现如今数据库产品所必备的特点,对于事务处理和查询分析高性能的要求日益迫切。传统的行存储数据库并不能像处理事务应用一样为企业决策提供高效的查询分析,近年列存储的数据库架构被重新审视,对于数据仓库中或者分析支持应用中读优化的查询型工作,列存储表现出比行存储具有更加显著的性能。由于关系表在对外表现上,仍为逻辑行,因此元组重构与多表连接是列存储中影响查询性能的重要因素。索引是提高查询效率的重要技术之一。B+树索引能够保持数据有序存储,并具有允许查找、顺序存取、插入和删除的优点,使得它在事务环境中成为数据库系统使用最广泛的索引结构。
在传统的数据库系统中,频繁的数据插入和修改带来的B+树结构的变化是很大的。为了降低数据插入和修改时造成结点分裂的可能性,B+树的结点并不是填满的。但是在数据仓库系统中,几乎没有数据插入和修改操作。将传统B+树应用于海量数据存储的数据仓库系统中将造成空间的浪费。同时,由于结点并未完全填充,数据存储需要更多的结点,这将增加B+树索引的高度,降低数据的查询效率。
发明内容
本发明的目的是提供一种应用于列存储DWMS的B+树索引,克服传统B+树索引的局限性,提高数据的查询效率。
为了达到上述目的,本发明的技术方案是提供了一种面向列存储DWMS的B+树索引方法,其特征在于,步骤为:
步骤1、列数据生成:导入用户数据,将原始按行存储的数据垂直划分为单列,为每一列的每一项数据根据其所在的行号,添加用于元组重建的行号项,形成二元组(行号,列值),申请数据段,将新产生的每列值数据保存在一个数据段中;
步骤2、若B+树关键字为行号数据,则转向步骤4进行创建;若B+树关键字为列值数据,转步骤3首先对列值进行排序;
步骤3、将多路归并和堆排序组合使用对列值数据进行排序;
步骤4、B+树索引初始化;
步骤5、创建B+树叶子结点:申请B+树的叶子结点,将数据项直接填充入叶子结点得到数据块,构成B+树第0层;
步骤5的特点在于:
根据列存储特点,叶子块中直接保存数据信息,而非键值与指向数据块的指针。这样在查找过程中通过叶子结点可直接获取数据,减少一次I/O;结点填充时不再考虑稀疏系数,树中的每个结点都是填满的,采用了“查找键个数和指针个数一致”的原则,提升空间利用率。
步骤6、产生中间结点:由下至上迭代建立B+树的中间层结点直到整棵B+树创建结束。
优选地,所述步骤3包括:
步骤3.1、初始化:在内存中申请一个排序区,其大小记为K,令K是块大小的整数倍。若待排序数据块数Blk_num>K,将采用多路归并外排序的方法。计算多路归并时M的大小,M为归并时的子列表个数,令每个待归并的子列表内块数D=Blk_num/M。
步骤3.2、读取段中源数据,把数据块二元组中的列值数据拆分出来,装入dataitem数组,放入排序区。使用堆排序算法将dataitem数组作为输入参数,对dataitem数组进行排序;若Blk_num<=K,则排序结束;否则,把排好序的数据项重新组装成块,写回临时段中。
步骤3.3、对M个临时段进行归并排序。
优选地,所述步骤6包括:
步骤6.1、生成索引项,索引项为由下一层块中的第一个列值、对应的行号以及该块的块号构成的三元组;
步骤6.2、判断列值类型是定长数据或变长数据,若是定长列值,计算得到索引项的长度,进而可得索引块中的索引项个数=索引块空间大小/索引项长度,第一层中的索引块个数=第0层中的数据块个数/每个结点中的索引项个数。申请索引块空间,将索引项批量插入到索引块中;若是变长列值,先申请一个索引块,然后依次插入三元组,直到放不下时才申请新的索引块;
步骤6.3、一层创建完成后,转向步骤5.1,按照同样的过程创建上一层中间结点,直到整棵B+树创建结束。
本发明提供一种应用于列存储DWMS的B+树索引具有如下优点:
1)提供改进的B+树索引结点,叶子结点直接存储列数据,中间结点不再考虑稀疏系数,全部填满,增加了空间利用率。对于相同个数的数据,该结构保证B树层次最短,减少了查找次数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东华大学,未经东华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210019935.5/2.html,转载请声明来源钻瓜专利网。