[发明专利]一种数据处理方法及装置在审
申请号: | 201711025417.3 | 申请日: | 2017-10-27 |
公开(公告)号: | CN110019360A | 公开(公告)日: | 2019-07-16 |
发明(设计)人: | 熊亮春 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/22 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 孙敬霞;栗若木 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 哈希表 数据处理 哈希连接 表数据 不一致 扫描 复制 合并 广播 申请 | ||
本文提供一种数据处理方法及装置,所述数据处理方法可以包括:通过扫描内表数据生成第一哈希表;广播所述第一哈希表;获取全量哈希表,所述全量哈希表由所述第一哈希表合并得到;将所述全量哈希表与外表进行哈希连接。本申请能够在join key与分布键不一致且内表、外表都不是复制表的情况下,有效提高哈希连接的执行效率。
技术领域
本发明涉及分布式计算领域,尤其涉及一种数据处理方法及装置。
背景技术
哈希连接(Hash Join)是一种连接(join)的执行方式,因为hash join的执行方式能最大程度的利用MPP架构的数据分布特点,使得在大多数情况下Hash join在大规模并行处理计算机(MPP,Massive Parallel Processor)架构数据库下的执行性能都优于其他两种Join执行方法(即,嵌套循环(Nest loop),排序合并(sort merge))。
目前,Hash join执行方法中,当join key与分布键不一致,且内表、外表都不是复制表的情况下,要保证连接结果的正确,需要将每个计算节点的数据按照连接谓词(joinkey)进行重分布,然后再执行哈希连接操作。这是Hash join最为普遍的一种执行场景。然而,通过多个计算节点并行的方式执行数据重分布,在网络上传输的数据总量必然会大幅增加,这不仅会降低哈希连接的执行效率,而且会造成网络带宽资源的需求量增加,进而占用大量网络带宽资源。
发明内容
本申请提供一种数据处理方法及装置,能够在join key与分布键不一致且内表、外表都不是复制表的情况下,有效提高哈希连接的执行效率。
本申请采用如下技术方案。
一种数据处理方法,包括:
通过扫描本地的内表数据生成第一哈希表;
广播所述第一哈希表,以便其他计算节点基于所述第一哈希表得到第二哈希表,所述第二哈希表至少由所述第一哈希表合并得到。
其中,所述方法还包括:将所述第一哈希表压缩;所述广播所述第一哈希表,包括:广播所述压缩后的第一哈希表。
其中,所述广播所述第一哈希表,包括如下之一:向除当前计算节点之外的计算节点广播所述第一哈希表;向目标计算节点广播所述第一哈希表。
另一种数据处理方法,包括:获取全量哈希表,所述全量哈希表至少由第一哈希表合并得到,所述第一哈希表通过扫描计算节点的本地内表数据生成;将所述全量哈希表与外表进行哈希连接。
其中,所述获取全量哈希表包括如下之一:接收来自其他计算节点的第一哈希表,将自身得到的第一哈希表与所述来自其他计算节点的第一哈希表合并,得到所述全量哈希表;接收来自目标计算节点的所述全量哈希表。
其中,所述方法还包括:在接收到来自其他计算节点的压缩的第一哈希表时,在所述合并之前将所述压缩的第一哈希表解压缩。
其中,所述将所述全量哈希表与外表进行哈希连接,包括:根据来自协调节点的通知,将所述外表的部分数据进行分发,以便通过其他计算节点执行所述外表的部分数据与所述全量哈希表的哈希连接操作。
其中,所述将所述全量哈希表与外表进行哈希连接,包括:接收来自其他计算节点的外表数据,并将所述外表数据与所述全量哈希表进行哈希连接操作。
又一种数据处理方法,包括:
通过扫描内表数据生成第一哈希表;
广播所述第一哈希表;
获取全量哈希表,所述全量哈希表由所述第一哈希表合并得到;
将所述全量哈希表与外表进行哈希连接。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711025417.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种防止缓存击穿的方法、装置及系统
- 下一篇:一种数据的缓存方法及装置