[发明专利]一种生成哈希连接表的方法及装置有效
| 申请号: | 201610539406.6 | 申请日: | 2016-07-08 |
| 公开(公告)号: | CN107590161B | 公开(公告)日: | 2020-06-02 |
| 发明(设计)人: | 王传廷 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22 |
| 代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 生成 连接 方法 装置 | ||
本发明的实施例提供一种生成哈希连接表的方法及装置,涉及数据库技术领域,用于解决节点间以元组的方式进行数据传递生成哈希连接表而造成数据库性能较低的问题。包括:节点扫描第一数据表包括的元组;节点根据哈希算法对第一数据表包括的所有元组进行哈希运算,得到第一哈希表;节点接收第一类节点广播的哈希表;节点对第一哈希表和接收到的第一类节点广播的所有哈希表执行哈希合并,得到第一哈希合并表;节点扫描第二数据表包括的元组;节点根据第二数据表包括的元组与第一哈希合并表包括的元组进行哈希连接,得到第一哈希连接表。
技术领域
本发明涉及数据库技术领域,尤其涉及一种生成哈希连接表的方法及装置。
背景技术
结构化查询语言(英文全称:Structured Query Language,英文简称:SQL)中的连接语句可以将数据库中的两个或多个数据表连接起来,且哈希连接(Hash Join)是大多数数据库最常用的连接算法,哈希连接利用哈希表(hash table)实现两个或多个数据表的等值连接,其原理为:构建哈希表,即在要进行连接的两个数据表中,选取元组较少的一个数据表(又称内表),将其中的元组采用某个哈希函数和某种冲突解决方法构建哈希表;探测哈希表,即选取两个数据表中元组较多的数据表作为探测表(又称外表),取探测表中的每一个元组到构建好的哈希表中进行哈希查找,找到能够实现等值连接的元组;输出,即如果探测表中的某个元组与哈希表中的某个元组满足等值连接的条件,则将它们进行连接并输出。
现有的哈希连接实现中,哈希连接的节点之间通过元组的方式进行数据传递,这种通过元组进行数据传递的方式会导致哈希连接后的元组再次组成哈希表的情况,这严重影响了分布式数据库的性能。
发明内容
本发明的目的在于提供一种生成哈希连接表的方法及装置,在生成哈希连接表的过程中,通过在进行哈希连接的节点间传递哈希表,避免通过传递元组被多次加工成哈希表的重复逻辑,从而提高分布式数据库的性能。
上述目标和其他目标将通过独立权利要求中的特征来达成。进一步的实现方式在从属权利要求、说明书和附图中体现。
第一方面,提供一种生成哈希连接表的方法,用于分布式数据库进行数据表的哈希连接,分布式数据库包括至少两个节点,以第一节点来说明上述方法的具体步骤,该第一节点为分布式数据库包括至少两个节点中的任意一个节点:
首先,第一节点扫描第一数据表包括的元组,根据哈希算法对第一数据表包括的所有元组进行哈希运算,得到第一哈希表,在第一节点接收到第一类节点广播的哈希表后,对第一哈希表和接收到的第一类节点广播的所有哈希表执行哈希合并,得到第一哈希合并表,其中,第一类节点为分布式数据库中除第一节点之外的能够扫描到第一数据表包括的元组的节点,第一哈希合并表包括第一数据表包括的元组;然后,第一节点扫描第二数据表包括的元组,根据第二数据表包括的元组与第一哈希合并表包括的元组进行哈希连接,得到第一哈希连接表,其中,第一哈希连接表包括第一哈希合并表包括的元组和第二数据表包括的元组。
这样一来,第一节点扫描到第一数据表包括的元组后,根据哈希算法对第一数据表包括的所有元组进行哈希运算,得到第一哈希表,使得第一节点在构建第一哈希表时,只是针对本节点存储的第一数据表包括的元组进行构建的,而非现有技术中是针对分布式数据库中每个节点存储的相同的第一数据表包括的所有元组进行构建的,然后,第一节点接收其他能够扫描到第一数据表包括的元组的节点广播的哈希表,对自身生成的哈希表和接收到的所有哈希表进行哈希合并,再将第二数据表包括的元组与哈希合并表进行哈希连接。从而在节点构建完哈希表之后,节点之间直接传递的是哈希表,而非元组,避免通过传递元组被多次加工成哈希表的重复逻辑,从而有效地提高了分布式数据库的性能。
具体的,哈希表包括哈希键值,第一节点对第一哈希表和接收到的第一类节点广播的所有哈希表可以根据包括的相同的哈希键值对应的元组进行合并。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610539406.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于环规清洗的设备
- 下一篇:一种用于汽车线束组装PCB板的快速除尘设备





