2009-12-8 @ taobao
什么是MAPJOIN
MAPJOIN是HiveQL支持的一种Hint, 作用是优化两表join的性能. 其中的原理请google一下"hadoop map side join".
参考示例
SELECT /*+ MAPJOIN(x) */ x.key, x.value, y.valueFROM src1 x LEFT OUTER JOIN src y ON (x.key = y.key);
![]() |
MAPJOIN虽然能优化性能, 但并适合在所有的join场景中使用. 它仅针对一张小表(几百条记录的维表)和一张大表进行join时, 能够带来很好的优化效果. 上例中x就是小表. 小表一旦不"小", 则会导致OOM(OutOfMemory)的错误, join就会失败. |