知识卡片

数据倾斜的根因与两种解法

专业/工作 · 1208

内容

数据倾斜发生在某个 key 的数据量远超其他 key,导致一个 task 拖慢整体作业。无业务意义的倾斜 key 可过滤;有意义的大 key 可加随机前缀拆散,先局部聚合再二次聚合。这个思路把一个大瓶颈改造成多个小任务加一次汇总。

参考来源

- 位置:《用户画像:方法论与工程化解决方案》第5章《开发性能调优》(源文件:_epub-src/OEBPS/text00085.html) - 结论依据:原文围绕“在进行group by或join操作时,如果某个key对应的数据量过大,会导致部分t”给出定义、场景或处理方式,支撑卡片对“数据倾斜的根因与两种解法”的概括。 - 原始内容:在进行group by或join操作时,如果某个key对应的数据量过大,会导致部分task执行时间过长。可过滤无意义key,或将相同key添加随机前缀分散到多个task上先聚合,再去掉前缀二次聚合。