Hiveのダイナミックパーティション

30942 ワード

( Oracle) , Insert , , ,Hive , (Dynamic Partition), , Hive , 。

, t_lxw1234 :

[sql]  view plain  copy
  1. SELECT day,url FROM t_lxw1234;  
  2. 2015-05-10 url1  
  3. 2015-05-10 url2  
  4. 2015-06-14 url1  
  5. 2015-06-14 url2  
  6. 2015-06-15 url1  
  7. 2015-06-15 url2  
  8. ……  

[sql]  view plain  copy
  1. CREATE TABLE t_lxw1234_partitioned (  
  2. url STRING  
  3. ) PARTITIONED BY (month STRING,day STRING)  
  4. stored AS textfile;  

: t_lxw1234 (day), t_lxw1234_partitioned 。

Insert , 。

, :

  • hive.exec.dynamic.partition

:false

, false 。

, true;

  • hive.exec.dynamic.partition.mode

:strict

, strict, ,nonstrict 。

nonstrict

  • hive.exec.max.dynamic.partitions.pernode

:100

MR , 。

: , day 365 , 365, 100, 。

  • hive.exec.max.dynamic.partitions

:1000

MR , 。

  • hive.exec.max.created.files

:100000

MR Job , HDFS 。

, , 100000, 。

  • hive.error.on.empty.partition

:false

, 。

 

, :

[sql]  view plain  copy
  1. SET hive.exec.dynamic.partition=true;  
  2. SET hive.exec.dynamic.partition.mode=nonstrict;  
  3. SET hive.exec.max.dynamic.partitions.pernode = 1000;  
  4. SET hive.exec.max.dynamic.partitions=1000;  
  5.    
  6. INSERT overwrite TABLE t_lxw1234_partitioned PARTITION (month,day)  
  7. SELECT url,substr(day,1,7) AS month,day  
  8. FROM t_lxw1234;  

PARTITION (month,day)

SELECT , PARTITION (month,day) , 。

Loading data to table liuxiaowen.t_lxw1234_partitioned partition (month=null, day=null)

Loading partition {month=2015-05, day=2015-05-10}

Loading partition {month=2015-06, day=2015-06-14}

Loading partition {month=2015-06, day=2015-06-15}

Partition liuxiaowen.t_lxw1234_partitioned{month=2015-05, day=2015-05-10} stats: [numFiles=1, numRows=2, totalSize=10, rawDataSize=8]

Partition liuxiaowen.t_lxw1234_partitioned{month=2015-06, day=2015-06-14} stats: [numFiles=1, numRows=2, totalSize=10, rawDataSize=8]

Partition liuxiaowen.t_lxw1234_partitioned{month=2015-06, day=2015-06-15} stats: [numFiles=1, numRows=2, totalSize=10, rawDataSize=8]

 

show partitions t_lxw1234_partitioned; :

hive> show partitions t_lxw1234_partitioned;

OK

month=2015-05/day=2015-05-10

month=2015-06/day=2015-06-14

month=2015-06/day=2015-06-15


: http://blog.csdn.net/lxw1234_com/article/details/46620997