当前位置:   article > 正文

【硬刚Hive】Hive高级(2):优化(2) 表的优化_hive 左右表关联 多的放左侧

hive 左右表关联 多的放左侧

1 小表大表 Join(MapJOIN)

将 key 相对分散,并且数据量小的表放在 join 的左边,可以使用 map join 让小的维度表先进内存。在 map 端完成 join。

实际测试发现:新版的 hive 已经对小表 JOIN 大表和大表 JOIN 小表进行了优化。小表放在左边和右边已经没有区别。

案例实操

1)需求介绍

测试大表 JOIN 小表和小表 JOIN 大表的效率

2)开启 MapJoin 参数设置

(1)设置自动选择 Mapjoin

set hive.auto.convert.join = true; 默认为 true

(2)大表小表的阈值设置(默认 25M 以下认为是小表):

set hive.mapjoin.smalltable.filesize = 25000000;

3)MapJoin 工作机制

4)建大表、小表和 JOIN 后表的语句 

  1. // 创建大表
  2. create table bigtable(id bigint, t bigint, uid string, keyword string,
  3. url_rank int, click_num int, click_url string) row format delimited
  4. fields terminated by '\t';
  5. // 创建小表
  6. create table smalltable(id bigint, t
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/148544
推荐阅读
相关标签
  

闽ICP备14008679号