016-Hadoop Hive sql语法详解6-job输入输出优化数据剪裁减少job数动态分区
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了016-Hadoop Hive sql语法详解6-job输入输出优化数据剪裁减少job数动态分区相关的知识,希望对你有一定的参考价值。
一、job输入输出优化
善用muti-insert、union all,不同表的union all相当于multiple inputs,同一个表的union all,相当map一次输出多条
示例
二、数据剪裁
2.1、列剪裁
HIve在读取数据的时候,可以只查询所需要用到的列,而忽略其他列。甚至可以使用正在表达式。
见。http://www.cnblogs.com/bjlhx/p/6946202.html
2.2、分区剪裁
在查询的过程中减少不必要的分区
示例:
select count(orderid) from order_table where to_date(sale_time)=‘2014-03-03‘ and hour(to_date(sale_time))=10
修改后
select count(orderid) from order_table where dt =‘2014-03-03‘ to_date(sale_time)=‘2014-03-03‘ and hour(to_date(sale_time))=10
可以使用Explain dependency语法,获取input table 和input partition
三、利用hive的优化机制减少job数
不论是外关联outer join还是内关联inner join,如果join key相同,不管有多少个表,都会合并为一个MapReduce任务
四、合理使用动态分区
以上是关于016-Hadoop Hive sql语法详解6-job输入输出优化数据剪裁减少job数动态分区的主要内容,如果未能解决你的问题,请参考以下文章
009-Hadoop Hive sql语法详解4-DQL 操作:数据查询SQL
007-Hadoop Hive sql语法详解2-修改表结构