达梦数据库集群
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.3 Greenplum

Greenplum是一个开源的分布式数据库存储解决方案,最早是在2002年出现的,其基于流行的PostgreSQL开发,是一款面向数据仓库应用的关系型数据库。Greenplum具有良好的体系结构,在数据存储、高并发、高可用、线性扩展、反应速度、应用性和性价比等方面优势明显,受到广泛好评。随着大数据时代的到来,Greenplum开始专注于数据库集群架构的研发与拓展,并关注数据仓库和商业智能方面,可以在虚拟化x86服务器上运行无共享(Share Nothing)的大规模并行处理(MPP)架构。根据Greenplum的描述,Greenplum的性能在数据量为TB级时表现非常优秀,单机性能相比Hadoop要快几倍;在功能和语法上,Greenplum要比Hadoop上的SQL引擎Hive好用很多,普通用户更加容易上手。Greenplum有相对完善的工具,整个体系都比较完善,不需要像Hive一样花费太多时间和精力进行改造。同时,Greenplum能够方便地与Hadoop进行结合,直接在数据库上写MapReduce任务,同时配置较为简单。

1. 主要特性

Greenplum数据库简称GPDB,它具有丰富的特性。

(1)完善的标准支持:GPDB完全支持ANSI SQL 2008标准和SQL OLAP 2003扩展;从应用编程接口上讲,GPDB支持ODBC接口和JDBC接口。Greenplum完善的标准支持使系统开发、维护和管理都极为方便;而现在的NoSQL、NewSQL和Hadoop对SQL的支持都不完善,不同的系统需要单独开发和管理,且移植性不好。

(2)支持分布式事务,支持ACID,保证数据的强一致性。

(3)作为分布式数据库,GPDB具有良好的线性扩展能力。在国内外用户生产环境中,具有上百个物理节点的GPDB集群有很多应用案例。

(4)GPDB是企业级数据库产品,全球有上千个集群在不同客户的生产环境中运行。这些集群为全球很多大的金融机构、政府部门及物流、零售等企业的关键业务提供服务。

(5)GPDB是Pivotal公司十多年研发投入的结果。GPDB基于PostgreSQL 8.2研发,PostgreSQL 8.2有约80万行源代码,而GPDB有约130万行源代码。GPDB相对于PostgreSQL 8.2,增加了约50万行源代码。

(6)Pivotal有很多合作伙伴,GPDB有完善的生态系统,可以与很多企业级产品集成,如SAS、Cognos、Informatic、Tableau等;也可以与很多种开源软件集成,如Pentaho、Talend等。

2. 基本结构

Greenplum目前在数据库集群领域的应用主要是构建MPP架构数据库集群,数据库由主服务器(Master Sever)和分段服务器(Segment Sever)通过专用网络互联组成,其基本结构如图1-11所示。

图1-11 Greenplum的基本结构

主服务器是整个系统的控制中心和对外的服务接入点,它负责接收用户SQL请求,将SQL生成查询计划,并进行并行处理优化,然后将查询计划分配到所有的分段服务器,协调组织各分段服务器按照查询计划一步一步地进行并行处理,最后获取分段服务器的计算结果,再返回给客户端。从用户的角度看Greenplum集群,看到的只是主服务器,无须关心集群内部的机制,所有的并行处理都是在主服务器控制下自动完成的。主服务器节点一般设置为1个或2个(互为备份)。

分段服务器是Greenplum集群执行并行任务的并行运算节点,它接收主服务器的指令进行并行计算,因此所有分段服务器的计算性能总和就是整个集群的性能。通过增加分段服务器,可以线性提高集群的处理性能和存储容量,分段服务器可包含1~10000个节点,但在目前的公开信息中,实际部署的Greenplum集群还没有遇到过服务器节点达数千个量级的情况。Greenplum集群通过将数据分布到多个服务器节点上来实现规模数据的存储,充分利用Segment主机的I/O能力,让系统发挥最大的I/O能力。

网络互联(Interconnect)部分是主服务器与分段服务器、分段服务器与分段服务器之间的数据传输组件,它基于高速交换机实现数据在节点间的高速传输。随着网络设备处理速度的快速提升,目前网络互联部分不再是单一的网络连接架构,而是逐渐过渡到适应数据中心网络的新型架构,从而支持包含更多服务器节点的Greenplum集群。

综上所述,主服务器负责建立与客户端的连接并进行管理,解析SQL并形成执行计划,然后向各分段服务器分发并收集执行结果。主服务器不存储业务数据,只存储数据字典。分段服务器负责业务数据的存取,以及用户查询SQL语句的执行。