• /*+streamtable(s)*/这个标志在进行多表关联操作时候加进去,会达到显式提醒hive哪一个是大表,虽然你把大表放在最前面,虽然hive是从左往右执行,加上这个标志就会起到优化效果,数据量大的时候务必要做些优化,因为数据处理在效率方面也是不可或缺的一部分。
    •   例子:SELECT /*+streamtable(s)*/  * FROM  A LEFT JOIN B ON A.ID=B.ID;
  • select /*+MAPJOIN(d) /from  a join b on a.id=b.id;
    • 这个标记可以在$HOME/.hiverc文件中添加配置:set hive.auto.convert.join=true;作用就是,把一张表加载到内存,在map端进行join,当然小表也是有一个界限的,这个界限可以自己设置,当然也是在$HOME/.hiverc文件中配置:hive.mapjoin.smalltable.filesize=25000000;
 posted on 2019-01-17 15:24  天下熙攘皆为利往  阅读(585)  评论(0编辑  收藏  举报