[发明专利]一种面向列存储的桶内索引哈希连接方法有效

专利信息
申请号: 201210019277.X 申请日: 2012-01-20
公开(公告)号: CN102609487A 公开(公告)日: 2012-07-25
发明(设计)人: 王梅;乐嘉锦;夏小玲;郝大腾 申请(专利权)人: 东华大学
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 上海申汇专利代理有限公司 31001 代理人: 翁若莹;柏子雵
地址: 201620 上*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 面向 存储 索引 连接 方法
【说明书】:

技术领域

发明涉及一种面向列存储的桶内索引哈希连接方法,适用于基于二元表即<行号,列值>的列存储数据库管理系统环境。

背景技术

连接(Join)在数据查询中占有非常重的比重,特别是在列存储数据系统中尤为重要。除了用户查询所需要的连接操作外,为了把各列数据重新合并成行,很多情况下就需要额外的同表各列的连接。数据库中的经典连接算法有嵌套循环连接、合并连接和哈希连接等实现方式。其中哈希连接是一种高效的连接算法,多数情况下其表现均优于传统的嵌套循环连接和合并连接。

然而哈希连接也存在一些缺陷,主要表现在两个方面。一是难以选择合适的桶数,二是难以选择恰当的散列函数。由于列存储分析型应用中数据往往具有“海量特点”,使得桶数和散列函数更加难以选择,上述问题表现更加明显。首先,若桶数过少,每个桶内的数据个数可能就会太多而致使连接效率低下,而如果桶数太多则又会造成内存浪费和管理成本的增加。其次,由于每次哈希连接所处理的数据特性都不同,很难找到一个通用的哈希函数使数据都能很好的均匀散列,因此选择一个通用的哈希散列函数也十分困难。

发明内容

本发明的目的是提供一种通过在桶内构建索引,克服传统哈希连接的缺陷,减少查找匹配时间,提高哈希连接的效率的哈希连接方法。

为了达到上述目的,本发明的技术方案是提供了一种面向列存储的桶内索引哈希连接方法,其特征在于,步骤为:

步骤1、初始化:解析哈希连接两表信息,确定哈希对象小表S,判断哈希关键字,初始化哈希表HT,设置桶的个数为B,散列函数为f(x);

步骤2、先创建桶结点,随后,对哈希对象小表S中数据Si使用散列函数f(x)计算哈希值,再根据计算的值将数据Si按大小有序填充到相应的桶结点适当的位置中,若数据按哈希关键字无序,桶内数据采用链表存储,若数据按哈希关键字有序,桶内数据采用数组存储,初始情况下仅为每个桶生成一个大小为容忍值长度的数组,当桶内的元组个数超过容忍值T时,再新动态生成一个容忍值长度的数组,填充时填充到当前数组尾部;

步骤3、判断当前桶内的元素个数是否大于容忍值T,若大于则转向步骤4建立桶内索引,否则按照普通的哈希散列算法将其散列到桶中,并转向步骤5;

步骤4、建立桶内索引:从第一个数据开始,将该数据重新插入到桶中,插入第一条数据记录时,建立第一个索引节点,该节点索引第一条记录位置,当有新的数据进入该桶时,首先查桶内索引链,找到合适的索引节点,从此索引节点索引的的第一个数据位置开始对比找到合适位置后插入,若此索引节点中数据个数count值超过容忍值T时,就从当前插入数据的位置,将这个索引节点一分为二,同时为新的索引节点赋值,该过程反复进行,直到每个索引节点中数据个数均小于容忍值T;

步骤5、建立桶内索引数组:当表中所有数据插入完成后,将各个桶的索引节点,按索引数据最小值的顺序存生成该表的索引数组,便于二分法查找;

步骤6、匹配连接:建立上述哈希桶后,利用桶内索引,进行匹配连接。

优选地,所述步骤6包括:

步骤6.1、取哈希大表中数据进行连接,该数据经过散列函数f(x)计算后,找到对应的桶;

步骤6.2、首先二分查找此桶对应的索引节点数组,找到对应的索引节点后,若数据按哈希关键字有序,则可取出对应的数组,继续使用二分查找;若数据按哈希关键字无序,则从索引节点中读出此索引节点中的第一条数据的位置,接下来从哈希大表中取出的数据就从该位置起依次与桶中数据一一比对;

步骤6.3、若遇到相同值则连接成功,并继续进行比对,到下一个不同的值结束;如果没有遇到相同的值,则比对到下一个索引点的开始数据就可以确定小表S中没有此项,则数据连接不成功。

本发明在桶内构建索引,其好处在于:一是不用过分考虑桶的个数。在桶数较少的情况下通过桶内的索引依然可以快速定位到所需要的元素。二是不用苛求一个适用于多数数据特征的哈希函数,即便哈希函数选择不够合理导致了一定程度上的数据分布不均匀,但是在数据分布较多的桶内索引又能使系统快速查找到所需元素。特别的,根据列存储特点,在桶内索引基础上提出哈希行号,在关键字有序数据下的散列与匹配算法,进一步提升桶内查找速度,提高哈希连接效率。

本发明的优点是:通过在桶内构建索引,克服传统哈希连接的缺陷,减少查找匹配时间,提高哈希连接的效率的哈希连接方法。

具体实施方式

为使本发明更明显易懂,兹以一优选实施例详细说明如下。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东华大学,未经东华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210019277.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top