如果用上述的靜態(tài)分區(qū),插入的時候必須首先要知道有什么分區(qū)類型,而且每個分區(qū)寫一個load data,太煩人。
使用動態(tài)分區(qū)可解決以上問題,其可以根據(jù)查詢得到的數(shù)據(jù)動態(tài)分配到分區(qū)里。其實動態(tài)分區(qū)與靜態(tài)分區(qū)區(qū)別就是不指定分區(qū)目錄,由系統(tǒng)自己選擇。
0)開啟動態(tài)分區(qū)功能
set hive.exec.dynamic.partition=true;//使用動態(tài)分區(qū)
set hive.exec.dynamic.partition.mode=nonstrict;//無限制模式
如果模式是strict,則必須有一個靜態(tài)分區(qū),且放在最前面。
1)建表
創(chuàng)建靜態(tài)分區(qū)表與動態(tài)分區(qū)表在hql語句上沒有本質區(qū)別,主要區(qū)別在于mode的設置。
create table par_tab (name string,nation string)
partitioned by (sex string,dt string)
row format delimited fields terminated by ',';
2)填入數(shù)據(jù)
load data local inpath '/home/hadoop/uploadfile/pgc/par_tab_dt.txt' into table par_tab_muilt partition (sex='man',dt);








暫無數(shù)據(jù)