分布式系统如何实现垮库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,这一步必不可少。

 

posted @ 2018-04-04 15:30  2458697069  阅读(348)  评论(0编辑  收藏  举报