[发明专利]联接表的方法和装置在审
申请号: | 202210091434.1 | 申请日: | 2022-01-26 |
公开(公告)号: | CN114443659A | 公开(公告)日: | 2022-05-06 |
发明(设计)人: | 魏秀利;郑瑞峰;王文生 | 申请(专利权)人: | 北京沃东天骏信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27;G06F16/28 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
地址: | 100176 北京市大兴区经济技*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 联接 方法 装置 | ||
本公开的实施例公开了联接表的方法和装置。该方法的具体实施方式包括:获取待联接的第一表和第二表,其中,所述第一表的数据量小于所述第二表的数据量;若所述第一表不可以广播,则计算所述第一表的行数与所述第二表的行数的比值;若所述比值小于等于预定阈值,则根据所述第一表的关联键构建实时布隆过滤器,并将所述实时布隆过滤器作为过滤算子插入到所述第二表的过滤条件中;从所述第二表中过滤掉不符合所述过滤条件的数据,得到过滤表;将所述第一表和所述过滤表分别进行洗牌、排序后联接起来。该实施方式提高了联接表的任务的时效,节省了计算资源,同时减少了集群负载。
技术领域
本公开的实施例涉及计算机技术领域,具体涉及联接表的方法和装置。
背景技术
Spark作为大规模数据处理通用的计算引擎,其具有高吞吐、低延时、通用易扩展、高容错等特点,目前已形成一个高速发展应用广泛的生态系统,其主要模块包括:SparkCore、Spark SQL、Spark Streaming、MLlib、GraphX,其中Spark SQL在大数据应用最为广泛,并不断应用于大规模数据处理。
在生产场景中,有很多Spark SQL业务场景需要一张小表(相对小)联接一张大表。这里的小表是指不会触发BroadcastHashJoin(广播哈希联接),默认走SortMergeJoin(排序合并联接)。排序合并联接的实现逻辑:首先,两张表会分别根据联接条件确定每条记录的关联键,基于该关联键做洗牌写将可能联接到一起的记录分到同一个分区中;其次,在洗牌读阶段将两个表中相同分区的数据进行拉取并进行排序、合并;最终,将满足联接条件的数据进行联接输出,其中满足联接条件与具体SQL联接策略相关。对于上面提及的场景,满足联接条件是以左侧小表为基准的,即在两表联接时只会将大表侧满足与小表侧数据相等条件的数据保留,对于大表侧不符合联接条件的数据,会被认为是无效数据,由于无效数据参与洗牌、排序、合并计算,一方面影响任务时效,另一方面无效的洗牌数据会增加集群磁盘IO、网络IO等负载,同时浪费大量的计算资源。
发明内容
本公开的实施例提出了联接表的方法和装置。
第一方面,本公开的实施例提供了一种联接表的方法,包括:获取待联接的第一表和第二表,其中,所述第一表的数据量小于所述第二表的数据量;若所述第一表不可以广播,则计算所述第一表的行数与所述第二表的行数的比值;若所述比值小于等于预定阈值,则根据所述第一表的关联键构建实时布隆过滤器,并将所述实时布隆过滤器作为过滤算子插入到所述第二表的过滤条件中;从所述第二表中过滤掉不符合所述过滤条件的数据,得到过滤表;将所述第一表和所述过滤表分别进行洗牌、排序后联接起来。
在一些实施例中,该方法还包括:若检测到未进行过滤优化,则在每个分片上根据所述第一表的关联键构建洗牌布隆过滤器,并将所述洗牌布隆过滤器作为过滤算子插入读取到的所述第二表的洗牌数据的后面,对第二表的洗牌数据进行过滤,得到每个分片的分片过滤表;对于每个分片,分别将该分片上所述第一表的洗牌数据和分片过滤表排序后联接起来。
在一些实施例中,该方法还包括:自定义实时布隆过滤器和洗牌布隆过滤器的过滤算子以支持代码生成器。
在一些实施例中,根据所述第一表的关联键构建实时布隆过滤器,包括:若存在至少两个关联键,则对所述至少两个关联键进行哈希处理,得到一个散列值,根据所述散列值构建实时布隆过滤器。
在一些实施例中,该方法还包括:若在预定时间内未构建实时布隆过滤器,则对所述第一表和所述第二表进行内或左联接。
在一些实施例中,该方法还包括:若获取到待联接的第三表且关联键相同,则将所述实时布隆过滤器作为过滤算子插入到所述第三表的过滤条件中;从所述第三表中过滤掉不符合所述过滤条件的数据,得到下推过滤表;将所述下推过滤表进行洗牌、排序后与所述第一表和所述过滤表的联接结果联接起来。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京沃东天骏信息技术有限公司;北京京东世纪贸易有限公司,未经北京沃东天骏信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210091434.1/2.html,转载请声明来源钻瓜专利网。