分布式系统如何实现垮库join

========
分布式系统如何实现垮库join:
1.小表做广播 look up join,用索引读取大表。
2.如果两个表都很大:1)先按照join的key读取两个表(比如走索引),再merge;2.按照join的key将数据shuffle到多个节点计算。
3.F1 论文里讲了另一种方法,表之间可以建立层级关系,父子表之间公用相同的 primary key prefix,这样不同的 table 中具有相同 pk 前缀的 row 会存放在相邻的位置, 如果按照这些 key 做 inner join,可以直接顺序 scan。不过这个需要特定的存储模型以及和业务相关的 schema 设计。
========

在hive中

按join的阶段不同,可分为reduce阶段的jion(叫command join),在map阶段jion(叫map join)

https://www.cnblogs.com/yyy-blog/p/7077481.html   这篇博文写得挺好,其中有hivejoin过程的图解。大数据相关技术中基本都有map,shuffle,reduce过程。

hive join的原理和机制

在map阶段,必须做的一步是将数据转换成kw,这一步必不可少。

 

转载于:https://www.cnblogs.com/luckyStone/p/8717480.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值