GreenPlum学习(二)

1、 Greenplum概述

简单地说,GreePlum就是一个与Oracle、DB2、PostgreSQL—样面向对象的关系型数据库。我们通过标准的SQL可以对Greenplum中的数据进行访问存取。

在Greenplum中,需要存储的数据在进人数据库时,将先 进行数据分布的处理工作,将一个表中的数据平均分布到每个节点上,并为每个表指定一 个分发列(distribute Column),之后便根据Hash来分布数据。

基于Shared-Nothing的原贝lj, Greenplum这样处理可以充分发挥每个节点处I/O的处理能力。在这一过程中,控制节点 (Master Host)将不再承担计算任务,而只负责必要的逻辑控制和客户端交互。I/O瓶颈的解 决为并行计算能力的提升创造了良好的环境,所有节点服务器组成一个强大的计算平台,实 现快速的海量并行运算。Greenplum在数据仓库、商业智能的应用上,尤其是在海量数据的 处理方面性能极其优异。

Greenplum是面向数据仓库应用的关系型数据库,它是基于目前流行的PosgreSQL开发 的,跟PostgreSQL的兼容性非常好,大部分的PostgreSQL客户端工具及PostgreSQL应用都 能运行在Gree叩lum平台上。

2、Greenplum 特性

(1) 支持海量数据存储和处理
当今是个数据迅速增长的时代,数据量从过去的MB到GB,再到TB增长到现在的PB 级规模,传统的OLTP数据库在TB级别以上的数据管理中已经捉襟见肘。Greenplum使用 MPP架构,同时使用多台机器并行计算,极大地提高了对海量数据的处理能力。采取MPP 架构的数据库系统才能对海量数据进行管理。

(2) 高性价比
Greenplum数据库可以搭建在业界各种开放式硬件平台上,在硬件选型上有很强的自 由性。
相比其他封闭式数据仓库专用系统及Hadoop分析平台,Greenplum在每TB数据量上的 投资是前者的1/5甚至更低。Greenplum licence 相比 Oracle RAC、Teradata 等,价格低廉。Greenplum易于维护,可以节省大量的维护成本。

(3 )支持 Just In Time BI
Greenplum通过准实时、实时的数据加载方式,实现数据仓库的实时更新。进而实现动态数据仓库(ADW)。基于动态数据仓库,业务用户能对当前业务数据进行BI实时分析 (Just In Time BI),能够让企业敏锐感知市场的变化,加快决策支持反应速度。

(4)系统易用性
Greenplum是基于PostgreSQL开发的,语法与PostgreSQL几乎一样,PostgieSQL的工 具基本上都能够在Gree叩lum中使用,比如pgadmin等。Greenplum使用通用的PostgreSQL 连接包即可与数据库连接,支持绝大部分开发语言。Greenplum的易用性具体表现如下。
□支持主流的SQL语法,使用起来十分方便,学习成本低。
□扩展性好,支持多语言的自定义函数和自定义类型等。
□提供了大量的维护工具,使用维护起来很方便。
□在Internet上有着丰富的PostgreSQL资源供用户参考。

(5 )支持线性扩展
Greenplum采用MPP并行处理架构。在MPP架构中增加节点就可以线性提高系统的存 储容量和处理能力。Greenplum在扩展节点时操作简单,在很短时间内就能完成数据的重新 分布。Greenplum线性扩展支持为数据分析系统将来的拓展提供了技术上的保障,使用户可 根据实施需要进行容量和性能的扩展。

(6 )较好的并发支持及高可用性支持
Greenplum是高可用的系统,在已有案例中最多使用了 96台机器的集群MPP环境。除 了硬件级的Raid技术外,Greenplum还提供数据库层Mirror机制保护,也就是将每个节点 的数据在另外的节点中同步镜像,单个节点的错误不影响整个系统的使用。对于主节点, Greenplum提供Master/Stand by机制进行主节点容错,当主节点发生错误时,可以切换到 Stand by节点继续服务。

(7 )支持 MapReduce
MapReduce已经被谷歌和雅虎等互联网领先企业证明是一种大规模数据分析技术, Greenplum将这种能力提供给企业。

(8 )数据库内部压缩
面对海量数据,压缩可以节省很大的空间,而且在对大数据的分析时,压缩也可能减少 对磁盘的访问。Greenplum支持对数据库表进行压缩处理,从而提升数据库的性能。

3、Greenplum 架构

这里写图片描述

Master和Segment其实都是一个单独的PostgreSQL数据库。每一个都有自己单独的一 套元数据字典,在这里,Master节点一般也叫主节点,Segment也叫做数据节点。

Segment节点与Master节点的通信,通过千兆(或万兆)网卡组成的内部连接 (Interconnect,在同一台数据节点机器上可以放多个Segment,不同的Segment节点会被赋 予不同的端口。同时,Segment之间也不断地进行着交互。为了实现高可用,每个Segment 都有对应的备节点(MirrorSegment),分别存在于不同的机器上。

Client 一般只能与Master节点进行交互,Client将SQL发给Master,然后Master对 SQL进行分析后,再将其分配给所有的Segment进行操作,并且将汇总结果返回给客户端。

展开阅读全文

没有更多推荐了,返回首页