知识卡片
数据倾斜的根因与两种解法
内容
数据倾斜发生在某个 key 的数据量远超其他 key,导致一个 task 拖慢整体作业。无业务意义的倾斜 key 可过滤;有意义的大 key 可加随机前缀拆散,先局部聚合再二次聚合。这个思路把一个大瓶颈改造成多个小任务加一次汇总。
参考来源
- 位置:《用户画像:方法论与工程化解决方案》第5章《开发性能调优》(源文件:_epub-src/OEBPS/text00085.html)
- 结论依据:原文围绕“在进行group by或join操作时,如果某个key对应的数据量过大,会导致部分t”给出定义、场景或处理方式,支撑卡片对“数据倾斜的根因与两种解法”的概括。
- 原始内容:在进行group by或join操作时,如果某个key对应的数据量过大,会导致部分task执行时间过长。可过滤无意义key,或将相同key添加随机前缀分散到多个task上先聚合,再去掉前缀二次聚合。