博客/技术探讨

一文快速了解 YMatrix 与 Greenplum 的相同与不同

2025-05-21 · YMatrix Team
#技术探讨

前言

同源于 Greenplum,重构于内核,YMatrix 完成了真正意义上的“底层换芯”。在存储、执行引擎、高可用机制等关键能力上实现全面升级,不只是国产化替代,更是面向未来的进化之路。 向下兼容,向上升级,YMatrix 用核心技术的跃迁,打开了国产数据库的“高端局”。

YMatrix 和 Greenplum 的共同点

尽管 Greenplum 已不再开源,但它的架构理念、技术积累并未被时间淘汰。作为原班人马打造的新一代产品,YMatrix 在多个关键层面延续了 Greenplum 的核心设计,比如架构模式、执行机制和接口兼容性等。

1. 相同的物理架构

  • 主节点:存储表的元信息等,应答查询请求,将查询任务分发至数据节点执行计算。
  • 备用主节点:当主节点发生故障时,替代主节点处理业务。
  • 数据节点:负责数据的存储和计算,每个数据节点上运行多个 Segment实例,各自处理一部分数据。
  • 网络:节点间通过高速网卡交换数据。

2. 相同的分布式执行过程

对于一个查询,Greenplum 和 YMatrix 采用的是 "分而治之"的策略,每个 Segment 只处理自己分区的数据,通过并行架构实现线性扩展能力。例如一个10亿条记录的聚合查询,会被自动拆分成 100 个 Segment 并行处理,每个只需处理约 1000 万条数据,执行时间自然可以大幅降低。

3. 相同的接入方式

Greenplum 和 YMatrix 都是基于 PostgreSQL 体系,使用常用的数据库客户端都可以选择使用 PostgreSQL 驱动访问。

使用应用程序访问时也都可以完全兼容 PostgreSQL

YMatrix 和 Greenplum 的主要不同点

1. 控制系统(高可用性)

YMatrix 和 Greenplum 都是通过镜像机制来确保系统的高可用性,但是控制的方式有所不同。

它的基本原理是每个 Segment 实例会在另一个数据节点上有一个完全一致的镜像实例,且数据保持一致,这样当一个 Segment 实例出现故障时,其镜像实例就会启用,保障服务不中断。

P (Primary): 当前工作的 Segment 实例 M (Mirror): 镜像实例

Greenplum

Greenplum 对于 Segment 实例的探测,整个高可用状态的切换都由主节点负责,因此,一旦主节点宕机,整个系统就会处于瘫痪状态,需要通过手工连接至 Standby 进行操作,让它代替主节点进行工作。

YMatrix

相较 Greenplum, YMatrix 引入独立的服务管理整个集群状态。 通过在集群中随机选取奇数个阶段,构建 etcd 集群,并有相应的进程对实例的存活进行探测;分布式架构与etcd的强一致性存储,保证了无论是主节点还是数据节点宕机,集群都能自动切换服务,保证服务不中断。

2. 存储引擎

Greenplum

  • HEAP: 继承自 PostgreSQL 的经典行存引擎,更适合数据的增、删、改,点查,分析型查询表现不佳,是 Greenplum 主要使用的存储引擎
  • AOCO: 列存存储,分析型查询表现好,其原理是一个列一个文件,但对于大表,一旦出现多 session 并发写,叠加 MPP 处理机制,会造成文件数据数量爆炸性增加,带来许多问题,因而使用的不多。

YMatrix

  • HEAP: 和 Greenplum 相同,继承自 PostgreSQL 的行存引擎。
  • MARS3: YMatrix 自主研发的基于 LSMTree的行列混合存储引擎。相较 Greenplum 中的 AOCO, MARS3 首先将一张大表分成几个块(文件),每个块内又按列存储。这样就即能提供列存在分析型查询中的性能优势。

3. 执行引擎

Greenplum

使用的是传统的火山引擎,其特点是一行一行(Tuple) 处理数据,对于数据量大的分析型查询,一行一行处理显然就慢的多了。

虽然 Greenplum 有 AOCO 这样的列存,但是由于其执行引擎没有进行相应的改造,虽然能做到一次从存储中取一批数据,但计算还是一行一行的,无法充分发挥列存优势。

YMatrix

YMatrix 对执行器进行了全面的向量化改造,能够利用 CPU 的并行计算指令集,按批计算数据,再配合 MARS3 存储的列存能力,二者达成 1+1 > 2 的效果。

总结:不是复制,而是升级

YMatrix 对于企业而言,这意味着:

📈 性能提升 2-5 倍,无需重写业务逻辑

🔄 秒级容灾自动切换,运维更省心

🔌完整兼容 PostgreSQL 生态,迁移几乎无成本

YMatrix 在性能更强、部署更稳、运维更省的同时,依然保持对 Greenplum 和 PostgreSQL 的高度兼容性——技术团队无需重写业务逻辑,即可几乎零改造平滑迁移,快速切换到新一代企业级超融合数据库平台。

更多相关迁移案例,参考下方链接:

-某大型连锁便利店:从 Greenplum 到 YMatrix,报表查询性能提升 10 倍