0
我想知道哪一個是優化的HIVE的最佳方式(0.12)查詢這三種可能的候選人中連接兩個表(也可能明白爲什麼):優化加入HIVE查詢:C
SELECT * FROM a join b ON (a.id = b.id) WHERE b.dt = "2014-09-01";
或
SELECT * FROM a JOIN b ON (a.id = b.id AND b.dt = "2014-09-01") ;
或
SELECT * FROM a JOIN (
SELECT * FROM b where dt = "2014-09-01") c
ON a.id = c.id ;
我對錶如何存儲和分區無法控制,所以我的問題更多地是關於 一般最佳實踐比特定情況。我知道a.id = b.id只有在b.dt ='2014-09-01'時纔有可能,所以我想限制可以加入的數據以提高速度(b是一個巨大的表格) 。
閱讀HIVE文檔我明白,通常最好a是最小的表,b是(非常)大的表;但我不明白上面顯示的不同查詢在性能方面的表現如何。
如果還有其他方法我可以使用我也想知道它。
桌子有多大,是否適合記憶? – www 2014-10-16 14:08:21
我會說,我正在使用的這個特殊功能,一般情況下不會,他們不會。 – lucacerone 2014-10-16 14:18:02