hive表分割槽

2021-07-25 21:43:49 字數 1887 閱讀 4938

hive對錶有分割槽的功能。

hive根據表的列屬性值

,諸如日期,城市

,部門對錶進行分割槽

,使用分割槽,

能夠很容易查詢

到資料的一部分。

表或分割槽被分為

buckets(桶

),以便為資料

提供額外的資料結構,

該資料結構被

用於提公升

查詢的有效性。

buckets(桶

)的工作依賴於表中某個列的

雜湊函式值。

例如,乙個名為tab1的表包含員工

的資訊,如id、名稱、部門和yoj(即

加入年份)。假設您需要檢索所有

在2023年加入

的員工的詳情。

乙個方法是

查詢搜尋整個表的資訊。然而,如果你

根據年份將

員工資料

進行分割槽並將其儲存在乙個單獨的檔案中,它

將會減少查詢處理的時間。下面的例子顯示了如何分割槽檔案及其資料:

以下檔案包含employeedata表:

/tab1/employeedata/file1,

包含資料如下:

id, name, dept, yoj

1, gopal, tp, 2012

2, kiran, hr, 2012

3, kaleel,sc, 2013

4, prasanth, sc, 2013

將以上資料通過年份劃分為2個檔案,

/tab1/employeedata/2012/file2

,包含資料如下: 1、

gopal,tp,2023年

2、kiran、hr,2023年

/tab1/employeedata/2013/file3

,包含資料如下:

3, kaleel,sc, 2013

4, prasanth, sc, 2013

我們通過

修改表結構為

表新增分割槽。

假設我們有乙個

包含id、名稱、工資、名稱、部門、yoj

等字段的

員工表,語法如下:

alter table table_name add [if not exists] partition partition_spec

[location 'location1'] partition_spec [location 'location2'] ...;

其中partition_spec:

: (p_column = p_col_value, p_column = p_col_value, ...)

例子:我們為員工表新增以年份為分割槽的分割槽:

hive> alter table employee

add partition (year=』2013』) 

location '/2012/part2012';

語法如下:

alter table table_name partition partition_spec rename to partition partition_spec;

例子:hive> alter table employee partition (year=』

2013』) 

rename to partition (yoj=』

2013

』);

語法如下:

alter table table_name drop [if exists] partition partition_spec, partition partition_spec,...;

例子:hive> alter table employee drop [if exists]

partition (year=』20

13』);

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 表分割槽

基本知識 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 雙分割槽建表語句 ...