sparksql优化-left join优化为inner join

背景:生产环境中表a小表,b大表。a为报表范围;b分区表,且用b表全量数据,b表查询900g/天。
历史用a left join b,取b相关数据,随着b表数据量不断增加,某天跑批报错。只有2个表关联,查询不复杂。

优化过程:
1、直接加资源,刚开始一段时间有效果,后期数据增加报错。
2、后期除了加资源。
先a 表inner join b表取能关联到的数据,这步建表c;然后拿a表left join c表,优先取c表字段,取不到赋空处理。
inner join提高查询效率,a left join c保证数据范围。

3、同时参数设置广播小表a。
(explain sql语句,只有inner join生效广播小表,left join、right join有时候生效,有时候不生效,待查询原因。不知是是不版本问题)

步骤2、3提升明显。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值