greenplum架构介绍

1 Greenplum 简介

  GreenPlum是一款基于分布式架构的开源数据库;采用无共享(no shareing)的MPP架构(每个数据节点拥有独立的CPU、IO和内存等资源);其具有良好的线性扩展能力,具有高效的并行运算、并行存储特性。拥有独特的高效的ORCA优化器。非常适合用于PB数据量级的存储、处理和实时分析能力。Greenplum是基于PostgreSQL数据库发展而来,本质上是多个PostgreSQL面向磁盘的数据库实例一起工作形成的一个紧密结合的数据库管理系统(DBMS),同时支持涵盖OLTP型业务混合负载,数据节点和主节点均可设计备份节点,进而提供数据库的高可用性。

2 Greenplum架构

greenplum架构介绍_第1张图片
greenplum架构介绍_第2张图片

  如上图,Greenplum由Master节点<协调节点>和Segment节点<数据节点>以及高速网络层三部分组成,转载自官网Greenplum的架构。

  • Master Host: 又称协调节点,是整个Greenplum数据库系统的入口。负责接受来自客户端连接请求,对SQL语句生成查询计划,并将查询计划分发至涉及的Segment实例上,收集Segment实例返回的结果并呈现给客户端。同时Master记录集群中的元数据信息,包括各种全局系统系统表,但Master上不存储任何用户数据,数据只存在于Segment之上。
  • Standby: Master的备库,在Master 发生故障不可提供服务时可promote Standby继续提供服务,保证集群的高可用,正常情况下Standby上进行只读操作,且时时同步Master的元数据。
  • Segment Host【Primary segment】:数据节点,其功能是存放并管理数据库中的数据,接收Master分发下来的执行计划,执行返回结果给Master节点。
  • Mirror segment: Primary segment节点的备库以保障高可用性;通常跟对应的Primary segment节点不在同一台机器上。在segment节点出现故障,mirror segment自动接管进行工作。但是为了数据库平稳;尽快恢复出现故障的segment。
  • Interconnet: Interconect是Greenplum数据库架构中的网络层,是Segment之间的进程间通信以及这种通信所依赖的网络基础设施。 Greenplum的Interconnect使用带流控制的用户数据包协议(UDPIFC)在网络上发送消息,可靠性和可扩展性超于TCP。 之所以采用UDP,是因为Interconnect改为TCP,当Segment实例超过1000个时其可扩展性会受到限制,而对于Interconnect的默认协议UDPIFC则不存在这种限制。

3 Greenplum特性

  • 超大规模和高性能:Greenplum数据库采用超大规模无共享MPP架构,将多台服务器组成一个强大计算平台,实现高效的海量并行计算。同时在查询优化方面。Greenplum不仅支持PostgreSQL的查询优化器外,还开发一个新的查询优化器ORCA。ORCA是一款自顶向下的基于Cascades框架的查询计划器,相比PostgreSQL查询优化器而言,其性能能够提升 10 -1000倍。
  • 高可用:Greenplum提供多级容错机制确保整个集群的高可用。对与Master节点,设计Standby master进行元数据的备份,每个Primary segment 分别可以配置若干个Mirror segment进行备份,同时确保同一组的Primary segment 与Mirror segment 节点不在同一物理机,从而减小由于宕机等意外故障导致的数据丢失分险。
  • 通用性:Greenplum数据库支持完善的SQL标准。同时。由于Greenplum基于PostgreSQL数据库开发,因此继承了PostgreSQL对于JDBC/OBJC/C/Python API等接口的支持。
  • 多态存储:Greenplum数据库提供“多态存储”的灵活存储方式。用户可以根据数据热度或者访问模式的不同使用不同的存储方式,以获取的更好的查询性能。用户可以将一张表按照一定规则[日期]分成若干个分区,不同的分区可以使用不同的物理存储方式。支持存储方式包括:1)行存储,数据以行的形式存储在数据页里,适合频繁的更新;2)列存储,数据以列的形式存放在数据页中,适合OLAP分析性场景;3)外部表,数据保存在外部文件,比如HDFS、S3等,数据库只保持元数据信息。
  • 高扩展和高效资源管理:得益于MPP无共享架构,Greenplum具有良好的线性扩展能力。用户可以通过水平扩展增加硬件资源提升数据存储和计算能力。同时Grennplum还提供高效的资源管理机制,根据用户的业务逻辑将资源合理分配给查询任务,避免查询因资源不足而得不到相应,主要是通过对并发查询数目的限制、查询执行内存占用、CPU资源使用情况进行一定约束。提供两种资源管理方式:资源队列和资源组,详见greenplum官网。
  • 高效数据加载:Grennplum采用MPP架构可以高地并行家在数据,即允许数据从多个文件系统通过多个主机上的多个网卡进行加载,达到高效数据传输效率。Greenplum支持多重读入和写入数据源,包括文件文本、XML文件、HDFS、Kafka和Spark等,同时还支持数据压缩。

总结
  Greenplum数据库是领先的基于MPP架构的开源分布式数据库,具有良好的弹性和线性扩展能力,内置并行存储+通信+计算和优化技术,高度兼容SQL标准,具备强大高效的PB级数据存储、处理和实时分析能力。目前广泛用于ETL、商业智能、高级分析、GIS数据处理、机器学习等领域。

参考: Introduction to Greenplum

你可能感兴趣的:(greenplum,数据库,架构)