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.git

cd 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/

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐