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

Posted 2458697069

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式系统如何实现垮库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,这一步必不可少。

 

以上是关于分布式系统如何实现垮库join的主要内容,如果未能解决你的问题,请参考以下文章

分布式系统设计应考虑的问题

:分布式系统如何实现服务注册发现

Join,CountDownLatch,CyclicBarrier,Semaphore和Exchanger

分布式系统中如何实现临界资源的互斥访问?

什么是链路追踪?分布式系统如何实现链路追踪?

什么是链路追踪?分布式系统如何实现链路追踪?