第一章 GREENPLUM 体系结构
Pivotal Greenplum的数据库是一个大规模并行处理(MPP)数据库服务器架构,该架构是专为管理大规模的数据仓库和商业智能设计的。
MPP(也称为shared nothing架构)是指系统具有两个或更多个处理机合作执行操作,每个处理机有它自己的内存,操作系统和磁盘。Greenplum使用这种高性能的系统架构来分布式加载multi-terabyte数据仓库,并且可以使用所有的系统资源并行处理查询。
Greenplum的数据库是基于PostgreSQL的开源技术,它本质上是几个PostgreSQL数据库实例一起协作当做一个有凝聚力数据库管理系统(DBMS)使用。GREENPLUM 数据库是基于PostgreSQL 8.2.15的,在SQL支持、产品特点、配置选项和终端用户功能方面,大多数情况下是与Postgres非常相似的。与Greenplum数据库的用户交互也类似一个普通的PostgreSQL数据库管理系统。
PostgreSQL的内部已被修改或补充,以支持Greenplum数据库的并行结构。例如,该系统目录,优化器,查询执行器,和事务管理器组件已被修改和改进,以支持能够在所有并行的PostgreSQL数据库实例同时执行查询。Greenplum Interconnect可使不同的PostgreSQL实例之间进行通信,并且使系统表现为一个逻辑数据库。
Greenplum数据库也有特有的特征,如优化的PostgreSQL商业智能功能(BI)与工作负载。另外,Greenplum增加了并行数据加载(外部表)、资源管理、查询优化、存储增强等功能,这些功能在标准PostgreSQL中都是没有的。由Greenplum开发的许多功能和优化也进入PostgreSQL的社区。例如,表分区是首先由Greenplum的开发了一种功能,它现在也在标准的PostgreSQL中了。
Greenplum数据存储和处理大数据量,是通过跨多个服务器和主机分配数据和负载。Greenplum数据库是基于PostgreSQL8.2单个数据库的阵列,这些数据库像单个数据库一样共同工作。master主机是Greenplum数据库系统的入口点,它是客户端连接并提交SQL语句的接口数据库实例。master主机协调其他segment主机一起工作;segment主机是存储数据与处理查询操作的数据库实例
1. Greenplum master节点
master节点是Greenplum数据库系统的入口,接受来自客户端的连接和SQL查询,和分发工作给segment实例。
Greenplum数据库的终端用户与Greenplum数据库交互(通过master节点),就像与典型的PostgreSQL数据库交互一样。他们连接到数据库,使用诸如PSQL或客户端程序应用程序编程接口(API),如JDBC或ODBC。
master节点是全局系统目录所在。全局系统目录是一套包含Greenplum数据库系统元数据的系统表。master节点不包含任何用户数据,数据仅存储在segment节点。master节点验证客户端连接,处理SQL命令,在segment节点之间的分配工作负载,协调由每个segment返回的结果,并将最后结果呈现给客户端程序。
2. Greenplum segment节点
Greenplum segment实例是独立的PostgreSQL数据库数据,每个segment节点存储部分数据,并执行大多数查询处理。
当用户连接经由Greenplum master节点并发出查询,在每个segment 节点创建进程来处理查询工作。有关查询的详细信息流程,请参阅关于Greenplum的查询处理。
用户定义的表和它们的索引分布在可用的segment中的,每个segment包含数据的不同部分。数据库服务器进程根据服务的相应segment数据运行。用户通过master与Greenplum数据库系统中segment交互。
segment运行在segment主机上的。一个segment主机通常运行两个到八个Greenplum segment],这取决于CPU核心、RAM、存储器、网络接口和工作负荷。segment主机最好使用相同的配置。获得最佳性能的关键是将数据与工作负载均匀的分布在大量性能相同的segment上,使各segment同时开始工作去完成同一个任务并且同时完成;
3. Greenplum Interconnect
Interconnect是Greenplum数据库体系结构的网络层。Interconnect指segment间进程间通信和通信依赖的基础设施。Greenplum Interconnect采用的是标准的万兆以太网交换结构。默认情况下,该Interconnect使用用户数据报协议(UDP)在网络上发送消息。超出了由UDP提供的包,Greenplum软件也执行数据包验证,这意味着在可靠性方面UDP等同于传输控制协议(TCP),而且性能和可扩展性超过TCP。如果Interconnect使用TCP,Greenplum数据库将有一个1000 segment实例极限。当使用UDP作为Interconnect默认协议时,这个限制是不存在了。
4. 管理与监控工具
Greenplum提供标准的命令行工具,这些工具位于$GPHOME/bin下,并且只能在master上执行。可以由命令行工具完成的管理任务主要有以下这些:
Greenplum也提供了一个web接口的图形化监控与管理工具,叫做Greenplum Command Center,以下简称CC;CC是通过安装在各segment主机上agent来搜集系统统计信息并存储到一个专用数据库中;Agent会将搜集到的segment信息定期发送到master上,通常间隔是15秒;管理员可以通过图形化界面查询相应信息;CC需要单独安装,更多信息参考CC文档;CC系统结构如下:
5. 并行数据加载
在大规模,多TB的数据仓库,大数据量必须在一个相对小的维护窗口完成加载。Greenplum支持快速,并行数据加载与外部表功能。管理员还可以在单行错误隔离模式下加载外部表,过滤错误行,并插入到单独的错误表中,同时继续加载正确格式化行。管理员可以指定一个错误阈值,加载操作控制多少格式不正确的行后Greenplum中止加载操作。通过使用Greenplum数据库的并行文件服务器(gpfdist),并结合外部表,管理员可以实现最大并行性和负载带宽。
Greenplum的另一个实用工具,gpload,通过制定YAML格式的控制文件完成加载任务。你可以在控制文件中指定源数据的位置、格式、转换条件master主机、目标数据库,由gpload执行加载。这可以让你描述一个复杂的任务,并以受控的、可重复的方式执行它;
下面为并行加载的系统结构图:
6. 冗余与故障迁移
这一节其实HA的简介,详细的信息参考HA章节;Greenplum可以实现无单点故障部署系统,实现这一目标的方法就是对主要组件进行镜像;例如,segment镜像、master镜像、Interconnect冗余等;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16976507/viewspace-1789075/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16976507/viewspace-1789075/