291294878

2018-10-18   阅读量: 912

大数据 Hive

HIVE join的三种方式

扫码加入数据分析学习群

1.MapJoin

mapJoin的主要意思就是,当连接的两个表是一个比较小的表和一个特别大的表的时候,把比较小的table直接放到内存中去,然后再对比较大的表格进行map操作。map端join的优势就是在于没有shuffle。而且在hive1.2.0之后只需设置

set hive.auto.convert.join=true;

set hive.mapjoin.smalltable.filesize=300000000;  

    hive就会自动的识别比较小且小于下面阈值的表,继而用mapJoin来实现两个表的联合。
2.Common Join

common join也叫做shuffle join,reduce join操作。这种情况下两个table的大小相当,但是又不是很大的情况下使用的。具体流程就是在map端进行数据的切分,一个block对应一个map操作,然后进行shuffle操作,把对应的block shuffle到reduce端去,再逐个进行联合。
3.SMB Join

smb是指sort merge bucket操作,首先进行排序,继而合并,然后放到所对应的bucket中去,bucket是hive中和分区表类似的技术,就是按照key进行hash,相同的hash值都放到相同的bucket中去。首先进行分桶,再join会大幅度提升性能。在联合的时候,是table1中的一小部分和table1中的一小部分进行联合,table联合都是等值连接,相同的key都放到了同一个bucket中去了,那么在联合的时候就会大幅度的减小无关项的扫描。

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 1 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子