hive分割槽表匯出mysql hive 分割槽表

2021-10-18 19:04:48 字數 1487 閱讀 3218

1 分割槽表

[partitioned by (col_name data_type [comment col_comment], ...)]

1.1 分割槽表

在建表時,指定了partitioned by ,這個表稱為分割槽表

partitioned by 以什麼分割槽

1.2 分割槽概念

mr: 在maptask輸出key-value時,為每個key-value計算乙個區號,同乙個分割槽的資料,會被同乙個reducetask處理

這個分割槽的資料,最終生成乙個結果檔案!

通過分割槽,將maptask輸出的key-value經過reduce後,分散到多個不同的結果檔案中!

hive: 將表中的資料,分散到表目錄下的多個子目錄(分割槽目錄)中

1.3 分割槽意義分割槽的目的是為了就資料,分散到多個子目錄中,在執行查詢時,可以只選擇查詢某些子目錄中的資料,加快查詢效率!

只有分割槽表才有子目錄(分割槽目錄)

分割槽目錄的名稱由兩部分確定: 分割槽列列名=分割槽列列值

將輸入匯入到指定的分割槽之後,資料會附加上分割槽列的資訊!

分割槽的最終目的是在查詢時,使用分割槽列進行過濾!

2 分割槽表操作

2.1 建立分割槽表

多級分割槽表,有多個分割槽字段

create external table if not exists learnwork.deptpart2(

deptno int,

dname string,

loc int

partitioned by(area string,province string)

row format delimited fields terminated by '\t';

create external table if not exists learnwork.deptpart3(

deptno int,

dname string,

loc int

partitioned by(area string)

row format delimited fields terminated by '\t'

location 'hdfs://hadoop101:9000/deptpart3';

2.2 分割槽的查詢

show partitions 表名

2.3 建立分割槽alter table 表名 add partition(分割槽欄位名=分割槽字段值) ;在hdfs上生成分割槽路徑

在mysql中metastore.partitions表中生成分割槽的元資料

直接使用load命令向分割槽載入資料,如果分割槽不存在,load時自動幫我們生成分割槽

如果資料已經按照規範的格式,上傳到了hdfs,可以使用修復分割槽命令自動生成分割槽的元資料

msck repair table 表名;

注意事項:如果表是個分割槽表,在匯入資料時,必須指定向哪個分割槽目錄匯入資料

如果表是多級分割槽表,在匯入資料時,資料必須位於最後一級分割槽的目錄

hive 分割槽表

partitioned by create table tb name name string partitioned by age int row format delimited fields terminated by t load data local inpath file path in...

hive分割槽表

partition對應於資料庫的 partition 列的密集索引 在 hive 中,表中的乙個 partition 對應於表下的乙個目錄,所有的 partition 的資料都儲存在對應的目錄中 例如 test表中包含 date 和 city 兩個 partition 則對應於date 201302...

hive 分割槽表

建立分割槽表的原因 單錶資料量隨著時間越來越大。為了避免全表掃瞄,引入分割槽。hive分割槽和mysql分割槽表的區別?hive分割槽使用表外字段,mysql使用表內字段。hive分割槽表細節?1.hive分割槽的字段是乙個偽欄位,它不會在表中真實存在,可以用來過濾查詢等 2.乙個表或者乙個分割槽可...