1 Greenplum整体架构信息

1.1 架构图示

1 Greenplum整体架构信息_第1张图片

 

在以上的架构中可以看出Greenplum主要是由Master和Segment组成的,Master承担生成查询计划并派发汇总执行结果,Segment是执行查询计划及数据储存管理。集群可以直接加载外部的数据。

 

官网请查看:https://greenplum.org/

Greenplum官方文档:https://gp-docs-cn.github.io/docs/common/gpdb-features.html

1.2 Master主机与Segment主机任务

Master主机负责

Segment主机负责

1. 建立与客户端的会话连接和管理

1. 业务数据的存储和存取

2.sql的解析并形成分布式的执行计划

2.执行由master分发的sql语句

3.将生成好的执行计划分
发到每个Segment上执行

3.对于master来说,每个
Segment都是对等的,负责对应数据的存储和计算

4.收集Segment的执行结果

4.每一台机器上可以配置
一到多个Segment

5.master不存储业务数据,
只存储数据字典

5.由于每个Segment都是对
等的,建议采用相同的机器配置

6.master主机可以一主一备,
分布在两台机器上

6.Segment分primary 和mirror两种,
一般交错第存放在子节点上

7.为了提高性能,master最好
单独占用一台机器

 

 

1.3 数据库分布键分布数据策略

由于greenplum数据库是个分布式数据库,数据分布在每一个segment节点上,其中数据的分布策略有两种分别是hash分布于随机分布。

1.3.1 HASH策略

Hash分布是利用Distributed by (filed1,filed2....) 做为数据分布的条件,计算hash值,并通过hash值路由到制定的segment上,如果不指定分布键,默认的是获取第一个字段作为分布键。在字段作为分布键时,该字段的值尽量是唯一的,这样才能分布的均匀,效率会更高,否则会降低数据库的想能。

1.3.2 随机分布

随机分布也叫平均分布。数据会随机的落在每一个segment节点上,不管数据内容是什么格式都会落到segment上,在SQL查询数据,数据会重新分布,性能会比较差,随机分布的用法为Distributed randomly;

1.4 master主节点获取segment节点上的数据顺序

Master在执行sql语句时由于数据切分放在每个segment上,master获取结果的顺序是segment提交的顺序,segment提交到master的顺序是随机的,就会导致一样的数据每次的查询结果顺序不一致,这也是与其他的数据不一样的地方。

你可能感兴趣的:(GreenPlum)