hive分桶實踐

A表1億條記錄

B表1億條記錄,

A表B表通過id字段關(guān)聯(lián),直接關(guān)聯(lián)報錯,跑不動任務(wù);

現(xiàn)在對A B表分別進行分桶,然后進行關(guān)聯(lián):

主要用了hive的分桶原理,具體操作如下:

A數(shù)據(jù)重新抽到一張分桶表a_bucket,分桶是針對某一列進行桶的組織。Hive采用對列值哈希,然后除以桶的個數(shù)求余的方式?jīng)Q定該條記錄存放在哪個桶當中。在本例中是根據(jù)id分成100個桶;

B也根據(jù)id分成100個桶;

A分桶表和B分桶表關(guān)聯(lián)生成新的表a_b_detail,因為是分桶表,關(guān)聯(lián)的時候相當于將整個表切分成100個小任務(wù)進行關(guān)聯(lián),傳統(tǒng)的方式直接關(guān)聯(lián)會直接卡死,分桶后再關(guān)聯(lián)比較高效,耗時225s,這里面用到的關(guān)聯(lián)叫做SMB(Sort-Merge-Buket) Join,具體可自行百度

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容