当有多个斜键时,hive斜连接优化的细节



有三个问题针对Hive斜连接优化的一些细节:

问题1

在https://cwiki.apache.org/confluence/display/Hive/Skewed+Join+Optimization中,我们知道hive斜连接优化的基本思想…但有些细节让我很困扰:

例如:

select A.id from A join B on A.id = B.id

在tableA中,有三个歪斜键:id=1, id=2, id=3,其他键均匀分布,会启动4个MR job吗?

job 1处理等分布的key;

job 2处理歪斜键id=1;

job 3处理歪斜键id=2;

job 4处理歪斜键id=3;

对吗?谢谢。

问题2

如我们所知,斜连接优化的关键是我们可以使用映射连接处理斜连接键,如1,2,3。那么,如果这不符合映射连接条件,它会退回到普通连接吗?

问题3

默认设置为:hive.skewjoin。key= 100000,对于实际查询来说通常太小。是否有可能动态地决定倾斜连接的触发条件,例如基于JVM堆大小和倾斜表的总行数?

问题1:不是4个作业,而是4个reducer,每个reducer处理一个唯一的键

相关内容

  • 没有找到相关文章

最新更新