为什么full outer join不能使用MapJoin?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

为什么full outer join不能使用MapJoin?

老狮子 2019-01-09 17:52:14 1187

1)使用了也不会提高运行速度?
2)其他原因导致无法使用?

分享到
取消 提交回答
全部回答(3)
  • 1307430552035943
    2019-07-17 23:25:04

    MapJoin: 主要是对大表join小表的优化 如果左右表都是大表 会出现 使用了MapJoin也不会提高运行速度的情况

    0 0
  • 老狮子
    2019-07-17 23:25:04

    这个是MaxCompute MapJoin说明文档中的一个限制
    https://help.aliyun.com/document_detail/73785.html?spm=a2c4g.11174283.6.635.719c590epmvNVw
    猜想:

       只要主动放入内存,速度必然要比不主动放入内存也就是普通算法快,无论什么查询,full join也不例外;

    推论:

       MaxCompute Mapjoin限制full join使用,可能是即使提升效率但性价比不高,所以没有采用,从程序角度考虑如果不出错的情况下,应该是允许使用的,所以这个解释有点牵强;
       那可能是程序算法上Mapjoin与full join有冲突错误导致限制,这个解释稍微合理一些;
       其他未知问题。
    

    不知道友是否赞同?

    0 0
  • gylight
    2019-07-17 23:25:04

    这两个不是一个概念吧?

    Full outer join是全连接,返回左右表中的所有记录。

    MapJoin是Hive的一种优化操作,适用于小表JOIN大表的场景,这时表的JOIN操作是在Map端且在内存进行的。

    0 0
添加回答
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章