Hive建立外部表以及分割槽
阿新 • • 發佈:2018-12-07
建立帶分割槽的外部表
建立外部表的優點是資料能夠隨時從hdfs中掛載進表中
使用分割槽的優點是能夠縮短查詢範圍
以下的樣例展示了怎樣建立外部表
CREATE EXTERNAL TABLE my_daily_report( last_update string, col_a string, col_b string, col_c string, col_d string, col_e string, col_f string, col_g string, col_h string, col_i string, col_j string) PARTITIONED BY ( par_dt string) location '/user/chenshu/data/daily';
掛載分割槽資料夾
alter table my_daily_report add partition (par_dt='20140530') location '/user/chenshu/data/daily/my_daily_report/20140530';
上面的樣例僅僅使用了一個分割槽,事實上還能夠使用多個分割槽,比方一個分割槽管理日報表,這個分割槽相應一個資料夾,在這個資料夾下還能夠有小時分割槽。用不同的資料夾存放不同小時的報表。這時,分割槽之間的關係就是資料夾樹的關係。
刪除分割槽
當然也要提供一個刪除part_dt='20140530'分割槽的方法:
alter table my_daily_report drop partition (par_dt='20140530')
drop partition會將分割槽以及資料都刪除。drop partition_spec會僅僅刪除分割槽元資料。不刪除資料。
注意,HIVE中沒有delete from語句,假設僅僅是刪除某個分割槽裡全部語句,剛好這裡能夠使用drop partition來實現。
用分割槽查詢
既然有了分割槽。假設緊要查詢該分割槽上的資料,在where中指定分割槽資料夾作為查詢條件。要快非常多
select count(*) from my_daily_report where par_dt='20140531';
推薦文章: