Greenplum--数据库介绍

Greenplum简介

Greenplum数据库是基于MPP架构的开源大数据平台,具有良好的弹性和线性扩展能力,内置并行存储、并行通信、并行计算和并行优化功能,兼容SQL标准,具有强大、高效的PB级数据存储、处理和实时分析能力,同时支持涵盖OLAP型业务的混合负载,可部署于企业裸机、容器、私有云和公有云中,现已为全球金融、电信、制造等行业核心生产系统提供支撑。

多进官网学习,官网https://cn.greenplum.org/
github地址:https://github.com/greenplum-db/gpdb

greenplum的发展历程

  1. 2003年,Luke Lonergan 和Scott Yara 发起Greenplum项目,从PostgreSQL8分支,做成MPP架构
  2. 2010年被EMC收购
  3. 2012年成为Pivotal的一部分
  4. 2015年开源,可能是世界上第一个成熟商用的开源MPP数据仓库
  5. 2019年底跟随Pivotal被VMware收购

Greenplum架构

MPP

MPP:Massively Parallel Processing, 即大规模并行处理,一般用来指多个SQL数据库节点搭建的数据仓库系统。执行查询的时候,查询可以分散到多个SQL数据库节点上执行,然后将结果汇总返回给用户。

MPP的核心

  1. 减少资源的共享,尽力达到Shared Nothing。 MPP并不会进行远程计算,每个节点都有自己独立的CPU,内存和磁盘资源
  2. 并行,MPP并没有像并行度这样的概念,而是每个节点都在进行相同的工作。所以对MPP架构进行水平扩容无法提升并行度

MPP架构相关文献:https://cloud.tencent.com/developer/article/1808525

greenplum的架构

greenplum数据库是典型的主从架构,一个greenplum集群通常由一个master节点、一个standby master节点以及多个segment实例组成,节点之间通过高速网络互联。standby master实例为master实例提供高可用支持,mirror segment实例为segment实例提供实例高可用支持。当master节点出现故障时,数据库管理系统可以快速切换到standby master节点继续提供服务。

Master

  1. Greenplum数据库的Master是整个Greenplum数据库系统的入口,它接受连接和SQL查询并且把工作分布到Segment实例上。
  2. Greenplum数据库的最终用户与Greenplum数据库(通过Master)交互时,会觉得他们是在与一个典型的PostgreSQL数据库交互。他们使用诸如psql之类的客户端或者JDBC、ODBC、libpq(PostgreSQL的C语言API)等应用编程接口(API)连接到数据库。
  3. Master是全局系统目录的所在地。全局系统目录是一组包含了有关Greenplum数据库系统本身的元数据的系统表。Master上不包含任何用户数据,数据只存在于Segment之上。Master会认证客户端连接、处理到来的SQL命令、在Segment之间分布工作负载、协调每一个Segment返回的结果以及把最终结果呈现给客户端程序。
  4. Greenplum数据库使用预写式日志(WAL)来实现主/备镜像。在基于WAL的日志中,所有的修改都会在应用之前被写入日志,以确保对于任何正在处理的操作的数据完整性。
  5. 注意:Segment镜像还不能使用WAL日志。

Segment

  1. Greenplum数据库的Segment实例是独立的PostgreSQL数据库,每一个都存储了数据的一部分并且执行查询处理的主要部分。
  2. 当一个用户通过Greenplum的Master连接到数据库并且发出一个查询时,在每一个Segment数据库上都会创建一些进程来处理该查询的工作。更多有关查询处理的内容,请见关于Greenplum的查询处理。
  3. 用户定义的表及其索引会分布在Greenplum数据库系统中可用的Segment上,每一个Segment都包含数据的不同部分。服务于Segment数据的数据库服务器进程运行在相应的Segment实例之下。用户通过Master与一个Greenplum数据库系统中的Segment交互。
  4. Segment运行在被称作Segment主机的服务器上。一台Segment主机通常运行2至8个Greenplum的Segment,这取决于CPU核数、RAM、存储、网络接口和工作负载。Segment主机预期都以相同的方式配置。从Greenplum数据库获得最佳性能的关键在于在大量能力相同的Segment之间平均地分布数据和工作负载,这样所有的Segment可以同时开始为一个任务工作并且同时完成它们的工作。

Interconnect

  1. Interconect是Greenplum数据库架构中的网络层。
  2. Interconnect指的是Segment之间的进程间通信以及这种通信所依赖的网络基础设施。Greenplum的Interconnect采用了一种标准的以太交换网络。出于性能原因,推荐使用万兆网或者更快的系统。
  3. 默认情况下,Interconnect使用带流控制的用户数据包协议(UDPIFC)在网络上发送消息。Greenplum软件在UDP之上执行包验证。这意味着其可靠性等效于传输控制协议(TCP)且性能和可扩展性要超过TCP。如果Interconnect被改为TCP,Greenplum数据库会有1000个Segment实例的可扩展性限制。对于Interconnect的默认协议UDPIFC则不存在这种限制。
posted @ 2022-07-06 17:32  du-z  阅读(729)  评论(0编辑  收藏  举报