hive数据倾斜

本文探讨了Hive中数据倾斜的成因,包括key分布不均、业务数据特性、建表不当及HQL语句问题。提到了空值、不同数据类型关联、大小表关联、小文件过多和count(distinct)操作引发的数据倾斜场景,并给出了相应的解决方案,如赋予空值新key、转换数据类型、使用map join和调整Hive参数等。
摘要由CSDN通过智能技术生成

造成数据倾斜的原因:

key 分布不均匀

业务数据本身的特性

建表考虑不周全

某些 HQL 语句本身就存在数据倾斜

产生数据倾斜的业务场景

1.空值产生的数据倾斜

在日志中,常会有信息丢失的问题,比如日志中的 user_id,如果取其中的 user_id 和用户表中的 user_id 相关联,就会碰到数据倾斜的问题。

解决方案 1:user_id 为空的不参与关联

select * from log a join user b on a.user_id is not null and a.user_id = b.user_id

解决方案 2 赋予空值新的 key 值

select * from log a left outer join user b on
case when a.user_id is null then c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值