若是想在数据仓库中快速查询结果,可使用greenplum。分布式
Greenplum数据库也简称GPDB。它拥有丰富的特性:工具
第一,完善的标准支持:GPDB彻底支持ANSI SQL 2008标准和SQL OLAP 2003 扩展;从应用编程接口上讲,它支持ODBC和JDBC。完善的标准支持使得系统开发、维护和管理都大为方便。而如今的 NoSQL,NewSQL和Hadoop 对 SQL 的支持都不完善,不一样的系统须要单独开发和管理,且移植性很差。oop
第二,支持分布式事务,支持ACID。保证数据的强一致性。post
第三,作为分布式数据库,拥有良好的线性扩展能力。在国内外用户生产环境中,具备上百个物理节点的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 等。
3.greenplum起源
Greenplum最先是在10多年前(大约在2002年)出现的,基本上和Hadoop是同一时期(Hadoop 约是2004年先后,早期的Nutch可追溯到2002年)。当时的背景是:
- 互联网行业通过以前近10年的由慢到快的发展,累积了大量信息和数据,数据在爆发式增加,这些海量数据急需新的计算方式,须要一场计算方式的革命;
- 传统的主机计算模式在海量数据面前,除了造价昂贵外,在技术上也难于知足数据计算性能指标,传统主机的Scale-up模式遇到了瓶颈,SMP(对称多处理)架构难于扩展,而且在CPU计算和IO吞吐上不能知足海量数据的计算需求;
- 分布式存储和分布式计算理论刚刚被提出来,Google的两篇著名论文发表后引发业界的关注,一篇是关于GFS分布式文件系统,另一篇是关于MapReduce 并行计算框架的理论,分布式计算模式在互联网行业特别是收索引擎和分词检索等方面得到了巨大成功。
下图就是GFS的架构
4.greenplum整体架构
1.greenplum的整体架构以下:
数据库由Master Severs和Segment Severs经过Interconnect互联组成。
- Master节点:是整个系统的控制中心和对外的服务接入点,它负责接收用户SQL请求,将SQL生成查询计划并进行并行处理优化,而后将查询计划分配(dispatch)到全部的Segment节点进行并行处理,协调组织各个Segment节点按照查询计划一步一步地进行并行处理,最后获取到Segment的计算结果,再返回给客户端;从用户的角度看Greenplum集群,看到的只是Master节点,无需关心集群内部的机制,全部的并行处理都是在Master控制下自动完成的。Master节点通常只有一个或两个(互为备份);
- Segment节点:是Greenplum执行并行任务的并行运算节点,它接收Master的指令进行MPP并行计算,所以全部Segment节点的计算性能总和就是整个集群的性能,经过增长Segment节点,能够线性化得增长集群的处理性能和存储容量,Segment节点能够是1~10000个节点;
- Interconnect:是Master节点与Segment节点、Segment节点与Segment节点之间的数据传输组件,它基于千兆交换机或万兆交换机实现数据在节点间的高速传输;
- 外部数据加载到Greenplum时,采用并行数据流进行加载,直接加载到Segment节点,这项独特的技术是Greenplum的专有技术,以此保证外部数据在最短期内加载到数据库中。
简单来讲
Master主机负责:创建与客户端的链接和管理;SQL的解析并造成执行计划;执行计划向Segment的分发收集Segment的执行结果;Master不存储业务数据,只存储数据字典。
Segment主机负责:业务数据的存储和存取;用户查询SQL的执行。
2.基本体系架构
master节点,能够作成高可用的架构
master node高可用,相似于hadoop的namenode和second namenode,实现主备的高可用。
segments节点
3.无共享/MPP核心架构
Greenplum数据库软件将数据平均分布到系统的全部节点服务器上,因此节点存储每张表或表分区的部分行,全部数据加载和查询都是自动在各个节点服务器上并行运行,而且该架构支持扩展到上万个节点。
5.并行管理
对于数据的装载和性能监控。
并行备份和恢复。
数据访问流程,数据分布到不一样颜色的节点上
查询流程分为查询建立和查询分发,计算后将结果返回。
对于存储,将存储的内容分布到各个结点上。
对于数据的分布,分为hash分布和随机分布两种。
均匀分布的状况:
6.混合的存储和执行(按列或按行)
Greenplum发明支持混合按列或按行存储数据,每张表或表分区能够由管理员根据应用须要,分别指定存储和压缩方式。基于这个功能,用户能够对任何表或表分区选择按行或按列存储数据和处理方式。这些是在建表或表分区的DDL语句中配置的,只需在建表或表分区时指定。这个功能基于Greenplum的多态维数据存储技术。
Master和Segment都是一个单独的PostgreSQL数据库。每个都有本身单独的一套元数据字典。
Master节点通常也叫主节点,Segment叫作数据节点。
为了实现高可用,每一个Segment都有对应的备节点 Mirror Segment分别存在与不一样的机器上。
Client通常只能与Master节点进行交互,Client将SQL发给Master,而后Master对SQL进行分析后再将其分配给全部的Segment进行操做。
Greenplum没有Windows版本,只能安装在类UNIX的操做系统上。
Greenplumn极度消耗I/O资源,因此对存储的要求比较高。