Vol.01 实际案例-数据倾斜
💡
原文中文,约2200字,阅读约需6分钟。
📝
内容提要
本文分享了一位数仓工程师处理数据歪斜问题的经验,通过调整内存参数和查看Spark UI成功定位问题。作者提出了避免数据歪斜的方法,并总结了数仓工程师的能力和责任心。
🎯
关键要点
- 数仓工程师的知识与能力通过实践不断积累和验证。
- 处理数据歪斜问题的场景是由于Executor OOM导致的报错。
- 初步处理计划是增加Executor内存参数以解决内存不足的问题。
- 通过Spark UI检查失败的Stage和SQL,定位到具体的SQL问题。
- SQL中使用-1填充缺失值导致数据歪斜,最终通过优化SQL解决了问题。
- 数据歪斜的原因是小表数据量增加,超过了播送阈值,导致执行计划变化。
- 建议在SQL中使用id != '-1'和id = '-1'的union all方式处理数据。
- 数仓工程师需要具备快速定位问题的能力和强烈的责任心。
➡️