1. 程式人生 > >Hive優化--分割槽表與分桶表

Hive優化--分割槽表與分桶表


1.  根據業務特徵建立分割槽表

使用分割槽表能有效地分隔資料,分割槽條件作為查詢條件時,減少掃描的資料量,加快查詢的效率。
    如果業務資料有明顯的時間、區域等維度的區分,同時有較多的對應維度的查詢條件時,建議按照相應維度進行一級或多級分割槽。

2.  根據業務特徵建立分桶表

分桶的目的是便於高效取樣和為Bucket MapJoin及SMB Join做資料準備。
對於Hive表有按照某一列進行取樣稽核的場景,建議以該列進行分桶。資料會以指定列的值為key雜湊到指定數目的桶中,從而支援高效取樣。
對於對兩個或多個數據量較大的Hive表按照同一列進行Join的場景,建議以該列進行分桶。當Join時,僅載入部分桶的資料到記憶體,避免OOM。