Greenplum简介

Greenplum: http://greenplum.org/
原来是个商业产品,后来开源。

从Slogan看:

  • 是个数据库
  • 着眼于数据仓库
  • 主要在于大规模并行

基于强大的PostgreSQL,PostgeSQL提供了诸如表空间、外部表等功能,支持丰富的数据类型(包含key-value,JSON,XML,GIS,甚至支持各种集合图形的表示)。其中的FDW外部表是一个非常强大的功能,可以直接将外部文件、HBase或者其他PostgreSQL实例的数据当做一张表。另外对函数的支持也很强大,除了PL/SQL外,还支持JS、Python等语言编写的函数。在SQL语法上也提供了诸多令人欣喜的小特性,比如插入、删除、或者更新操作的时候都可以使用returning直接返回相应的记录。

在PostgreSQL基础上,Greenplum增加了许多面向数据仓库的特性:

  • 大规模并行处理架构(Massively Parallel Processing Architecure,MPP)
  • PB级别的数据导入(基于MPP技术)
  • 创新性的查询优化(业界第一个cost-based的查询优化器)
  • 多泛型的存储和计算
  • 机器学习支持(基于Apache MADLIB,用户自定义函数)

Greenplum架构:

Greenplum简介_第1张图片

  • Greenplum Master:
    数据库入口,接受客户端连接和SQL查询,分发任务给Segment实例。用户与Greenplum(通过Master Host),就像与PostgreSQL交互一样,通过psql之类的工具或者JDBC或者ODBC等API。global system catelog位于Master上,它包含存放系统元数据的一系列表。Master不存放任何数据,数据只存在于Segment Host中,Master授权客户端连接,处理查询SQL,分发任务给Segment,组合结果并返回给客户端。

  • Greenplum Segment:
    Segment实例是独立的PostgreSQL实例,存放数据并执行主要的查询处理。数据分布在各个Segment中,每个实例包含一部分数据(portion)。一个Segment Host可以运行多个Segment实例,取决于内核数量以及RAM等。

  • Greenplum Interconnect:
    Interconnecte是Greenplum架构中的网络层,一般指各Segment之间的进程间通信(IPC)和物理网络设施,即标准的10G以太网交换机,即万兆以太网交换机。interconnect使用UDP协议进行通信,但是Greenplum会对数据包进行校验,因此可靠性等同于TCP,但是性能上会更好。如果使用TCP,那么Segment的实例不能超过1000,使用UDP则没有这个限制。

  • Pivotal Query Optimizer:
    Greenplum提供的查询优化器跟一般优化器在以下三方面存在区别:

  • 模块化:不是内置于RDBMS.
  • 可扩展:优化器由独立组件组合,容易被替换。
  • 性能: 基于multi-core scheduler,能够对所有可能性进行优化。

一个很好的tutorial
http://greenplum.org/gpdb-sandbox-tutorials/
基于Greenplum提供的虚拟机(sandbox),涵盖用户、建表、导数据、查询、数据分析等内容。

你可能感兴趣的:(PostgreSQL,GreenPlum)