您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“ Hive中的分區(qū)和桶是什么意思”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“ Hive中的分區(qū)和桶是什么意思”吧!
hive中的分區(qū)和桶
Hive 把表組織成“分區(qū)” Partition。 這是一種根據(jù)“分區(qū)列”(Partition column,如日期)的值對表進(jìn)行粗略劃分的機(jī)制,使用分區(qū)可以加快數(shù)據(jù)分片(Slice)的查詢速度
表和分區(qū)可以進(jìn)一步分為“桶”(Bucket)它會為數(shù)據(jù)提供額外的結(jié)果以獲得更高效率的查詢處理,例如,通過根據(jù)用戶ID來劃分桶,我們可以早所有用戶集合的隨機(jī)樣本上快速計算基于用戶的查詢。
下面以日志文件進(jìn)行考慮,日志文件中的每條記錄包含一個分區(qū),我們一般根據(jù)日期來進(jìn)行分區(qū),同一天的記錄會放在相同的區(qū)中。
分區(qū)是在創(chuàng)建表的時候用partition by 子句定義的,該子句需要定義列的列表
桶的話,可以把該表分成規(guī)定的幾個部分,每個部分是根據(jù)制定的列取模來決定的 下面我們就是根據(jù)ts來對4取模決定桶的
如下:
在我們把數(shù)據(jù)加載到分區(qū)表的時候,要顯示的指定分區(qū)值,比如我們在目錄下面有一個文件 20140418GB.txt 里面有內(nèi)容
我們將該數(shù)據(jù)加載到表logs中
現(xiàn)在來查看HDFS結(jié)構(gòu)和里面的數(shù)據(jù)
我們在eclipse中查看
但是奇怪的是,進(jìn)去里面的目錄我們可以看到
這里并沒有出現(xiàn)分桶,然后我們進(jìn)行數(shù)據(jù)查找,以分桶的形式
結(jié)果如下
這個結(jié)果包括了所有三個文件中,符合要求的記錄
我曾單獨的使用過分桶,實驗顯示,如果單獨分桶那么將會看見所分桶的各片,但是分區(qū)和分桶一起來的話,卻只能看見分區(qū)的目錄
我們是不是可以這樣理解,當(dāng)分區(qū)和分桶一起來時,分好的區(qū)是主流,我們可以看到分區(qū)中的目錄,但是分的桶,我們不再看見,結(jié)構(gòu)存在,只是不顯示
而我們進(jìn)行查找時,就可以用上了
到此,相信大家對“ Hive中的分區(qū)和桶是什么意思”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。