一、GreenPlum介绍
GreenPlum是基于数据库分布式架构的开源大数据平台;采用无共享(no shareing)的MPP架构;具有良好的线性扩展能力,具有高效的并行运算、并行存储特性。拥有独特的高效的ORCA优化器。兼容SQL语法。适合用于高效PB数据量级的存储、处理和实时分析能力。由于内核是基于PostgreSQL数据库;也支持涵盖OLTP型业务混合负载。同时数据节点和主节点都有自己备份节点。提供数据库的高可用性。
二、GreenPlum架构

架构
在GreenPlum数据库中组件;从上图可以看出Master节点、Segment节点、interconnect
- Master节点:为主节点;作为数据库的入口,负责客服端连接;对客服端的请求生成查询计划;分发给某个或者所有的Segment节点。
- standby master: 作为master节点的备库;为其提供高可用性。在Master节点出现故障;通过gpactivestandby命令激活。接管master工作
- interconnect:是GreenPlum的网络层;负责每个节点之间的通信。
- segment节点:为数据节点;接收master分发下来的查询计划;执行返回结果给master节点
- mirror segment节点: 作为segment节点的备库;为了提供高可用性;通常跟对应的segment节点不在同一台机器上。在segment节点出现故障,mirror segment自动接管进行工作。但是为了数据库平稳;尽快恢复出现故障的segment。
对用户而言可以把整个GreenPlum数据库当成PostgreSQL数据库。
Greenplum数据库可以使用追加优化(append-optimized,AO)的存储个事来批量装载和读取数据,并且能提供HEAP表上的性能优势。 追加优化的存储为数据保护、压缩和行/列方向提供了校验和。行式或者列式追加优化的表都可以被压缩。
三、Greenplum数据库和PostgreSQL的主要区别在于:
- 在基于Postgres查询规划器的常规查询规划器之外,可以利用GPORCA进行查询规划。
- Greenplum数据库可以使用追加优化的存储。
- Greenplum数据库可以选用列式存储,数据在逻辑上还是组织成一个表,但其中的行和列在物理上是存储在一种面向列的格式中,而不是存储成行。列式存储只能和追加优化表一起使用。列式存储是可压缩的。当用户只需要返回感兴趣的列时,列式存储可以提供更好的性能。 所有的压缩算法都可以用在行式或者列式存储的表上,但是行程编码(RLE)压缩只能用于列式存储的表。Greenplum数据库在所有使用列式存储的追加优化表上都提供了压缩。
Greenplum如何存储在下面章节讲解。
参考文献:https://greenplum.cn/gp6/intro/arch_overview.html
备注:以上为本人理解;若有不对的地方;烦请指出。谢谢!