Hive調(diào)優(yōu)

1. limit 語句快速出結(jié)果

一般情況下浩螺,Limit語句還是需要執(zhí)行整個查詢語句,然后再返回部分結(jié)果桨菜。

有一個配置屬性可以開啟豁状,避免這種情況---對數(shù)據(jù)源進行抽樣

hive.limit.optimize.enable=true --- 開啟對數(shù)據(jù)源進行采樣的功能

hive.limit.row.max.size --- 設(shè)置最小的采樣容量

hive.limit.optimize.limit.file --- 設(shè)置最大的采樣樣本數(shù)

缺點:有可能部分數(shù)據(jù)永遠不會被處理到
2.并行執(zhí)行
set hive.exec.parallel=true,可以開啟并發(fā)執(zhí)行
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; -- 執(zhí)行前進行小文件合并 2)增加map數(shù)

3.執(zhí)行順序

3.1 sql語句定義順序

(1) SELECT (2)DISTINCT <select_list>
(3)FROM <left_table>
(4)<join_type> JOIN <right_table>
(5)    ON <join_condition>
(6) WHERE <where_condition>
(7) GROUP BY <group_by_list>
(8) WITH {CUBE| ROLLUP}
(9) HAVING <having_condition>
(10) ORDER BY <order_by_condition>
(11) LIMIT <limit_number>

3.2 實際執(zhí)行順序

(1)FROM <left_table>
(2)ON <join_condition>
(3)<join_type> JOIN <right_table>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)WITH {CUBE| ROLLUP}
(7)HAVING <having_condition>
(8) SELECT 
(9)DISTINCT <select_list>
(10)ORDER BY <order_by_condition>
(11)LIMIT <limit_number>

可以看到,一共有十一個步驟倒得,最先執(zhí)行的是FROM操作替蔬,最后執(zhí)行的是LIMIT操作。每個操作都會產(chǎn)生一個虛擬表屎暇,該虛擬表作為一個處理的輸入,看下執(zhí)行順序:

(1) FROM:對FROM子句中的左表<left_table>和右表<right_table>執(zhí)行笛卡兒積驻粟,產(chǎn)生虛擬表VT1;
(2) ON: 對虛擬表VT1進行ON篩選根悼,只有那些符合<join_condition>的行才被插入虛擬表VT2;
(3) JOIN: 如果指定了OUTER JOIN(如LEFT OUTER JOIN、RIGHT OUTER JOIN)蜀撑,那么保留表中未匹配的行作為外部行添加到虛擬表VT2挤巡,產(chǎn)生虛擬表VT3。如果FROM子句包含兩個以上的表酷麦,則對上一個連接生成的結(jié)果表VT3和下一個表重復(fù)執(zhí)行步驟1~步驟3矿卑,直到處理完所有的表;
(4) WHERE: 對虛擬表VT3應(yīng)用WHERE過濾條件,只有符合<where_condition>的記錄才會被插入虛擬表VT4;
(5) GROUP By: 根據(jù)GROUP BY子句中的列沃饶,對VT4中的記錄進行分組操作母廷,產(chǎn)生VT5;
(6) CUBE|ROllUP: 對VT5進行CUBE或ROLLUP操作,產(chǎn)生表VT6;
(7) HAVING: 對虛擬表VT6應(yīng)用HAVING過濾器糊肤,只有符合<having_condition>的記錄才會被插入到VT7;
(8) SELECT: 第二次執(zhí)行SELECT操作琴昆,選擇指定的列,插入到虛擬表VT8中;
(9) DISTINCT: 去除重復(fù)馆揉,產(chǎn)生虛擬表VT9;
(10) ORDER BY: 將虛擬表VT9中的記錄按照<order_by_list>進行排序操作业舍,產(chǎn)生虛擬表VT10;
(11) LIMIT: 取出指定街行的記錄,產(chǎn)生虛擬表VT11升酣,并返回給查詢用戶

https://www.iteye.com/blog/daizj-2289981

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舷暮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子噩茄,更是在濱河造成了極大的恐慌下面,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巢墅,死亡現(xiàn)場離奇詭異诸狭,居然都是意外死亡券膀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門驯遇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芹彬,“玉大人,你說我怎么就攤上這事叉庐∈姘铮” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵陡叠,是天一觀的道長玩郊。 經(jīng)常有香客問我,道長枉阵,這世上最難降的妖魔是什么译红? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮兴溜,結(jié)果婚禮上侦厚,老公的妹妹穿的比我還像新娘。我一直安慰自己拙徽,他們只是感情好刨沦,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著膘怕,像睡著了一般想诅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上岛心,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天来破,我揣著相機與錄音,去河邊找鬼忘古。 笑死讳癌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的存皂。 我是一名探鬼主播晌坤,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼旦袋!你這毒婦竟也來了骤菠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤疤孕,失蹤者是張志新(化名)和其女友劉穎商乎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祭阀,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡鹉戚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年鲜戒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抹凳。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡遏餐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赢底,到底是詐尸還是另有隱情失都,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布幸冻,位于F島的核電站粹庞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏洽损。R本人自食惡果不足惜庞溜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碑定。 院中可真熱鬧强缘,春花似錦、人聲如沸不傅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽访娶。三九已至,卻和暖如春觉阅,著一層夾襖步出監(jiān)牢的瞬間崖疤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工典勇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劫哼,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓割笙,卻偏偏與公主長得像权烧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子伤溉,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容