zoukankan      html  css  js  c++  java
  • 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任务

      

    四、合理使用动态分区

      

  • 相关阅读:
    网络流
    KMP算法
    光现象
    物理学习须知
    声现象
    常见物理量测量方法
    洛谷 P1373 小a和uim之大逃离
    洛谷 P1242 新汉诺塔
    电磁现象
    磁化
  • 原文地址:https://www.cnblogs.com/bjlhx/p/7896004.html
Copyright © 2011-2022 走看看