hive的表連接中較小的表放在前面

第一次理解:

對(duì)于先掃描大表還是先掃描小表會(huì)提高效率。(在這里假設(shè)小表m條數(shù)據(jù),大表n條數(shù)據(jù),m<n)
第一反應(yīng)是:一樣的。因?yàn)樾”碓谇暗脑?,大表的每一條數(shù)據(jù)都與小表的第一條數(shù)據(jù)比對(duì),是n次,小表一共m條數(shù)據(jù),所以此方案一共需要比對(duì)n*m次。同理,大表在前的話,小表的m條數(shù)據(jù)分別與大表的第一條數(shù)據(jù)比對(duì),是m次,大表一共n條數(shù)據(jù),所以共比對(duì)m*n次。

大表和小表分別在前

然而,后來(lái)發(fā)現(xiàn)忽略了一點(diǎn),就是前面那個(gè)表的數(shù)據(jù)要加載到map中。這樣的話,小表在前時(shí)共需要次數(shù)為:m+m*n,而大表在前時(shí)共需要加載次數(shù)為:n+m*n。又∵m<n,所以先掃描小表會(huì)提高效率。

第二次理解

hive操作是map端的join,小表先放入setup,然后大表切片,可能有多個(gè)切片在不同節(jié)點(diǎn)運(yùn)行。
如果map緩存大,隨著maptask增多,drive端壓力太大
(緩存大本身就占用珍貴的網(wǎng)絡(luò)資源)

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

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

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