日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hive-分区分桶概述

發(fā)布時間:2025/3/8 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive-分区分桶概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、分區(qū)

簡介

為了對表進(jìn)行合理的管理以及提高查詢效率,Hive可以將表組織成“分區(qū)”。

分區(qū)是表的部分列的集合,可以為頻繁使用的數(shù)據(jù)建立分區(qū),這樣查找分區(qū)中的數(shù)據(jù)時就不需要掃描全表,這對于提高查找效率很有幫助。

分區(qū)是一種根據(jù)“分區(qū)列”(partition column)的值對表進(jìn)行粗略劃分的機制。Hive中每個分區(qū)對應(yīng)著表很多的子目錄,將所有的數(shù)據(jù)按照分區(qū)列放入到不同的子目錄中去。

為什么要分區(qū)?

龐大的數(shù)據(jù)集可能需要耗費大量的時間去處理。在許多場景下,可以通過分區(qū)的方法減少每一次掃描總數(shù)據(jù)量,這種做法可以顯著地改善性能。

數(shù)據(jù)會依照單個或多個列進(jìn)行分區(qū),通常按照時間、地域或者是商業(yè)維度進(jìn)行分區(qū)。比如vido表,分區(qū)的依據(jù)可以是電影的種類和評級,另外,按照拍攝時間劃分可能會得到更一致的結(jié)果。為了達(dá)到性能表現(xiàn)的一致性,對不同列的劃分應(yīng)該讓數(shù)據(jù)盡可能均勻分布。最好的情況下,分區(qū)的劃分條件總是能夠?qū)?yīng)where語句的部分查詢條件。

Hive的分區(qū)使用HDFS的子目錄功能實現(xiàn)。每一個子目錄包含了分區(qū)對應(yīng)的列名和每一列的值。但是由于HDFS并不支持大量的子目錄,這也給分區(qū)的使用帶來了限制。我們有必要對表中的分區(qū)數(shù)量進(jìn)行預(yù)估,從而避免因為分區(qū)數(shù)量過大帶來一系列問題。

Hive查詢通常使用分區(qū)的列作為查詢條件。這樣的做法可以指定MapReduce任務(wù)在HDFS中指定的子目錄下完成掃描的工作。HDFS的文件目錄結(jié)構(gòu)可以像索引一樣高效利用。

二、分桶(桶表)

簡介

桶是通過對指定列進(jìn)行哈希計算來實現(xiàn)的,通過哈希值將一個列名下的數(shù)據(jù)切分為一組桶,并使每個桶對應(yīng)于該列名下的一個存儲文件。

為什么要分桶?

在分區(qū)數(shù)量過于龐大以至于可能導(dǎo)致文件系統(tǒng)崩潰時,我們就需要使用分桶來解決問題了。

分區(qū)中的數(shù)據(jù)可以被進(jìn)一步拆分成桶,不同于分區(qū)對列直接進(jìn)行拆分,桶往往使用列的哈希值對數(shù)據(jù)打散,并分發(fā)到各個不同的桶中從而完成數(shù)據(jù)的分桶過程。

注意,hive使用對分桶所用的值進(jìn)行hash,并用hash結(jié)果除以桶的個數(shù)做取余運算的方式來分桶,保證了每個桶中都有數(shù)據(jù),但每個桶中的數(shù)據(jù)條數(shù)不一定相等。

哈希函數(shù)的選擇依賴于桶操作所針對的列的數(shù)據(jù)類型。除了數(shù)據(jù)采樣,桶操作也可以用來實現(xiàn)高效的Map端連接操作。

記住,在數(shù)據(jù)量足夠大的情況下,分桶比分區(qū),更高的查詢效率。

三、總結(jié)

分區(qū)和分桶最大的區(qū)別就是分桶隨機分割數(shù)據(jù)庫,分區(qū)是非隨機分割數(shù)據(jù)庫。

因為分桶是按照列的哈希函數(shù)進(jìn)行分割的,相對比較平均;而分區(qū)是按照列的值來進(jìn)行分割的,容易造成數(shù)據(jù)傾斜。

其次兩者的另一個區(qū)別就是分桶是對應(yīng)不同的文件(細(xì)粒度),分區(qū)是對應(yīng)不同的文件夾(粗粒度)。

注意:普通表(外部表、內(nèi)部表)、分區(qū)表這三個都是對應(yīng)HDFS上的目錄,桶表對應(yīng)是目錄里的文件

總結(jié)

以上是生活随笔為你收集整理的Hive-分区分桶概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。