MAPJOIN

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就会失败.

你可能感兴趣的:(hive,trace)