hive在执行过程中是分多个stage执行的,stage越少效率越高,因此我们需要减少join的数量,优化hql
注意点:不能再where语句中使用列别名
join优化:
1.hive在对每行记录进行连接操作时,它会尝试将其他表缓冲存起来,然后扫描最后那个表进行计算。因此用户需要保证连续查询中的表的大小从左到右依次增加
2.map-side JOIN
如果所有表中只有一张表是小表,那么可以在最大的表通过mapper的时候将小表完全放到内存中。
在运行的时候可以启动优化:
set hive.auto.convert.join=true;
也可以设置优化表的大小:
hive.mapjoin.smalltable.filessize=250000字节
hive 学习
最新推荐文章于 2025-06-01 20:57:16 发布