1. 程式人生 > >Hive優化之謂詞下推

Hive優化之謂詞下推

Hive優化之謂詞下推

解釋

Hive謂詞下推(Predicate pushdown)

  1. 關係型資料庫借鑑而來,關係型資料中謂詞下推到外部資料庫用以減少資料傳輸

  2. 基本思想:儘可能早的處理表達式

  3. 屬於邏輯優化,優化器將謂詞過濾下推到資料來源,使物理執行跳過無關資料

  4. 引數開啟設定: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瞭解謂詞下推名詞