大資料之hive分割槽表和分桶表的區別

2021-09-27 01:31:02 字數 681 閱讀 9033

(一)二者的區別

(1)分割槽和分桶都是細化資料管理,但是分割槽表是手動新增區分,由於hive是讀模式,所以對新增進分割槽的資料不做模式校驗。分桶表的資料時按住某些分桶字段進行hash雜湊 相乘的多個檔案,所以資料的準確性高很多

(2)分割槽表是指按照資料表的某列或某些列分為多個區,區從形式上可以理解為資料夾

(3)分桶是相對分割槽進行更細粒度的劃分。分桶將整個資料內容按照某列屬性值的hash值進行區分,如要按照name屬性分為3個桶,就是對name屬性值的hash值對3取摸,按照取模結果對資料分桶。如取模結果為0的資料記錄存放到乙個檔案,取模為1的資料存放到乙個檔案,取模為2的資料存放到乙個檔案

(二)歸納總結兩者的區別:

(1)從表現形式上:

分割槽表是乙個目錄,分桶表是檔案

(2)從建立語句上:

分割槽表使用partitioned by 子句指定,以指定欄位為偽列,需要指定字段型別

分桶表由clustered by 子句指定,指定欄位為真實字段,需要指定桶的個數

(3)從數量上:

分割槽表的分割槽個數可以增長,分桶表一旦指定,不能再增長

(4)從作用上:

分割槽避免全表掃瞄,根據分割槽列查詢指定目錄提高查詢速度

分桶儲存分桶查詢結果的分桶結構(資料已經按照分桶字段進行了hash雜湊)。

分桶表資料進行抽樣和join時可以提高mr程式效率

HIVE 表 分割槽表 分桶表

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

Hive分割槽表與分桶

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

HIve中的分割槽表和分桶表

匯入資料的四種方式 1 將本地的資料匯入到hive中 load data local inpath root tes.txt into table test.usr 2 從hdfs集群匯入資料 load data inpath hdfs node01 9000 user tes.txt into t...