Greenplum

关注
义项:分布式数据库
Greenplum

Greenplum是一种基于PostgreSQL开源技术构建的大规模并行处理(MPP)关系型数据库,主要面向分析型数据仓库与商业智能工作负载[1]。它采用无共享(shared-nothing)架构,由一个Master节点协调多个Segment节点并行存储与计算,可将PB级数据的分析查询分解到集群各节点上同时执行[2]。其核心引擎于2015年对外开源,曾是业界较早的开源MPP数据仓库之一,2024年5月起相关源码仓库转为归档状态[3]。

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

Greenplum是一种大规模并行处理(MPP)数据库服务器,其架构针对管理大规模分析型数据仓库以及商业智能工作负载而设计[1]。它基于开源的PostgreSQL技术构建,本质上是多个面向磁盘的PostgreSQL数据库实例协同工作、组合成一个紧密结合的数据库管理系统,因此在SQL支持、配置选项和终端用户功能上大部分与PostgreSQL相似[1]。

对使用者而言,连接Greenplum与连接一台常规PostgreSQL数据库的感受接近,可使用psql等客户端或JDBC、ODBC等接口访问[1]。它主要定位于联机分析处理(OLAP)场景,擅长处理大任务、复杂查询的并行计算,而非大量短小事务的高并发请求[4]。

原理

Greenplum采用无共享(shared-nothing)架构,也称MPP架构:系统中存在两个或更多处理器协同执行同一操作,每个处理器拥有自己的内存、操作系统和磁盘[1]。集群由Master节点与多个Segment节点组成,Master是整个系统的入口,负责接受客户端连接、解析SQL、生成并优化查询计划,再把任务分发到各Segment实例,并汇总各Segment返回的结果[1]。Master只存放全局系统目录等元数据,不保存用户数据,用户数据只存在于Segment之上[1]。

数据在写入时按分布键进行哈希切分或随机分散到各Segment,查询时各Segment先并行处理与自己相关的数据;当需要跨节点关联时,数据会通过Interconnect网络层在实例之间移动,让系统对外表现为一个逻辑数据库[1]。

在存储上,除PostgreSQL原有的堆表外,Greenplum引入了追加优化存储,可选用行式或列式方向并支持压缩,列式存储适合只返回部分列的分析查询[1]。

查询计划中除扫表、关联、聚合、排序等常规操作外,还有Greenplum特有的移动操作,用于在查询处理期间于Segment之间搬移数据[5]。事务方面,Greenplum使用分布式快照与两阶段提交协议,以保证在多个Segment上同步提交或回滚,从而维持ACID特性[6]。

发展历程

Greenplum公司于2003年9月成立,由Scott Yara与Luke Lonergan创办,由洛杉矶附近的Metapa与弗吉尼亚州费尔法克斯的Didera两家小公司合并而成,总部位于加利福尼亚州圣马特奥[3]。2005年4月,该公司发布了基于PostgreSQL的数据库管理系统软件,最初名为Bizgres,约到2008年前后产品直接以Greenplum为名[3]。

2010年7月,Greenplum被EMC公司收购,成为EMC大数据软件部门的基础,收购金额未公布,外界估计约为3亿美元[3]。2012年,其数据库管理软件以Pivotal Greenplum Database的名称由Pivotal Software销售[3]。2013年,基于Hadoop文件系统存储数据的变体Hawq发布[3]。

2015年,Pivotal将Greenplum的核心引擎开源,以Apache 2许可证发布,成为较早的开源MPP数据仓库项目之一[7][8]。2017年9月、2019年9月与2023年9月,Greenplum Database先后发布5、6、7三个大版本,其中第7版基于PostgreSQL 12[3][9]。

2020年前后Pivotal被VMware收购,VMware继续赞助Greenplum开源社区,并以VMware Tanzu Greenplum为品牌进行商业化[3]。2023年11月VMware被博通收购;2024年5月,相关源码仓库被归档并转为只读,所有后续版本转为闭源并纳入VMware Tanzu数据套件[3][9]。此后,原Greenplum开发团队推动开源项目Cloudberry Database作为替代方案。

应用

Greenplum主要面向分析型场景,常见用途包括数据仓库系统、操作数据存储(ODS)、历史数据管理系统、电信流量分析、移动信令分析、自助分析沙箱以及数据集市等[4]。其外部数据通过并行数据流直接加载到Segment节点,以缩短大批量数据入库的时间[10]。

在分析能力上,Greenplum可通过扩展框架以SQL方式在库内运行机器学习与文本分析等任务,并通过平台扩展框架访问HDFS、Hive、HBase等外部数据源[11]。它也可与SAS、IBM Cognos、Tableau等商业智能工具通过ODBC、JDBC方式集成[11]。

为提升可用性,Greenplum通过Master节点的备用实例与Segment的镜像副本实现冗余,当某个Segment主机故障时,镜像可切换为主节点继续提供服务。

局限

Greenplum的Master节点是单一入口,元数据集中存放于此,容易形成性能瓶颈;在实际应用中,其并发能力受物理Master限制,难以支持大量并发查询,集群规模也难以无限扩大[12]。它并不擅长OLTP交易系统,即高频的小规模插入、修改和删除类业务,这类场景通常由专门的OLTP数据库承担[4]。

MPP架构下计算节点与数据紧密耦合,扩展集群时一般需要同时增加计算与存储节点,并重新哈希分布已有数据,数据重分布耗时较长[4]。此外,单节点故障可能拖累整体表现,运维相对复杂[12]。

在部署上,单个节点上的数据库实例缺乏并行与大内存能力,通常需要在同一物理主机上部署多个Segment实例以充分利用系统资源,这增加了部署与使用的复杂度[13]。2024年转为闭源后,原有开源社区用户无法继续免费获得更新与安全支持,需要自行解决技术问题或购买商业服务。

参见

  • PostgreSQL —— Greenplum所基于的开源关系型数据库,两者在SQL支持与配置上高度相似。

  • 大规模并行处理 —— Greenplum所采用的核心架构思想,通过多个独立节点协同完成同一查询。

  • 数据仓库 —— Greenplum最主要的应用场景,用于集中存储与分析海量业务数据。

  • EMC —— 2010年收购Greenplum公司、使其进入大数据软件领域的存储厂商。

  • Cloudberry Database —— Greenplum转闭源后,由其初始开发团队推动的开源替代项目。

参考资料

  1. 关于Greenplum的架构 [引用日期2026-10-14]
  2. Massively Parallel Database [引用日期2026-10-14]
  3. Greenplum [引用日期2026-10-14]
  4. aliyun.com 上的网页 [引用日期2026-10-14]
  5. 详解开源大数据引擎Greenplum的架构和技术特点 [引用日期2026-10-14]
  6. arxiv.org 上的网页 [引用日期2026-10-14]
  7. venturebeat.com 上的网页 [引用日期2026-10-14]
  8. 页面历史记录 [引用日期2026-10-14]
  9. bcp6i5AaGOJHDBSeLXRX [引用日期2026-10-14]
  10. 开源MPP Greenplum参考架构 [引用日期2026-10-14]
  11. Greenplum主要特色概要 [引用日期2026-10-14]
  12. 从MPP到NewSQL:TiDB全面替代Greenplum的技术必然性 [引用日期2026-10-14]
  13. Greenplum [引用日期2026-10-14]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T21:59:54Z

历史版本

本条目引用的词条
PostgreSQL EMC VMware 大规模并行处理 数据仓库 Cloudberry Database