greenplum 两表关联 重分布 广播

简介: 假设需要两张表A,B关联,其中A表中关联键不是分布键,那么对于a表而言就会发生如下两种情况 1 广播 2  重分布 分布式的关联有两种 单库关...

假设需要两张表A,B关联,其中A表中关联键不是分布键,那么对于a表而言就会发生如下两种情况

1 广播

2  重分布


分布式的关联有两种

单库关联:分布键和关联键一致,只需要在单个库关联后得到结果即可

跨库关联:关联键和分布键不一致,数据重新分布,转换为单库关联,从而实现表的关联


测试表
表名 字段 分布键 数量
A ID1,ID2 ID1 M
B ID1,ID2 ID1 N



考虑几种连接方式

内连接

1、分布键与关联键一致,单库连接

SELECT * FROM A,B WHERE A.ID1=B.ID1;

2、一张表的分布键与关联键不一致

SELECT * FROM A,B WHERE A.ID1 = B.ID2;

首先第一点b表分布键与关联键不一致

考虑 将 b 表按照 id2 重分布一遍则数据量为N
(其实还可以将b表广播z份,数据量为N*z,所以就可以判断出,b表最多重分布)
将a广播z份,则数据为M*z

就是要比较两者产生的数据量大小,如果b大,则让a广播,如果b小,则rang b重分布


3、两张表的分布键与关联键不一致

select * from a,b where a.id2=b.id2;

重分布: M+ N

某个广播 min(M,N)*Z

同样比较两者的大小


左连接

1、分布键与关联键一致,单库连接

2、一张表的分布键与关联键不一致

select * from a left join b on a.id1=b.id2;


左边不能广播,而且左表关联键为分布键,那么对于这个连接,只能是b表操作,b表重分布为N,b表广播为N*z

数据量为N

select * from a left join b on a.id2=b.id;

左连接,左表不能被广播,那么

1、a表重分布  M
2、将b表广播,n*z





3、两张表的分布键与关联键不一致


select * from a left join b on a.id2=b.id2;

还有两种方式

将表A与表B都按照id2字段将数据重分布一遍,数据量M+N

表A不能广播,只能将B,代价为N*z



全连接

1、关联键为分布键,单库连接

select * from a full outer join b where a.id=b.id;

2、一张表的分布键与关联键不一致

select *  from a full outer join b where a.id=b.id2;

两者都不能被广播,那么只能为重分布

只能为 N

3、select * from a full outer join b where a.id2=b.id2;

将两张表重分布 M+N   
目录
相关文章
|
5天前
|
负载均衡 算法 数据中心
网络中的链路聚合是什么意思?
【10月更文挑战第12天】
12 0
网络中的链路聚合是什么意思?
|
3月前
|
SQL 存储 开发者
云架构数据倾斜问题之聚合操作导致数据膨胀如何解决
云架构数据倾斜问题之聚合操作导致数据膨胀如何解决
|
4月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在进行DWS层的实时聚合计算时,遇到多次更新同一个字段的情况,该如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
存储 NoSQL 中间件
软件体系结构 - 数据分片
【4月更文挑战第20天】软件体系结构 - 数据分片
75 15
|
5月前
|
存储 缓存 NoSQL
软件体系结构 - 数据分片(1)哈希分片
【4月更文挑战第20天】软件体系结构 - 数据分片(1)哈希分片
142 8
|
分布式计算 负载均衡 算法
Flink---5、聚合算子、用户自定义函数、物理分区算子、分流、合流
Flink---5、聚合算子、用户自定义函数、物理分区算子、分流、合流
|
负载均衡 监控 定位技术
分库表数据倾斜的处理让我联想到了 AKF 模型
这里的特殊性可以是表中字段的某一个属性,比如订单编号、创建时间等等。这就需要我们根据实际情况,既要拆分的均匀又要拆分之后能满足未来几年的发展,同时还要满足现有业务的支持。
175 0
|
分布式计算 算法 大数据
白话Elasticsearch45-深入聚合数据分析之易并行聚合算法,三角选择原则,近似聚合算法
白话Elasticsearch45-深入聚合数据分析之易并行聚合算法,三角选择原则,近似聚合算法
97 0
|
SQL 关系型数据库 MySQL
跨表查询经常有,何为跨表更新?
跨表查询经常有,何为跨表更新?
跨表查询经常有,何为跨表更新?