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