[发明专利]一种分布式数据库执行哈希连接的方法在审
申请号: | 202211418061.0 | 申请日: | 2022-11-14 |
公开(公告)号: | CN115687357A | 公开(公告)日: | 2023-02-03 |
发明(设计)人: | 赵衎衎;魏可伟;陈磊 | 申请(专利权)人: | 上海沄熹科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F16/2458;G06F16/27;G06F16/28 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 冯春连 |
地址: | 200120 上海市浦东新区中国(上海)自由贸*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 数据库 执行 连接 方法 | ||
1.一种分布式数据库执行哈希连接的方法,其特征在于,包括如下步骤:
获取分布式数据库中表统计信息的数据采样量,设定一个相对倾斜率,计算相对倾斜率与表数据采样量的乘积,得到倾斜阈值;
获取分布式数据库中表统计信息的热力图,利用热力图筛选表中超出倾斜阈值的元素,被筛选出来的元素称为倾斜值;
利用倾斜值拓展分布式数据库的表统计信息,得到新的表统计信息;
在分布式数据库中执行包含哈希连接的SQL语句,获取两个输入数据表,利用新的表统计信息生成哈希连接物理计划,依据计划对输入数据表中的元组进行哈希分发、平均分发或镜像分发,以将输入数据表的元组按照散列值发送给目的节点、按照平均概率分发给所有节点或复制后发送给所有参与计算的节点;
各个节点接收到输入数据表的元组之后,利用数据量小的输入数据表数据建立哈希表,利用数据量大的输入数据表数据进行探测,最后每个节点哈希连接的结果作并集,该并集即为最终的哈希连接结果。
2.根据权利要求1所述的一种分布式数据库执行哈希连接的方法,其特征在于,在分布式数据库中执行包含哈希连接的SQL语句,获取两个输入数据表,用新的表统计信息生成哈希连接物理计划,具体包括:
执行SQL语句时,从分布式数据库中获取两个输入数据表,将数据量大的输入数据表称为R表,数据量小的输入数据表称为S表;
基于新的表统计信息,确认R表和S表中是否含有倾斜值:
(a)R表和S表的倾斜值都不为空,
(b)R表倾斜值不为空,S表倾斜值为空,
(c)R表倾斜值为空,S表倾斜值不为空,
(d)R表和S表的倾斜值都为空;
对(a)、(b)两种情况,对R表和S表的非倾斜值进行哈希分发,对R表中的倾斜值进行平均分发,对S表中的倾斜值进行镜像分发;
对(c)、(d)两种情况,直接对R表和S表的元组进行哈希分发。
3.根据权利要求2所述的一种分布式数据库执行哈希连接的方法,其特征在于,构建哈希分发器、镜像分发器、平均分发器,其中,
哈希分发器用于接收R表/S表中的一条元组,并按照元组的散列值发送给目的节点;
镜像分发器用于接收S表中的一条元组,并发送给所有参与计算的节点;
平均分发器用于接收R表中的一条元组,并将元组按照平均概率随机或轮询分发给参与计算的节点。
4.根据权利要求3所述的一种分布式数据库执行哈希连接的方法,其特征在于,对(a)、(b)两种情况,
利用R表读取算子顺序读取R表中的一条元组,并基于新的表统计信息判断该条元组是否为R表的倾斜值,若是,则使用平均分发器将该条元组按照平均概率随机或轮询分发给参与计算的节点,若否,则使用哈希分发器将该条元组按照元组的散列值发送给目的节点;
利用S表读取算子顺序读取S表中的一条元组,并基于新的表统计信息判断该条元组是否为R表的倾斜值,若是,则使用镜像分发器将该条元组发送给所有参与计算的节点,若否,则使用哈希分发器将该条元组按照元组的散列值发送给目的节点。
5.根据权利要求3所述的一种分布式数据库执行哈希连接的方法,其特征在于,对(c)、(d)两种情况,
利用R表读取算子顺序读取R表中的一条元组,随后使用哈希分发器将该条元组按照元组的散列值发送给目的节点;
利用S表读取算子顺序读取S表中的一条元组,随后使用哈希分发器将该条元组按照元组的散列值发送给目的节点。
6.根据权利要求1所述的一种分布式数据库执行哈希连接的方法,其特征在于,获取数据库表统计信息的热力图,获取热力图的数据采样量N和桶数M,统计桶边界元素数量numeq,筛选桶中的元素,α表示设定的相对倾斜率,被筛选出来的元素即为超出倾斜阈值的倾斜值。
7.根据权利要求3所述的一种分布式数据库执行哈希连接的方法,其特征在于,将新的表统计信息加入系统表和缓存。
8.根据权利要求1所述的一种检测倾斜数据的Hash Join执行方法,其特征在于,对分布式数据库中的所有表设定一个相同的相对倾斜率,基于分布式数据库中表统计信息的数据采样量,数据采样量不同的表具有不同的倾斜阈值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海沄熹科技有限公司,未经上海沄熹科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211418061.0/1.html,转载请声明来源钻瓜专利网。