Hive 表分割槽

2021-09-02 16:36:06 字數 2151 閱讀 1453

基本知識:

hadoop fs -rmr 'hdfs://hdfs:';

hadoop fs -put '/user/hive/warehouse/data.txt

' 'hdfs://hdfs:/data.txt'

建立分割槽表:

外部表:

create external table if not exists employee(

id int,

name string,

dept string,

yoj int

)partitioned by (

year string

)row format delimited fields terminated by '\t'

內部表:

create table if not exists employee(

id int,

name string,

dept string,

yoj int

)partitioned by (

year string

)row format delimited fields terminated by '\t'

增加分割槽並載入資料

1、 對於外部表

<1 alter table employee add partition (year=『2013』) location 『hdfs:/hivedata/data』;      執行新增分割槽時   

hivedata

/    資料夾下的資料不會被移動。並且沒有分割槽目錄year=2013

alter table 

employee

drop partition (

year=『2013』

);     執行刪除分割槽目錄時

hivedata

/    下的資料不會被刪除

<2 

load data inpath '

hdfs:/hivedata/data

' overwrite into table 

employee

partition(year='

2013

');    

執行載入資料新增分割槽時 

hivedata

/     資料夾下的資料會被移動,並建立分割槽目錄logdate=2015-02-26,資料移動到此目錄下

alter table employee drop partition (

year='

2013

');     執行刪除分割槽目錄時,已經建立

year=

2013

分割槽目錄不會被刪除,其資料夾下的資料也不會被刪除;

2、內部表

alter table 

employee

add partition (

year=『2013』

) location 『

hdfs:/hivedata/data

』;      執行新增分割槽時   

hivedata

/    資料夾下的資料不會被移動。並且沒有分割槽目錄

year=2013

alter table employee drop partition (year=『2013』);     執行刪除分割槽時

hivedata

/    下的資料會被刪除並且連同

hivedata

/資料夾也會被刪除

load data inpath '

hdfs:/hivedata/data

' overwrite into table empl_inn  partition(year=2013);    

執行載入資料新增分割槽時 

hivedata

/     資料夾下的資料會被移動,並建立分割槽目錄

year=2013

,資料移動到此目錄下

alter table employee drop partition (

year=『2013』

);     執行刪除分割槽目錄時,已經建立

year=2013  

分割槽目錄會被刪除,其資料夾下的資料隨之會被刪除;

hive表分割槽

hive對錶有分割槽的功能。hive根據表的列屬性值 諸如日期,城市 部門對錶進行分割槽 使用分割槽,能夠很容易查詢 到資料的一部分。表或分割槽被分為 buckets 桶 以便為資料 提供額外的資料結構,該資料結構被 用於提公升 查詢的有效性。buckets 桶 的工作依賴於表中某個列的 雜湊函式值...

Hive 表分割槽

基本知識 hadoop fs rmr hdfs hdfs hadoop fs put user hive warehouse data.txt hdfs hdfs data.txt 建立分割槽表 外部表 create external table if not exists employee id ...

Hive操作表分割槽

建立分割槽表語句,使用關鍵字partition a 單分割槽建表語句 create table table name id int,content string partitioned by dt string 單分割槽表,按天分割槽,在表結構增加了dt列。以dt為資料夾區分 b 雙分割槽建表語句 ...