相信很多小伙伴在面试的时候,必然跳不过去的一个问题就是SQL脚本的优化,这是很多面试官爱问的问题,也是可以证明你实力进阶的一个重要的能力。
下面给大家分享一个重量级的大数据行业sql技能---hive大数据平台SQL优化。
此文章是大数据平台运维组从多维度参数(CPU,内存,运行时长等)筛选出TOP任务,联合数据开发人员进行优化,最终出具优化方案优化跑批作业的业务逻辑,SQL逻辑等,并跟进方案落地和报告整理。
此文章从优化介绍,优化场景,案例实战三个方面循序渐进讲解。
一,优化介绍
1,大数据平台SQL优化的背景,以及采取的措施
2,优化效果概述
这个效果还是蛮理想的,也说明了在项目中sql优化是一项重要的技能之一,也是一个大数据开发人员进阶必备技能。
3,版本信息与名词
在分享SQL优化之前,先了解一下部分名词的含义。
二,优化场景
1,主要的优化场景
1.1,多余分区冗余计算
解决方法:
1.2,历史静态数据重复计算
解决方法>步骤1:优化前把历史结果表落地,再计算出新增结果表
解决方法>步骤2:把新增结果表数据合并进入历史结果表。
---注意,这里为什么不能直接(历史结果表)union all (新增结果表)来合并呢??
因为是要更新变化数据,不是简单的把数据合并,这个主要看不同的业务需求了。
优化总结:
1.3,多作业相同逻辑重复执行
解决方法:
1.4,老系统数据无效计算
解决方法:
1.5,单个sql计算复杂程度过高
解决方法:
code1异常是个重要的且基础的知识点!!!
1.6,规避使用 * 号查询
简单来说,就是要用什么字段就写什么字段,不用的,别多写。这个就是列裁剪。
1.7,相同逻辑冗余计算
解决方法:
优化前后对比:
1.8,单表多次关联冗余计算
解决方法:
1.9,筛选后置导致无用计算
解决方法:
1.10,group by 代替 distinct
1.11,单个字段重复清洗、过滤额、转化
解决方法:
1.12,作业更新及清理下线
2,优化场景总结
三,业务案例实战
1,业务实战案例1
2,业务实战案例2
今天这篇文章就分享到这里,欢迎大家提出宝贵建议和意见。