[发明专利]一种分布式数据库执行哈希连接的方法在审
申请号: | 202211418061.0 | 申请日: | 2022-11-14 |
公开(公告)号: | CN115687357A | 公开(公告)日: | 2023-02-03 |
发明(设计)人: | 赵衎衎;魏可伟;陈磊 | 申请(专利权)人: | 上海沄熹科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F16/2458;G06F16/27;G06F16/28 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 冯春连 |
地址: | 200120 上海市浦东新区中国(上海)自由贸*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 数据库 执行 连接 方法 | ||
本发明公开一种分布式数据库执行哈希连接的方法,涉及分布式数据库技术领域,包括:设定一个相对倾斜率,计算相对倾斜率与表数据量的乘积,得到倾斜阈值;获取表统计信息的热力图,筛选表中超出倾斜阈值的元素,得到倾斜值;利用倾斜值拓展表统计信息;执行SQL语句,获取两个输入数据表,利用新的表统计信息生成哈希连接物理计划,依据计划对输入数据表中的元组进行哈希分发、平均分发或镜像分发,各个节点接收到输入数据表的元组之后,利用数据量小的输入数据表数据建立哈希表,利用数据量大的输入数据表数据进行探测,最后每个节点哈希连接的结果作并集,该并集即为最终的哈希连接结果。本发明可以实现任务的均衡分配,缩短总的SQL执行时间。
技术领域
本发明涉及分布式数据库技术领域,具体的说是一种分布式数据库执行哈希连接的方法。
背景技术
哈希连接,是一种数据库中常见的操作,用于分析数据库两个或以上表数据之间的联系;无论在各种交易模型的OLTP场景下,还是计算分析模型的OLAP场景下,都是基础操作,哈希连接算子也都是基础算子。
传统的哈希连接算子一般分为两步,对于两表中较小表,在内存中根据连接列建立哈希表;对于较大表,逐个查阅哈希表探测大表中链接列与小表匹配的部分,最后输出结果。传统部署在单机上的哈希连接也遵从以上步骤。
对于分布式数据库,尤其是Shared-Nothing架构的数据库,其运行方式相对于单机的哈希连接有以下不同。大表小表数据的分布不同于单机的情况,其数据可能分布在不同的数据库节点上,每个节点由网络连接,并且各自拥有一部分大表或者小表或者两者的数据。这就意味着在分布式环境下,如果要利用多个节点带来的并行计算能力,就要将原始的大小表数据,通过网重新分布至每个数据库节点;这些节点各自在拿到数据之后,进行哈希连接,最终结果就是这些节点的汇总。基于以上特点,一般的分布式数据库都采用哈希重分布的方式来实现每个节点的并行计算,即按照连接列的哈希值来确定原始数据被分发给哪个节点。然而基于哈希重分布的方式会带来以下问题:由于原始数据中可能存在倾斜值,这些拥有相同哈希值的倾斜值会被分发给同一个节点,会造成节点间任务量不均衡的现象,即某个或某些节点拿到大部分数据的情况,其危害具体体现在,这些拿到数据量较多的节点完成连接时间较长,会造成其余节点等待从而拖慢整个执行过程的情况。因此,在提升分布式数据库中哈希连接执行效率的问题中,如何处理倾斜值是一个关键问题。
目前,对于倾斜值的处理,发明专利申请《一种基于Spark计算框架的大表连接优化方法》,公开号CN113868230A,其具体提出了一种基于蓄水池采样的倾斜值检测机制,以及一种对数据进行分割,使倾斜数据发送给处理较快的节点的倾斜优化方式,其目的是在Spark计算框架中两个大表在连接查询时过滤掉大量无用数据,改进数据倾斜情况,缩短连接查询时间,解决Spark集群节点内存溢出问题;
公开文献Y.Xu,P.Kostamaa,X.Zhou,and L.Chen.Handling data skew inparallel joins in shared-nothing systems.In SIGMOD,pages 1043–1052,2008.提出了一种广播部分数据的倾斜优化连接方法“PRPD”,在PRPD中,表中倾斜数据按照哈希重分布,表中倾斜数据留在本地,匹配到相对表(另一个参与连接的表)的倾斜数据的对应数据被广播给所有参与计算的节点。这种方法在原始数据在各个节点上较为理想地均匀分布假设下,能取得较好的结果,但是对更为复杂的数据分布,优化效果较为有限。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种分布式数据库执行哈希连接的方法。
本发明的一种分布式数据库执行哈希连接的方法,解决上述技术问题采用的技术方案如下:
一种分布式数据库执行哈希连接的方法,包括如下步骤:
获取分布式数据库中表统计信息的数据采样量,设定一个相对倾斜率,计算相对倾斜率与表数据采样量的乘积,得到倾斜阈值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海沄熹科技有限公司,未经上海沄熹科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211418061.0/2.html,转载请声明来源钻瓜专利网。