Greenplum数据库是一种大规模并行处理(MPP)的以PostgreSQL开源技术为基础的数据库服务器。

MPP(又称无共享架构)是指两个或两个以上的处理器合作开展的一项行动 -每个处理器拥有自己的内存,操作系统和磁盘系统。

Greenplum利用这种高性能的系统架构,可以把TB级的数据仓库分布地加载进来,并能够使用系统的所有资源并行处理查询。

 

Greenplum数据库基本上是几个PostgreSQL数据库实例一起运行作为一个整体的数据库管理系统。它是基于PostgreSQL8.2.15,并在大多数情况下是非常相似PostgreSQLSQL的支持,

功能,配置选项和最终用户功能。数据库用户与Greenplum数据交互,就像他们与PostgreSQL数据库的数据库管理系统交互。(DBMS)

 

PostgreSQL的内部已被修改或补充,以支持Greenplum数据的并行结构。

例如系统目录,查询规划,优化,执行查询,事务管理器组件已被修改,增强,能够在所有PostgreSQL数据库实例上马上并行执行查询.

Greenplum的互连(网络层),能够连接不同的PostgreSQL实例,允许数据库系统表现为一个逻辑数据库。

(gp通过内部连接,使很多独立的postgresql数据库变成一个逻辑库,对于客户端来说就是一个整体)

 

Greenplum数据库还包括优化PostgreSQL对商业智能(BI)的功能

例如,已加入Greenplum的并行数据加载(外部表),资源管理,查询优化和存储,这不是普通的PostgreSQL所拥有的。

Greenplum的许多特性跟优化功能还是用到了PostgreSQL的功能。例如,表分区是Greenplum的现在是标准的PostgreSQL开发的功能。

1.About the Greenplum Architecture 

 

Greenplum数据库是能够处理和存储分布在多个服务器或主机的大量的数据。

一个在Greenplum数据库实际上是一个PostgreSQL数据库的数组,一起工作,显示一个单一的数据库映像。

master是Greenplum数据系统的入口点。它是客户端连接,并提交SQL语句的数据库实例所在。

It is the database instance where clients connect and submit SQL statements

master负责协调系统中的其他数据库实例, segement,它主要处理数据的处理和存储工作。

master不存储用户数据,segment存储数据并负责SQL查询,master节点负责相应客户端请求,并将请求的sql语句进行转换,转换后调度后台的segment节点进行查询,把结果给客户端.

master 进行工作调度

segment 进行数据存储和数据处理

 

About the Greenplum Master 

master是Greenplum数据系统的入口点。它是数据库的过程中接受客户端连接和处理该系统的用户发出的SQL命令。

 

Greenplum是基于PostgreSQL的,用户与Greenplum数据库的交互(通过master),就像一个典型的PostgreSQL数据库与客户端进行交换一样。

他们可以使用客户端程序连接数据库,如psql或JDBC或ODBC应用程序编程接口(API)。

 

master是全局系统目录所在(系统表包含有关Greenplum的数据库系统本身的元数据集),但master不包含任何用户数据,数据位于各段(子节点)segement。

master认证客户端连接的工作,处理传入的SQL命令,(segement)之间分配工作负荷,协调各个(segement)返回的结果,并展示最终的结果给客户端程序。

(分发工作给后端的子节点中,将结果返回客户端)

 

About the Greenplum Segments 

在Gp数据库中,segment是数据存储和大部分查询处理的地方,用户表和索引分布在gp数据库系统可用的segments上,

每个segment包含了总数据的一部分,segment实例是数据库服务进程用来服务segments(Segment instances are the database server processes that serve segments)

Greenplum用户不直接交互数据库系统的segment,而是通过master来调度segment。

 

推荐Greenplum数据的硬件配置,每一个活动的segment分配一个CPU或CPU核心。

例如,如果你的子节点主机有两个双核心处理器,你的每个主机可以有四个主要segment。

一般建议4core左右分配一个子节点,每个子节点必须在不同的网段.

 

About the Greenplum Interconnect 

互联网连接是Greenplum数据引擎的网络层。当用户连接到数据库和发出查询,

每个segment创建一个进程来处理该查询的工作。

互联网连接指的是segements的之间的进程通信,就像网络基础设施之间的通信。互连使用标准的千兆以太网交换结构。

 

默认情况下,互连使用UDP(用户数据报协议)通过网络发送的消息。 

Greenplum的软件使用额外的数据包验证和检查 这些验证和检查不通过UDP进行执行,

所以可靠性是相当于TCP(传输控制协议),性能和可伸缩性超过的TCP。

如果用TCP协议,Greenplum的有1000个segment实例的可扩展性限制。UDP协议无此限制,UDP是现在互联网连接的默认协议。

 

About Redundancy and Failover in Greenplum Database 

Greenplum数据库的提供给系统部署选项,不包括单点故障。本节介绍Greenplum数据的冗余组件。

冗余,指重复配置系统的一些部件,当系统发生故障时,冗余配置的部件介入并承担故障部件的工作,由此减少系统的故障时间。

 

About Segment Mirroring

当您部署Greenplum的数据库系统,您可以选择配置镜像segment。

镜像segments允许数据库查询故障转移到备份节点,当master segement变得不可用。

要配置镜像,您必须在您的Greenplum的数据库系统有足够的主机,

因此,次要segement总是位于跟主segment不同的主机上。

图1.2显示了等镜像配好时,表数据如何分布在不同的segment上.

Mirror segment始终位于跟primary segement不同的主机上.

 

Segment Failover and Recovery 

Greenplum数据系统启用镜像时,当a primary copy变得不可用,系统会自动转移到镜像copy,

如果一个segment的实例或主机出现停机,只要所有的数据都可以在余下的活动的segement使用。Greenplum的数据库系统可以继续运行

 

当master无法连接到一个segment实例,在Greenplum的数据库系统日志里会标志该segment down,在出错的地方使用镜像来代替。失败的部分实例将不继续运作,直至采取措施,使该sgement恢复(online)。该系统是运行起来时失败的部分可以恢复,恢复过程只是复制该segment没运行时候变化的部分

如果你没有启用镜像,如果一个segment实例变为无效,系统会自动关机,你必须恢复所有无效segment之后才可以继续操作。
 
About Master Mirroring 
你还可以选择在主节点上部署一个主实例的备份或镜像的一个单独的主机。当主服务器成为不能运行时,备份主机作为一个热备用。
备份主机通过保持事务日志的同步进程同步数据,以保持主机跟备份主机之间的数据同步
 
如果主服务器出现故障,日志同步进程会被关闭,备用主机将被激活,激活备用主机后,根据最后成功的从原master传过来的日志,新的master会根据此日志重建备用主机(恢复到原来主机相同的配置),激活的备份主机将成为Greenplum的主机接受客户端连接的主端口(主机和备份主控主机上必须设置相同的端口号)。
 
由于master不包括任何数据,仅仅需要同步主机跟备份主机的系统表,这些表的更新又不频繁,当有变化时,会自动复制到备份主机上,以便备份主机会与当前主机保持一致
 
About Interconnect Redundancy 
互联网连接指的是segments和segements之间的进程通信,就像网络设施之间依靠网络进行通信,
Greenplum数据主机服务器部署在网络上的双千兆以太网交换机,千兆冗余连接,可以实现高度可用的互连。
 
About Parallel Data Loading 
大规模的挑战之一,多TB数据仓库是用一个给定的维护窗口加载大量的数据。
Greenplum的支持快速并行外部表加载数据功能。外部表使用'单行错误隔离模式',允许管理员刷选出错误行到错误表中,同时还能加载正确格式的数据.
管理员可以控制加载操作的可接受误差阈值,让他们可以控制数据质量
 
使用外部表结合Greenplum数据的并行文件系统(gpfdist),
管理员可以到达从Greenplum数据系统的最大并行数和负载带宽。Greenplum的证明加载速率超过2TB/H。
 
About Management and Monitoring 
Greenplum数据系统管理使用一系列的命令行实用程序,位于在/$GPHOME/ bin。 
Greenplum的提供以下Greenplum的数据库管理任务的工具:
阵列上安装Greenplum数据
初始化Greenplum数据系统
启动和停止Greenplum数据
添加或删除主机
扩展阵列和在新的segements直接重新分配表
管理恢复失败的segment实例
管理故障转移和恢复失败的master实例
备份和恢复数据库(并联)
加载数据并行
系统状态报告
 
管理员在安装和启用Greenplum数据库时也可以选择安装一个可选的性能监控功能.
Greenplum的性能监视器对每个segment的主机收集查询执行的数据和系统利用率和存储在数据库的代理程序
The Greenplum Performance Monitor has agents on each segment host that collect data on query execution and system utilization and store it a database. 
segment代理程序向gp master在定期间隔(通常每15秒)发送相关数据.
用户可以查询Greenplum的性能监视器查询数据库和系统的性能数据,包括现在的和历史的查询
Greenplum的性能监视器还具有查看这些基于Web的图形用户界面性能指标,它可以单独从Greenplum数据安装。