(一)二者的區別
(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...