有三个问题针对关于Hive斜连接优化的一些细节:
问题1
在https://cwiki.apache.org/confluence/display/Hive/Skewed+Join+Optimization中,我们了解了关于蜂巢倾斜连接优化的基本思想。但是有一些细节困扰着我:
例如:
在A.id = B.id上从A连接B中选择B.id
in tableA,有三个倾斜键: id=1、id=2、id=3,其他密钥分布均匀,它会启动4个jobs吗?
工作1处理平均分配的密钥;
工作2处理偏键id=1;
工作3处理偏键id=2;
工作4处理偏键id=3;
是这样吗?非常感谢。
问题2
正如我们所知道的,关于斜连接优化的关键是,我们可以使用映射连接来处理斜连接键,例如1、2、3。因此,如果这不符合map连接条件,那么它会回到普通连接吗?
问题3
默认设置为: hive.skewjoin.key= 100000,它通常太小,不适合实际查询。是否可以根据JVM堆大小和斜交表的总行数动态确定斜连接的触发条件?
发布于 2014-12-17 09:41:53
问题1:不是4个作业,而是4个减速器,每个都处理一个唯一的键。
https://stackoverflow.com/questions/24819499
复制相似问题