一、Greenplum介绍
随着近些年数据量指数级的增加,传统的主机计算模式在海量的数据面前,不仅造价昂贵,而且技术也难以满足数据计算性能指标,传统主机的Scale-up模式遇到瓶颈,SMP(对称多处理)架构难于扩展,并且在cpu的计算和io吞吐上不能满足海量数据的计算需求。分布式存储和分布式计算理论被提出来,Google的两篇著名论文引起行业界的关注,一篇是关于GFS分布式系统、另一偏高是关于MapRedurce并行计算架构的理论,分布式计算模式在互联网行业特别是搜索引擎和分词检索等方便获得巨大的成功。
二、Greenplum的特定
- 支持海量数据存储和处理
- 高性价比
- 支持Just In Time BI:通过准实时、实时的数据加载方式,实现数据仓库的实时更新,进而实现动态数据仓库(ADW),基于动态数据仓库,业务用户能对当前业务数据进行BI实时分析(Just In Time BI)
- 系统易用性
- 支持主流的sql语法,使用起来十分方便,学习成本第。
- 扩展性号,支持多种语言自定义函数和自定义类型等。
- 提供了大量的维护工具,使用维护起来很方便。
- 支持线性扩展: 采用MPP并行处理架构。在MPP结构中增加新节点就可以线性提供系统的存储容量和处理能。
- 较好的并发支持及高可用性支持除了提供硬件级的Raid技术外,还提供数据库层Mirror机制保护,也具有将每个节点的数据在另外的节点中同步镜像,单个节点的错误不影响这个系统的使用。对于主节点提供Master/Stand by 机制进行主节点容错,当主节点发生错误时,可以切换到Stand by节点继续服务。
- 支持MapRedurce:一种大规模数据分析技术。
- 数据库内部压缩。
三、Greenplum架构
1、Greenplum的总体架构图(摘要):
Greenplum数据库是由Master Server、Segment Server和Interconnect三部分组成,Master Server和Segment Server的互联使用过Interconnect。
Greenplum是一个关系型数据库,是由数个独立的数据服务组合成的逻辑数据库。与oracle RAC的shared-Everything架构不同,greenplum采用shared-Nothing架构,整个集群由多个数据节点(Segment Host)和控制节点(Master Host)组成。在典型的shared-Nothing中,每个节点上所有的资源的cpu、内存、磁盘都是独立的,每个节点都只有全部数据的一部分,也只能使用本节点的数据资源。在Greenplum中,需要存储的数据在进入到数据时,将先进行数据分布的处理工作,将一个表中的数据平均分布到每个节点上,并为每个表指定一个分布列(distribute column),之后便根据hash来分布数据,基于shared-Nothing的原则,Greenplum这样处理可以充分发挥每个节点处IO的处理能力。
- Master 节点:是整个系统的控制中心和对外的服务接入点,它负责接收用户SQL请求,将SQL生成查询计划并进行并行处理优化,然后将查询计划分配到所有的Segment节点并进行处理,协调组织各个Segment节点按照查询计划一步一步地进行并行处理,最后获取到Segment的计算结果,再返回给客户端。从用户的角度看Greenplum集群,看到的只是Master节点,无需关心集群内部的机制,所有的并行处理都是在Master控制下自动完成的。Master节点一般只有一个或二个。
- Segment节点: 是Greenplum执行并行任务的并行计算节点,它接收Master的指令进行MPP并行计算,因此所有Segment节点的计算性总和就是整个集群的性能,通过增加Segment节点,可以线性化得增加集群的处理性能和存储容量,Segment节点可以是1~10000个节点。
- Interconnect: 是Master节点与Segment节点、Segment节点与Segment节点之间进行数据传输的组件,它基于千兆交换机或者万兆交换机实现数据再节点之间的高速传输。
- 外部数据在家到Segment时,采用并行数据流进行加载,直接加载到Segment节点,这项独特的技术是Greenplum的专有技术,保证数据在最短时间内加载到数据库中。
2、基本体系架构
Master节点的高可用架构和Hadoop的Namenode和Second Namenode实现的主备高可用类似。当Primary Master出现故障时,热备份Standby Master担任全部工作。Standby Master通过同步进行,保持与Primary Master的数据一致。Greenplum数据库软件平均分布到系统的所有节点服务器上,所以节点存储每张表或者表分区的部分行,所有的数据在家和查询都是自动在各个节点服务器上并行运行,并且该架构支持扩展到上万个节点。
Master:
- 访问系统的入口
- 处理所有用户连接
- 生成查询计划
- 协调工作出过程
- 管理工具
- 系统目录表和元数据(数据字典)
- 不存放任何用户数据
Segment:
- 每段(Segment)存放一部分用户数据
- 一个系统可以有多段
- 用户不能直接存取访问
- 所有对段的访问都是经过Master
- 数据库监听进程(postgres)监听来自Master的连接
四、OLTP和OLAP
数据库系统一般可以分成二种类型:OLTP和OLAP。Greenplum属于OLAP。
 OLTP(On Line transaction Processing)联机事务处理系统,也成为生产系统,它是事件驱动的、面向应用的。比如电子商务网站的交易系统就是一个典型的OLTP系统。
OLTP的基本特点:
1、数据在系统中产生
2、基于交易的处理系统
3、每次交易牵涉的数据量很小
4、对响应时间要求非常高
5、用户数量非常庞大,主要是操作人员
6、数据库的各种操作主要基于索引进行
OLAP的基本特点:
1、本身不产生数据,其基础数据来源与生产系统中的操作数据(operation Data)
2、基于查询的分析系统
3、复杂查询经常使用多表连接、全表扫描等,牵涉的数据量往往很大
4、响应时间与具体查询有很大关系
5、用户数量相对较小,器用户主要是业务人员与管理员
6、由于业务问题不固定,数据库的各种操作不能完全基于索引进行
才华不溢,梦想依旧
唯心沉淀,遨游宇宙