蜂巢倾斜加入问题 第一季度:第二季度

我对蜂巢中的倾斜连接有一些疑问。

1.when何时将使用通用联接来处理数据,因为我仅在设置打击属性后才看到地图联接

  • 设置hive.optimize.skewjoin = true;
  • 设置hive.mapjoin.smalltable.filesize = 2;

2。为什么dosn`t偏斜连接与左连接一起工作

下面是表和sql:

tmp.skew_large_table 字段 imei,imsi,mac,phone,data_date;
    total rows:290,0808
    skew key : 868407035454956 670081
-----------
tmp.test_skew_small_table  字段  imei,package,data_date
    total rows:857,6164
    skew key : 868407035454956  10461
-----------

sql:
select a.*,b.*
    from tmp.skew_large_table a
    join
    tmp.test_skew_small_table b
    on a.imei=b.imei;
wh1469 回答:蜂巢倾斜加入问题 第一季度:第二季度

阅读hive的源代码之后。我得到了答案

第一季度:

hive.mapjoin.smalltable.filesizehive.auto.convert.join不适用于歪斜连接

对于每个skey join,hive将使用map-joins来处理它。

第二季度

外部连接不会触发倾斜连接,源代码显示出打击

// We are trying to adding map joins to handle skew keys,and map join righ
// now does not work with outer joins  
    if (!GenMRSkewJoinProcessor.skewJoinEnabled(parseCtx.getConf(),joinOp)) {
      return;
    }
本文链接:https://www.f2er.com/3098230.html

大家都在问