数据分析师课|新公布的4个数据倾斜的原理,这些数据分析的细节千万不能忽略
一、数据倾斜的原理——数据倾斜产生的原因
我们以 Spark 和 Hive 的使用场景为例。他们在做数据运算的时候会涉及到,count distinct、group by、join 等操作,这些都会触发 Shuffle 动作,一旦触发,所有相同 key 的值就会拉到一个或几个节点上,就容易发生单点问题。
二、数据倾斜的原理——万恶的 Shuffle
Shuffle 是一个能产生奇迹的地方,不管是在 Spark 还是 Hadoop 中,它们的作用都是至关重要的。关于 Shuffle 的原理,这里不再讲述,看看 Hadoop 相关的论文或者文章理解一下就 ok。这里主要针对在 Shuffle 如何产生了数据倾斜。
Hadoop 和 Spark 在 Shuffle 过程中产生数据倾斜的原理基本类似。如下图。
大部分数据倾斜的原理就类似于下图,很明了,因为数据分布不均匀,导致大量的数据分配到了一个节点。
三、数据倾斜的原理——从数据角度来理解数据倾斜
我们举一个例子,就说数据默认值的设计吧,假设我们有两张表:
user(用户信息表):userid,register_ip
ip(IP表):ip,register_user_cnt
这可能是两个不同的人开发的数据表,如果我们的数据规范不太完善的话,会出现一种情况,user 表中的 register_ip 字段,如果获取不到这个信息,我们默认为 null,但是在 ip 表中,我们在统计这个值的时候,为了方便,我们把获取不到 ip 的用户,统一认为他们的 ip 为 0。
两边其实都没有错的,但是一旦我们做关联了会出现什么情况,这个任务会在做关联的阶段,也就是sql的on的阶段卡死。
四、数据倾斜的原理——从业务计角度来理解数据倾斜
数据往往和业务是强相关的,业务的场景直接影响到了数据的分布。
再举一个例子,比如就说订单场景吧,我们在某一天在北京和上海两个城市多了强力的推广,结果可能是这两个城市的订单量增长了10000%,其余城市的数据量不变。
然后我们要统计不同城市的订单情况,这样,一做 group 操作,可能直接就数据倾斜了。

以上就是有关于数据倾斜的原理的相关内容,以及相应的解析,不论你是已经入职数据分析师岗位的新人,还是打算进入数据分析岗位的小白,以上的内容都或多或少会对大家有所帮助,环球网校的小编在这里祝大家的数据分析师职业道路顺利。
最新资讯
- 数据分析汇总报告有哪些组成?这才是数据分析师能力的体现2020-07-17
- 什么是EOI框架?这对于数据分析师竟然这么重要2020-07-17
- 如何进行业务核心数据分析?这对于数据分析师来说竟如此重要2020-07-16
- 有哪些数据分析实践的概念?不会这个的数据分析师都转行了2020-07-13
- 数据的分析思路是什么?正确的分析思路可以帮助数据分析师进步2020-07-10
- 什么是数据回归分析方法?这才是数据分析师要用到的利器2020-07-10
- 数据相关的分析方法是什么?这三种才是数据分析师的救星2020-07-10
- 高级数据分析方法是什么?这才是数据分析师进阶的必备技能2020-07-09
- 提出数据假设的方法是什么?这才是数据分析师应该明白的东西2020-07-09
- 如何找出数据优化指标?优秀的数据分析师都在这样思考2020-07-09