Hive動態分區 參數配置及語法


Hive本身是不支持動態分區的..

但動態分區是真的方便啊..不然手動維護要累死..按日期甚至小時來分區時動輒就好幾千上萬的分區..手動到哪一年去..?

想要用動態分區要先做一些設置來修改默認的配置..

set hive.exec.dynamic.partition=true;(可通過這個語句查看:set hive.exec.dynamic.partition;) 
set hive.exec.dynamic.partition.mode=nonstrict; 
SET hive.exec.max.dynamic.partitions=100000;(如果自動分區數大於這個參數,將會報錯)
SET hive.exec.max.dynamic.partitions.pernode=100000;

可以直接把上述設置項在控制台中運行一下..以后就可以自由動態分區了..

建立分區表的語法.

Drop table table_name; --先刪除表 沒有則直接建表了
CREATE TABLE table_name    --創建表
(col1 string, col2 date, col3 double) 
partitioned by (datekey date)  --可以多個字段的組合分區 
 ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' Stored AS TEXTFILE;

插入數據..

INSERT INTO TABLE table_Name

PARTITION (DateKey)

SELECT col1,col2,col3,DateKey FROM otherTable

WHERE DATEKEY IN ('2017-02-26','2013-06-12','2013-09-24')

GROUP BY col1,col2,col3,DateKey  

DISTRIBUTE BY DateKey

刪除分區:

ALTER TABLE table_Name DROP PARTITION (Datekey='2016-05-05');

以上為整理的部分關於Hive分區的資料..歡迎取閱..

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM