在hive調優裡面,經常會問到乙個很小的表和乙個大表進行join,如何優化。
shuffle 階段代價非常昂貴,因為它需要排序和合併。減少 shuffle 和 reduce 階段的代價可以提高任務效能。
mapjoin通常用於乙個很小的表和乙個大表進行join的場景,具體小表有多小,由引數hive.mapjoin.smalltable.filesize來決定,該引數表示小表的總大小,預設值為25000000位元組,即25m。
hive0.7之前,需要使用hint提示 /*+ mapjoin(table) */才會執行mapjoin,否則執行common join,但在0.7版本之後,預設自動會轉換map join,由引數hive.auto.convert.join來控制,預設為true.
假設a表為一張大表,b為小表,並且hive.auto.convert.join=true,那麼hive在執行時候會自動轉化為mapjoin。
mapjoin分為兩個階段:
2020大資料面試題真題總結(附答案)
深入**order by,sort by,distribute by,cluster by
hive調優,資料工程師成神之路
資料質量那點事
你真的了解全量表,增量表及拉鍊表嗎?
緩慢變化維(scd)常見解決方案
全方位解讀星型模型,雪花模型及星座模型
sqoop or datax
left join(on&where)
你們公司還在用sparkonyan嗎?
大廠高頻面試題-連續登入問題
朋友面試資料研發崗遇到的面試題
資料倉儲分層架構
clickhouse實踐篇-sql語法
clickhouse實踐篇-表引擎
簡單聊一聊大資料學習之路
朋友面試資料專家崗遇到的面試題
hadoop快速入門
數倉工程師的利器-hive詳解
olap引擎—kylin介紹
hbase從入門到入坑
kafka
datax-資料抽取同步利器
spark資料傾斜解決方案
spark統一記憶體管理機制
資料治理之元資料管理
小表驅動大表
類似迴圈巢狀。for int i 5 如果小的迴圈在外層,對於資料庫連線來說就只連線5次,進行5000次操作,如果1000在外,則需要進行1000次資料庫連線,從而浪費資源,增加消耗。這就是為什麼要小表驅動大表。在tb dept bigdata表中插入100條資料,在tb emp bigdata表中...
Hive資料傾斜案列(大表join大表)
使用者軌跡工程的效能瓶頸一直是etract track info,其中耗時大戶主要在於trackinfo與pm info進行左關聯的環節,trackinfo與pm info兩張表均為gb級別,左關聯 塊如下 from trackinfo a left outer join pm info b on ...
MySQL 小表驅動大表
小表驅動大表 準備兩站表 create table student id int 11 notnull,no varchar 20 default null name varchar 20 default null primary key id engine innodb default chars...