前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GreenPlum闭源?可以了解一下国产CBDB(Cloudberry Database)

GreenPlum闭源?可以了解一下国产CBDB(Cloudberry Database)

作者头像
AiDBA宝典
发布2024-06-07 19:20:42
2480
发布2024-06-07 19:20:42
举报

简介

Cloudberry Database(可简称为“CBDB”或“CloudberryDB”)是面向分析和 AI 场景打造的下一代统一型开源数据库,搭载了 PostgreSQL 14.4 内核,兼容 PostgreSQL 和 Greenplum Database 生态,采用 Apache License 2.0 许可协议,由北京酷克数据HashData科技有限公司开发,目前源码已公开。

️GitHub 地址:https://github.com/cloudberrydb/cloudberrydb ️官网主页:https://cloudberrydb.org/

官方文档:https://cloudberrydb.org/zh/docs/

厂商

酷克数据

官网

https://cloudberrydb.org/zh

微信公众号

HashData

总部城市

北京

2023年7月14日,Cloudberry Database v1.0.0 发布。

产品特性

多场景高效查询

  • Cloudberry Database 支持用户在大数据分析环境和分布式环境下进行有效的查询:
  • 大数据分析环境:Cloudberry Database 使用内置的 PostgreSQL 的优化器,可更好地支持分布式环境。这意味着它能够在处理大数据分析任务时产生更高效的查询计划。
  • 分布式环境:采用开源优化器 GPORCA 优化器,经过特定适配,可满足分布式环境下的查询优化需求。
  • 提供分区静态和动态减裁、聚集下推、连接过滤等技术,以帮助用户获得快速、精确的查询结果。
  • 提供了基于规则的查询优化手段和基于代价的查询优化手段,帮助用户生成更高效的查询执行计划。

多态数据存储

Cloudberry Database 支持多种不同的存储格式,包括 Heap 存储、AO 行存储、AOCS 列存储,用于不同的应用场景。同时,Cloudberry Database 还支持分区表,用户可以按照某个条件定义表的分区方式,查询时根据查询条件自动过滤不需要查询的子表,提高数据的查询效率。

多层次的数据安全防护

Cloudberry Database 加强对用户数据的保护,支持函数加密解密,以及透明数据加密和解密。透明数据加密解密指在用户不感知的情况下,加密解密过程由 Cloudberry Database 内核完成,目前可以支持的数据格式包括 Heap 表、AO 行存储、AOCS 列存储。同时加密算法除了常用的 AES 等算法以外,还特别支持国密算法,用户可以方便的扩展自己的算法到透明数据加密中。

数据加载

Cloudberry Database 提供了一系列高效且灵活的数据加载解决方案,以满足各种数据处理需求,包括并行化和持久化的数据加载、支持灵活的数据源和文件格式、集成多款 ETL 工具、支持流式数据加载、提供高性能的数据访问。

多层容错

Cloudberry Database 为了确保数据安全和服务的连续性,采取了数据页面、Checksum、镜像节点配置、控制节点备份的多级容错机制。

丰富的数据分析支持

Cloudberry Database 提供了强大的数据分析功能,使得数据处理、查询和分析变得更加高效,满足各类复杂的数据处理、分析和查询需求。

灵活的工作负载管理

Cloudberry Database 提供了全面的工作负载管理功能,旨在有效地利用和优化数据库资源,以确保高效、稳定的运行。其工作负载管理主要包括连接级别管理、会话级别管理、SQL 级别管理三个层次的控制。

多种兼容性

Cloudberry Database 的兼容性表现在 SQL 语法、组件、工具和程序、硬件平台和操作系统等多个方面,这使得它能够灵活应对各种工具、平台和语言。

架构介绍

在大多数情况下,Cloudberry Database 在 SQL 支持、功能、配置选项和最终用户功能方面与 PostgreSQL 非常相似。数据库用户与 Cloudberry Database 数据库的交互体验,非常接近与单机 PostgreSQL 进行交互。

Cloudberry Database 采用 MPP 架构技术,通过在多个服务器或主机之间分配数据和处理工作负载来存储和处理大量数据。

MPP 也称为大规模并行处理架构,是指具有多台主机的系统,这些主机协作执行同一操作。每台主机都有自己的处理器、内存、磁盘、网络资源和操作系统。Cloudberry Database使用这种高性能的系统架构来分配海量数据的负载,并且可以并行使用系统的所有资源来处理查询。

从用户角度来看,Cloudberry Database 是一个完备的关系数据库管理系统 (RDBMS)。从物理层面来看,它内含多个 PostgreSQL 实例。为了实现多个独立 PostgreSQL 实例的分工和合作,Cloudberry Database 在不同层面对数据存储、计算、通信和管理进行了分布式集群化处理。Cloudberry Database 虽然是一个集群,然而对用户而言,它封装了所有分布式的细节,为用户提供了单个逻辑数据库。这种封装极大地解放了开发人员和运维人员的工作。

Cloudberry Database 架构图如下所示:

  • 控制节点 (Coordinator) 是 Cloudberry Database 数据库系统的入口,它接受客户端连接和 SQL 查询,并将工作分配给数据节点实例。用户与 Cloudberry Database 进行交互,使用客户端程序(例如 psql)或应用程序编程接口(API)(例如 JDBC、ODBC 或 libpq PostgreSQL C API)连接到控制节点。
  • 控制节点是全局系统目录所在的位置,全局系统目录是一组系统表,其中包含有关 Cloudberry Database 数据库系统本身的元数据。
  • 控制节点不包含任何用户数据,数据只保存在数据节点实例上。
  • 控制节点对客户端连接进行身份验证,处理传入的 SQL 命令,在数据节点之间分配工作负载,协调每个数据节点返回的结果,并将最终结果呈现给客户端程序。
  • Cloudberry Database 使用预写日志记录(WAL)进行控制节点/Standby 镜像。在基于 WAL 的日志记录中,所有修改都将在写入磁盘之前先写日志,以确保任何进程内操作的数据完整性。
  • 数据节点 (Segment) 实例是独立的 Postgres 进程,每个数据节点存储一部分数据并执行相应部分查询。当用户通过控制节点连接到数据库并提交查询请求时,会在每个数据节点创建进程来处理查询。用户定义的表及其索引分布在 Cloudberry Database 中的所有可用数据节点中,每个数据节点都包含数据的不同部分,不同部分数据处理的进程在相应的数据节点中运行。用户通过控制节点与数据节点进行交互,数据节点在称为数据节点主机的服务器上运行。 数据节点主机通常执行 2 到 8 个数据节点,具体取决于处理器、内存、存储、网络接口和工作负载。数据节点主机的需要平衡配置,因为 Cloudberry Database获得最佳性能的关键是将数据和工作负载平均分配到数据节点中,以便所有数据节点同时开始处理一项任务并同时完成工作。
  • 内部互联 (Interconnect) 是 Cloudberry Database 系统架构中的网络层。内部互联是指控制节点、数据节点通信所依赖的网络基础架构,使用标准的以太网交换结构。 出于性能原因,建议使用 10 GB 或更快的网络。默认情况下,内部互联模块使用带有流控制(UDPIFC) 的 UDP 协议来实现通信,以通过网络发送消息。Cloudberry Database 执行的数据包验证超出了 UDP 所提供的范围,这意味着可靠性等同于使用 TCP 协议,并且性能和可伸缩性超过了 TCP 协议。如果将内部互联改为使用 TCP 协议,则 Cloudberry Database 的可伸缩性限制为 1000 个数据节点。使用 UDPIFC 作为默认协议时,此限制不适用。
  • Cloudberry Database 使用多版本控制 (Multiversion Concurrency Control/MVCC) 保证数据一致性。这意味着在查询数据库时,每个事务看到的只是数据的快照,其确保当前的事务不会看到其他事务在相同记录上的修改。据此为数据库的每个事务提供事务隔离。 MVCC 以避免给数据库事务显式锁定的方式,最大化减少锁争用以确保多用户环境下的性能。在并发控制方面,使用 MVCC 而不是使用锁机制的最大优势是,MVCC 对查询(读)的锁与写的锁不存在冲突,并且读与写之间从不互相阻塞。

使用场景

场景一:离线批处理数据仓库和数据集市建设 (Data Warehousing and Data Marts)

  • 构建高性能的 Cloudberry Database 数据仓库和数据集市,用于存储和查询大规模数据集,包含贴源层、明细层、汇总层等等,支持贴源模型建设、范式化模型建设、维度表和事实表建设等等,支持多种方式将源数据加载至数据仓库。
  • 支持多种类型的数据加工处理。
  • 支持高并发、高性能、低运维的数据仓库和数据集市建设。
  • 支持复杂的数据分析和查询需求,包括数据聚合、多维分析、关联查询等。

场景二:实时数据仓库建设

  • 支持高时效的数据仓库建设,支持流式数据的采集和处理,实现数据实时分析。

场景三:数据中台建设

  • 支持数据中台中 MPP 数据平台的建设,支持分布式并行处理架构。
  • 支持数据中台数据仓库的建设,支持多种主流 ETL 工具的对接。

场景四:湖仓一体建设

  • 支持企业湖仓一体建设,支持数据湖和数据仓库之间数据高效的互访。

场景五:现有 MPP 数据库替换

  • 支持非国产数据库的替换,例如 Oracle、TeraData、Greenplum、Vertical 等。
  • 支持其他类型 MPP 数据库的替换,例如 Gbase 8a、GaussDB 等。

场景六:地理信息系统 (GIS) 应用 (Geographic Information System Applications)

  • 在 Cloudberry Database 上构建地理信息系统 (GIS) 应用。
  • 存储和查询地理位置数据,支持空间数据分析、地理编码和地图可视化等功能。
  • 可以应用于城市规划、地理分析、地图导航等领域。

与 Greenplum 的特性对比

Cloudberry Database 100% 兼容 Greenplum,能提供所有你需要的 Greenplum 特性。

除此之外,Cloudberry Database 还拥有一些 Greenplum 当前不具备或不支持的特性,详见下文。

一般特性对比

说明

  • 在以下表格中,✅ 代表支持,❌ 代表不支持。
  • 以下表格中的对比,基于 Greenplum 7.0 Beta.3 版本。

功能名

Cloudberry Database

Greenplum

在 EXPLAIN 的结果中查看 WAL 的使用信息

Multiranges 类型

B 树自底向上索引清理

GiST的覆盖索引 (INCLUDE)

✅(待发布)

range_agg 范围类型聚合函数

CREATE ACCESS METHOD

✅(待发布)

TOAST 表上的 LZ4 压缩支持

JSONB 通过下标读取元素

配置复制插槽的最大 WAL 保留

验证备份的完整性 (pg_verifybackup)

客户端可以要求 SCRAM 通道绑定

Vacuum "紧急模式"

使用 postgres_fdw 的证书认证

UPSERT

✅(待发布)

COPY FROM Where

VACUUM / ANALYZE 跳过锁定表

HASH 分区表

CTE (SEARCH 和 CYCLE)

存储过程 OUT 参数

外键表的外键约束

pg_terminate_backend 的超时参数

Coordinator 自动故障转移

支持在 Kubernetes 上部署

性能特性对比

功能名

Cloudberry Database

Greenplum

并发重建索引 REINDEX CONCURRENTLY

聚合运算下推

CREATE STATISTICS - OR 和 IN/ANY 统计

增量排序

窗口函数的增量排序

查询流水线

BRIN 索引(多最小最大值,bloom)

查询并行

基于 Abbreviated Keys 进行排序

哈希索引的 WAL 支持

postgres_fdw 聚合下推

添加列时无需重写整个表

表连接运算支持运行时过滤器 (Runtime Filter)

AppendOnly 表支持索引扫描

安全特性对比

功能名

Cloudberry Database

Greenplum

透明数据加密 (TDE)

可信扩展

SCRAM-SHA-256

GSSAPI 时的加密 TCP/IP 连接

行级别安全策略

参考

https://cloudberrydb.org/zh/docs/

https://mp.weixin.qq.com/s/ME-rufZOF5_c9WgL9DqRyw

https://mp.weixin.qq.com/s/ZuVeEsLG1uoeEIREjKAbuQ

https://www.modb.pro/wiki/7408

https://github.com/cloudberrydb/cloudberrydb

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 产品特性
    • 多场景高效查询
      • 多态数据存储
        • 多层次的数据安全防护
          • 数据加载
            • 多层容错
              • 丰富的数据分析支持
                • 灵活的工作负载管理
                  • 多种兼容性
                  • 架构介绍
                  • 使用场景
                  • 与 Greenplum 的特性对比
                    • 一般特性对比
                      • 性能特性对比
                        • 安全特性对比
                        • 参考
                        相关产品与服务
                        对象存储
                        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档