SQL规范与数据倾斜

一.SQL规范
1、SQL编写规范
逗号放字段前面
对用到的表都用子查询的形式,并且只取需要用到的字段
缩进(select/from/where …and …/group by/order by/join/on…)
符号前后留空格
对一些复杂的逻辑和需要注意的点加上注释说明
别名 同级用1、2、3...区分(如 t1、t2、t3)

2.规范的好处
规范的好处逻辑结构清晰
便于调试
便于模块化处理
美观,条理清楚

3.误区
觉得耗费时间,增加工作量
觉得都一样,自己明白就行

二.数据倾斜(spark)
1、现象
1.1 绝大多数task执行得都非常快,但个别task执行极慢。比如,总共有1000个task,997个task都在10分钟之内执行完了,但是剩余两三个task却要一两个小时。
1.2 之前能够正常执行的Spark作业,某天突然报出OOM(内存溢出)异常
2、原理
2.1 聚合或join等(distinct、groupby、repartition)操作产生shuffle
2.2 拉取各个节点的key到某个节点上的一个task来处理
2.3 整个spark作业的运行进度是由运行时间最长的那个task决定的

2.4 某个task的key特别多,就产生了数据倾斜

一.SQL规范
1、SQL编写规范
逗号放字段前面
对用到的表都用子查询的形式,并且只取需要用到的字段
缩进(select/from/where …and …/group by/order by/join/on…)
符号前后留空格
对一些复杂的逻辑和需要注意的点加上注释说明
别名 同级用1、2、3...区分(如 t1、t2、t3)

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值