2、HQL层面优化
2.1 执行计划
explain select * from movies;
2.1 列、行、分区裁剪
列裁剪就是在查询时只读取需要的列
行裁剪就是在查询时只读取需要的行,也就是提前过滤
分区剪裁就是在查询的时候只读取需要的分区。
set hive.optimize.cp = true; 列裁剪,取数只取查询中需要用到的列,默认是true
set hive.optimize.pruner=true; ## 分区剪裁
2.2 谓词下推
将 SQL 语句中的 where 谓词逻辑都尽可能提前执行,减少下游处理的数据量。对应逻辑优化器是PredicatePushDown。
set hive.optimize.ppd=true; ## 默认是true
eg:
select a.*, b.* from a join b on a.id = b.id where b.age &g