Apache Cloudberry:一款先进成熟的MPP数据库,Greenplum开源替代
Apache Cloudberry 是一款先进成熟的开源 MPP(大规模并行处理)数据库,基于开源版的 Pivotal Greenplum Database 构建,同时采用了更高版本的 PostgreSQL 内核,具备更先进的高并发、高可用等企业级功能。
Apache Cloudberry 既可以作为数据仓库使用,也可用于大规模分析和 AI/ML 工作负载。该项目目前处于孵化阶段(Incubating),采用 Apache 2.0 开源协议,代码托管在 GitHub:
https://github.com/apache/cloudberry
核心架构
Apache Cloudberry 采用 MPP 无共享架构(shared-nothing),如下图所示:
主要组件包括:
- 控制节点(Coordinator):数据库系统的入口,接受客户端连接和 SQL 查询,负责解析 SQL、生成执行计划、分配任务至数据节点并汇总最终结果。它还存储全局系统目录(元数据),但不存储用户数据。
- 数据节点(Segment):独立的 PostgreSQL 实例,实际存储用户数据的一部分并执行查询的相应部分。用户表的数据会分布在所有数据节点,通常一个数据节点主机会部署 2 到 8 个数据节点实例。
- 内部互联(Interconnect):节点间通信的网络层,默认使用带流控制的 UDP 协议(UDPIFC)以实现高性能和可扩展性,Apache Cloudberry 负责数据包的验证。推荐使用 10 GB 或者更快的网络。
Apache Cloudberry 使用多版本并发控制技术(MVCC)确保数据一致性,并且最大限度地减少锁争用,提供多用户环境中的高性能。
功能比较
Apache Cloudberry 完全兼容 Greenplum,同时还提供一些 Greenplum 目前缺乏或者不支持的功能。以下比较基于 Greenplum 7 Beta 3。
首先是通用功能:
接下来是性能相关的功能比较:
最后是安全相关的功能比较:
下载安装
推荐使用 Docker 体验 Apache Cloudberry 功能,支持单容器部署和多容器部署两种方式。
安装命令如下:
git clone https://github.com/apache/cloudberry-bootcamp.gitcd cloudberry-bootcamp/000-cbdb-sandbox# 单容器部署
./run.sh# 多容器部署
./run.sh -m
然后登录容器:
docker exec -it cbdb-cdw /bin/bash
连接数据库:
[gpadmin@cdw ~]$ psql# psql (14.4, server 14.4)
# Type "help" for help.gpadmin=# SELECT VERSION(); PostgreSQL 14.4 (Apache Cloudberry 1.0.0 build dev) on aarch64-unknown-linux-gnu, compiled by gcc (GCC) 10.2.1 20210130 (Red Hat 10.2.1-11), 64-bit compiled on Oct 24 2023 10:24:28
(1 row)
官方文档:
https://cloudberry.apache.org/docs/