hive分割槽對應hadoop Hive分割槽

2021-10-13 08:43:40 字數 1454 閱讀 3173

注意:必須在表定義時指定對應的partition欄位。

一.指定分割槽

1.單分割槽

建表語句:create table day_table(id int, content string) partitioned by (dt string);

單分割槽表,按天分割槽,在表結構中存在id,content,dt三列。

以dt為資料夾區分。

2.雙分割槽

建表語句:create table day_hour_table(id int,content string) partitioned by (dt string, hour string);

雙分割槽表,按天和小時分割槽,在表結構中新增加了dt和hour兩列。

先以dt為資料夾,再以hour子檔案區分。

二.新增分割槽

新增語句:alter table table_name add [if not exists] partition partition_spec [location 'location'] partition_spec [location 'location2']...

例子:alter table day_table add partition (dt='2019-03-27',hour='20')

三.刪除分割槽

刪除語句:alter table table_name drop partition_spec,partition_spec...

注意:內部表中對應分割槽的元資料和資料都將被一併刪除。

例子:alter table day_hour_table drop partition (dt='2019-03-27',hour='21');

四.指定分割槽新增資料

新增語句:load data [local] inpath 'filepath' [overwrite] into table tablename [partition(partcol=val1,partcol2=val2...)]

例子:1.load data inpath '/usr/pv.txt' into table day_hour_table partition (dt='2019-03-27', hour='21');

2.load data local inpath '/user/zhen/*' into table day_hour partition(dt='2019-03-27');

注意:當資料被載入至表中時,不會對資料進行任何轉換。load操作只是將資料複製至hive表對應的位置上。資料載入是會在表下自動建立乙個目錄。

五.查詢

查詢語句:select day_table.* from day_table where day_table.dt>='2019-03-27';

注意:分割槽表的意義在於優化查詢。查詢時盡量利用分割槽字段。如果不使用分割槽字段,就會全表掃瞄。

六.檢視表分割槽資訊

語句:show partitions day_hour_table;

hive 分割槽 hive 分割槽概念 0323

1 hive 分割槽表 在hive select查詢中一般會掃瞄整個表內容,會消耗很多時間做沒必要的工作。有時候只需要掃瞄表中關心的一部分資料,因此建表時引入了partition概念。分割槽表指的是在建立表時指定的partition的分割槽空間。hive可以對資料按照某列或者某些列進行分割槽管理,所...

HIVE分割槽,靜態分割槽,動態分割槽

分割槽可以大大提公升hive的效能,這裡就要提到數倉的分層 原始資料層,儲存原始收集的資料 數倉明細層,裡面做的是轉換和分析,裡面包含部分的資料清洗的過程 數倉服務層,對外業務的處理,如維度轉 鍵 身份證清洗 會員註冊 清晰 字段合併 空值處理 髒資料處理 ip清晰轉換等 最終業務層 適合做增量表,...

HIve學習 Hive分割槽修改

如何修改hive的分割槽 hive讀寫模式 hive分割槽的意義是避免全表掃瞄,從而提高查詢效率。預設使用全表掃瞄。partitioned by columnname columntype comment column comment 1 hive的分割槽名區分大小寫 2 hive的分割槽欄位是乙個...