hive表型別 桶表 分割槽表

2021-08-11 06:28:52 字數 1238 閱讀 9750

hive表型別 ----

桶表、

桶表是對資料進行雜湊取值,然後放到不同檔案中儲存。

建立表create table t_bucket(id string) clustered by(id) into 3 buckets;載入資料

set hive.enforce.bucketing = true;

insert into table t_bucket select id from test;

insert overwrite table t_bucket select id from test;

資料載入到桶表時,會對字段取hash值,然後與桶的數量取模。把資料放到對應的檔案中。

注意:物理上,每個桶就是表(或分割槽)目錄裡的乙個檔案

乙個作業產生的桶(輸出檔案)和reduce任務個數相同

分割槽表、
分割槽可以理解為分類,通過分類把不同型別的資料放到不同的目錄下。

分類的標準就是分割槽字段,可以乙個,也可以多個。

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

建立: create table t6_partition(

id int,

name string,

birthday date,

online boolean

) partitioned by(dt date comment "partition field day time");

檢視分割槽:

show partitions t6_partition;

增加分割槽:

alter table t6_partition add partition(dt="2017-07-20");

刪除分割槽:

alter table t6_partition drop partition(dt="2017-07-20");

如果有多個統計維度的時候,可以採用多個分割槽來設定

create table t6_partition_1(

id int,

name string,

birthday date,

online boolean

) partitioned by(year int, class string);

HIVE 表 分割槽表 分桶表

hive中表 1.managed table 託管表。刪除表時,資料也刪除了。2.external table 外部表。刪除表時,資料不刪。hive命令 建立表,external 外部表 hive create external table if not exists t2 id int,name ...

Hive分割槽表,動態分割槽,分桶表

分割槽針對的是資料的儲存路徑 分桶針對的是資料檔案 對已經分好類的檔案匯入靜態分割槽 create table tb p order oid int dt string cost double partitioned by mot string,day string row format delim...

Hive分割槽表與分桶

在hive select查詢中,一般會掃瞄整個表內容,會消耗很多時間做沒必要的工作。分割槽表指的是在建立表時,指定partition的分割槽空間。分割槽語法 分割槽表操作增加分割槽 刪除分割槽 alter table employees drop ifexists partition country...