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...