Hive優化之謂詞下推
阿新 • • 發佈:2018-12-03
Hive優化之謂詞下推
解釋
Hive謂詞下推(Predicate pushdown)
關係型資料庫借鑑而來,關係型資料中謂詞下推到外部資料庫用以減少資料傳輸
基本思想:儘可能早的處理表達式
屬於邏輯優化,優化器將謂詞過濾下推到資料來源,使物理執行跳過無關資料
引數開啟設定:hive.optimize.ppd=true
兩種生效形式
形式1:
select a.id,a.value1,b.value2 from table1 a join (select b.* from table2 b where b.ds>='20181201' and b.ds<'20190101') c on (a.id=c.id)
最推薦形式1的方法,雖然看著非常的土,但卻是最好的方法
形式2:
select a.id,a.value1,b.value2 from table1 a
join table b on a.id=b.id
where b.ds>='20181201' and b.ds<'20190101'
使用外連線失效
select a.id,a.value1,b.value2 from table1 a
left outer join table b on a.id=b.id
where b.ds>='20181201' and b.ds<'20190101'
討論
join、left join、right join、full outer join謂詞下推生效與失效的情況
基於上述討論總結一份PPD規則表
參考資料
Hadoop 過濾,對映,謂詞下推基本概念
hive謂詞下推的失效與生效
Changelog
181203建立
181130瞭解謂詞下推名詞