一、开发规范
1.单条SQL长度不宜超过一屏
2.SQL子查询嵌套不宜超过3层
3.少用或者不用hint
4.若有多处逻辑一致的代码,可以将执行结果存储到临时表中
5.尽可能使用SQL自带高级命令做操作,例如:在多维统计分析中使用cube,grouping sets 和rollup等命令去代替多个SQL子句的union all
6.使用set属性,进行配置命令的更改,要有注释;
7.代码里不允许包含对表/分区/列的DDL语句,出了新增和删除分区。
Hive SQL更加适合处理多条数据组合的数据集,不适合处理单条数据,且单条数据之间存在顺序依赖等逻辑关系。例如,有A,B,C3行数据,当A符合某种条件才能处理B行时,只有A,B符合某种条件,才能处理C
8.保持一个查询语句所处理的表类型单一。例如,一个SQL语句中的表都是ORC类型的表,或者都是parquet表
9.关注null值的数据处理
10存在多层嵌套,内层嵌套表的过滤条件不要写到外层。
例如
select a.* from a
left join b
where a.<