一、Greenplum简介
1.1 Greenplum是什么
Greenplum数据库是在postgreSQL开发出来的,基于MPP(massively parallel processing)和shared-Nothing架构(Oracle RAC是shared everything架构)。
主要用在数据仓库中,做大规模数据和复杂的查询功能所涉及。
1.5 Greenplum总体架构
数据库由Master Severs和Segment Severs通过Interconnect互联组成。
1.6 Greenplum架构详解
Master主机与Segment主机的职责
Master
(1)建立与客户端的会话连接和管理
(2)SQL的解析并形成分布式的执行计划
(3)将生成好的执行计划分发到每个Segment上执行
(4)收集Segment的执行结果
(5)不存储业务数据,只存储数据字典
(6)可以一主一备,分布在两台机器上
(7)为了提高性能,最好单独占用一台机器
Segment
(1)业务数据的存储和存取
(2)执行由Master分发的SQL语句
(3)对于Master来说,每个Segment都是对等的,负责对应数据的存储和计算
(4)每一台机器上可以配置一到多个Segment
(5)由于每个Segment都是对等的,建议蚕蛹相同的及其配置
(6)Segment分primary和mirror两种,一般交错的存放在子节点上
Master和Segment都是一个单独的PostgreSQL数据库。每一个都有自己单独的一套元数据字典。Master节点一般也叫主节点,Segment叫做数据节点。
为了实现高可用,每个Segment都有对应的备节点 Mirror Segment分别存在与不同的机器上。
Client一般只能与Master节点进行交互,Client将SQL发给Master,然后Master对SQL进行分析后再讲其分配给所有的Segment进行操作。
1.7 Greenplum丰富特性
第一,完善的标准支持:GPDB完全支持ANSI SQL 2008标准和SQL OLAP 2003 扩展;从应用编程接口上讲,它支持ODBC和JDBC。完善的标准支持使得系统开发、维护和管理都大为方便。而现在的 NoSQL,NewSQL和Hadoop 对 SQL 的支持都不完善,不同的系统需要单独开发和管理,且移植性不好。
第二,支持分布式事务,支持ACID。保证数据的强一致性。
第三,做为分布式数据库,拥有良好的线性扩展能力。在国内外用户生产环境中,具有上百个物理节点的GPDB集群都有很多案例。
第四,GPDB是企业级数据库产品,全球有上千个集群在不同客户的生产环境运行。这些集群为全球很多大的金融、政府、物流、零售等公司的关键业务提供服务。
第五,GPDB是Greenplum(现在的Pivotal)公司十多年研发投入的结果。GPDB基于PostgreSQL 8.2,PostgreSQL 8.2有大约80万行源代码,而GPDB现在有130万行源码。相比PostgreSQL 8.2,增加了约50万行的源代码。
第六,Greenplum有很多合作伙伴,GPDB有完善的生态系统,可以与很多企业级产品集成,譬如SAS,Cognos,Informatic,Tableau等;也可以很多种开源软件集成,譬如Pentaho,Talend 等。
1.8 Greenplum应用场景
Greenplum最大的特点总结就一句话:基于低成本的开放平台基础上提供强大的并行数据计算性能和海量数据管理能力。这个能力主要指的是并行计算能力,是对大任务、复杂任务的快速高效计算,但如果你指望MPP并行数据库能够像OLTP数据库一样,在极短的时间处理大量的并发小任务,这个并非MPP数据库所长。请牢记,并行和并发是两个完全不同的概念,MPP数据库是为了解决大问题而设计的并行计算技术,而不是大量的小问题的高并发请求。
再通俗点说,Greenplum主要定位在OLAP领域,利用Greenplum MPP数据库做大数据计算或分析平台非常适合,例如:数据仓库系统、ODS系统、ACRM系统、历史数据管理系统、电信流量分析系统、移动信令分析系统、SANDBOX自助分析沙箱、数据集市等等。
而MPP数据库都不擅长做OLTP交易系统,所谓交易系统,就是高频的交易型小规模数据插入、修改、删除,每次事务处理的数据量不大,但每秒钟都会发生几十次甚至几百次以上交易型事务 ,这类系统的衡量指标是TPS,适用的系统是OLTP数据库或类似Gemfire的内存数据库。
1.9 Greenplum的技术特点及优势
1.10 Greenplum缺点
1、对局域网带宽要求很高,一般都是千兆交换机。
2、不支持在线扩容,扩容的话至少要增加2台以上的机器。后若不是成2倍扩展,需要重新平均分布所有数据。