Greenplum

Greenplum 是一款基于 PostgreSQL 的开源 MPP(Massively Parallel Processing)分布式数据库,适合海量数据的并行分析和数据仓库场景。


1. 架构概览

Greenplum 采用 共享无架构(Shared-Nothing)MPP 架构,即:

  • 每个节点有自己独立的 CPU、内存、磁盘,不共享资源

  • SQL 查询会被拆分并下发到各节点 并行执行

架构图:

               +----------------------+
               |      Master 节点     | ← 接收 SQL 查询,解析计划,协调执行
               +----------------------+
                      |        |
         +------------+        +-------------+
         |                                   |
+-------------------+             +-------------------+
| Segment 节点 1    |             | Segment 节点 2    |
| PostgreSQL 实例 A |             | PostgreSQL 实例 B |
+-------------------+             +-------------------+
   ↑         ↑                         ↑         ↑
Primary   Mirror                  Primary   Mirror(可选)

 2. 核心特性

特性说明
MPP 分布式架构支持上百节点并行执行查询,处理 TB/PB 级数据
基于 PostgreSQL支持标准 SQL、继承 PG 的生态
分布式数据存储数据按“分布键”存储在各个 Segment 节点
并行查询引擎查询自动拆解成多个子任务并行执行
GPORCA 优化器面向大规模查询的深度优化器,提升性能
外部表支持可快速对接 HDFS、S3、CSV、Kafka 等数据源
分区表支持时间、范围、列表等分区策略提升查询性能
资源队列 Resource Queue控制不同用户/组的 CPU/内存配额,防止资源争抢
UDF 自定义函数支持 C、Python、SQL 写扩展逻辑

 3. 表结构类型

表类型描述
分布式表(Distributed Table)将数据根据某字段(分布键)散列分布到各个 Segment 节点上
分区表(Partitioned Table)在每个 Segment 上再细分为多个分区,提高查询效率
外部表(External Table)不导入数据,可直接从 HDFS/CSV 文件查询(适合离线分析)

示例:

CREATE TABLE users (
  id INT,
  name TEXT,
  age INT
) DISTRIBUTED BY (id);

 4. 与 PostgreSQL 的主要区别

特性PostgreSQLGreenplum
架构类型单机或主备复制MPP 分布式架构
数据分布不支持分布键 HASH 分布
查询优化器基于成本的传统优化器GPORCA(面向大数据)
执行方式单节点执行计划多节点并行执行
OLTP 支持一般,偏向 OLAP
外部数据源支持需扩展原生外部表
插件兼容性高(官方支持)限制较多(部分 PG 插件不可用)

 5. 典型使用场景

场景类型是否推荐说明
✅ 大数据仓库如 PB 级数据分析系统
✅ BI 报表系统配合 Superset、Tableau、PowerBI
✅ 营销数据分析多维度汇总、聚合统计
✅ 行政政务大数据平台统一数据模型、数据服务支撑
❌ 高频交易系统不适合 OLTP 写入、更新频繁系统
❌ 实时系统⚠️不适合毫秒级响应系统,适合分钟级批处理

 6. 管理工具

工具说明
gpstart/gpstop启动/关闭集群
gpexpand动态添加节点扩容
gpfdist快速导入导出数据
gp_toolkit监控和管理 SQL 视图集合
gpadmin 用户默认超级管理员用户

 7. 示例语法

创建表并指定分布键:

CREATE TABLE sales (
  sale_id int,
  product_id int,
  amount numeric
) DISTRIBUTED BY (sale_id);

外部表读取 CSV 文件:

CREATE EXTERNAL TABLE ext_sales (
  sale_id int,
  product_id int,
  amount numeric
)
LOCATION ('gpfdist://master_host:8081/sales.csv')
FORMAT 'CSV' (DELIMITER ',');

 8. 优缺点总结

 优点

  • 超强并行计算能力(支持百节点规模)

  • 标准 SQL 支持

  • 成熟稳定,政府/运营商/银行广泛使用

  • 支持大规模批量导入导出

  • 免费开源(Apache 2.0)

 缺点

  • 写入性能不如 OLTP 数据库

  • 更新/删除开销大(不推荐频繁变更)

  • 实时性差,不适合流式处理

  • 管理复杂度高(需熟悉节点、分布、资源管理)


 9. 企业级功能(含付费版)

功能Greenplum 开源版企业版(Pivotal)
查询优化器✅ GPORCA
外部表
多租户资源控制
自动容灾❌(手动配置)
数据压缩✅(基础)✅(更强)
可视化管理界面❌(需第三方)

 10. 对比 Hive、ClickHouse、TiDB

特性GreenplumHiveClickHouseTiDB
查询响应
数据更新一般不支持
SQL 支持标准 SQLHiveQL类 SQL完整 SQL
并发能力一般一般强(OLTP)
最佳用途离线分析批量分析实时报表混合负载

 11. 版本与开源地址


总结

你需要推荐
分布式大数据分析平台✅ Greenplum 是开源 MPP 的优选
替代商业数据仓库(如 Teradata、Oracle Exadata)✅ Greenplum 免费、兼容 SQL
实时事务处理系统❌ 不建议使用 Greenplum,用 PostgreSQL 或 TiDB 更合适

如果你想部署一个 Greenplum 集群、设计分布策略、接入 BI 工具、或者将 MySQL/PG 数据同步到 Greenplum,我可以继续提供具体部署方案和 ETL 脚本。是否需要?

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思静鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值