码迷,mamicode.com
首页 > 数据库 > 详细

016-Hadoop Hive sql语法详解6-job输入输出优化、数据剪裁、减少job数、动态分区

时间:2017-11-25 19:16:25      阅读:323      评论:0      收藏:0      [点我收藏+]

标签:span   详解   join   depend   bsp   to_date   多少   input   union   

一、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数、动态分区

标签:span   详解   join   depend   bsp   to_date   多少   input   union   

原文地址:http://www.cnblogs.com/bjlhx/p/7896004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!