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表的倾斜值,若是,则使用镜像分发器将该条元组发送给所有参与计算的节点 ,若否,
权 利 要 求 书
1/2 页
2
评论