必須在表定義時建立partition
a、單分割槽建表語句:create table day_table (id int, content string) partitioned by (dt string);單分割槽表,按天分割槽,在表結構中存在id,content,dt三列。
以dt為資料夾區分
b、 雙分割槽建表語句:create table day_hour_table (id int, content string) partitioned by (dt string, hour string);雙分割槽表,按天和小時分割槽,在表結構中新增加了dt和hour兩列。
先以dt為資料夾,再以hour子資料夾區分
新增分割槽表語法(表已建立,在此基礎上新增分割槽):alter table table_name add
partition_spec [ location 'location1' ]
partition_spec [ location 'location2' ] ...
alter table day_table add
partition (dt='2008-08-08', hour='08')
location '/path/pv1.txt'
刪除分割槽語法:alter table table_name drop
partition_spec, partition_spec,...
使用者可以用 alter table drop partition 來刪除分割槽。分割槽的元資料和資料將被一併刪除。例:
alter table day_hour_table drop partition (dt='2008-08-08', hour='09');
資料載入進分割槽表中語法:
load data [local] inpath 'filepath' [overwrite] into table tablename [partition (partcol1=val1, partcol2=val2 ...)] 例:
load data inpath '/user/pv.txt' into table day_hour_table partition(dt='2008-08- 08', hour='08'); load data local inpath '/user/hua/*' into table day_hour partition(dt='2010-07- 07');當資料被載入至表中時,不會對資料進行任何轉換。load操作只是將資料複製至hive表對應的位置。資料載入時在表下自動建立乙個目錄
基於分割槽的查詢的語句
:select day_table.* from day_table where day_table.dt>= '2008-08-08';
檢視分割槽語句:
hive> show partitions day_hour_table; ok dt=2008-08-08/hour=08 dt=2008-08-08/hour=09 dt=2008-08-09/hour=09
hive建立分割槽表
靜態分割槽去掉源資料分割槽列後執行 記得指定ymd 2019 10 10 1.建立分割槽表 create tabletemp pilesmallint,mp smallint,carownerint,hmsint partitioned by ymd int row format delimited...
Hive建立分割槽表
如下 1 在hive上建立乙個外部表,四個字段,ip位址,專案名稱,ctime 建立時間,content 型別為struct.struct可以理解為hive的自定義型別,格式為struct.本例中content型別為struct.其中又巢狀了乙個struct型別的字段properties 2part...
hive 分割槽表 Hive的DDL分割槽表建立
1.單分割槽表 建立表t user,指定分割槽hive xiaoliu create table t user id int,name string partitioned by country string row format delimited fields terminated by xia...