大纲地址 : https://blog.csdn.net/u010003835/article/details/105334641
场景九.减少IO次数
1) 通过多表插入 FROM A INSERT B SELECT a, ... INSERT C SELECT a, ...
2) 一次输入,多次使用 WITH TABLE AS (...)
3) 案例
场景九.减少IO次数
1) 通过多表插入 FROM A INSERT B SELECT a, ... INSERT C SELECT a, ...
使用方法
https://blog.csdn.net/u010003835/article/details/105400140
这是一个优化,可以减少表的扫描,从而减少 JOB 中 MR的 STAGE 数量,达到优化的目的。
2) 一次输入,多次使用 WITH TABLE AS (...)
使用方法:
https://blog.csdn.net/u010003835/article/details/105399470
with as 也叫做子查询部分,首先定义一个sql片段,该sql片段会被整个sql语句所用到,为了让sql语句的可读性更高些,作为提供数据的部分,也常常用在union等集合操作中。
with as就类似于一个视图或临时表,可以用来存储一部分的sql语句作为别名,不同的是with as 属于一次性的,而且必须要和其他sql一起使用才可以!
其最大的好处就是适当的提高代码可读性,而且如果with子句在后面要多次使用到,这可以大大的简化SQL;更重要的是:一次分析,多次使用,这也是为什么会提供性能的地方,达到了“少读”的目标。
3) 案例
请参考 https://blog.csdn.net/u010003835/article/details/105394136
数据统计背景:
我们现在有多个公司,多个部门,多位员工的薪水情况。现在我们需要按照多种维度去统计薪水。
同时我们有多张结果表,那么就需要我们在统计的同时,将数据放入多张结果表中。