国产数据库-云原生MPP数据库-Cloudberrydb
GreenPlum(GPDB)是一款基于PostgreSQL(PgSQL)的开源分布式数据库。目前GPDB7已发布beta4,PgSQL内核支持到了12.12,但PgSQL优秀内核特性比如并行查询仍旧不支持。经查询PgSQL中并行代码已存在于GPDB中,但执行计划生成这块却不支持。这就比较可惜了。现在有款国产分布式数据库CloudberryDB基于GPDB,继承了GPDB优秀特性,并兼容PgSQL
GreenPlum(GPDB)是一款基于PostgreSQL(PgSQL)的开源分布式数据库。目前GPDB7已发布beta4,PgSQL内核支持到了12.12,但PgSQL优秀内核特性比如并行查询仍旧不支持。经查询PgSQL中并行代码已存在于GPDB中,但执行计划生成这块却不支持。这就比较可惜了。现在有款国产分布式数据库CloudberryDB基于GPDB,继承了GPDB优秀特性,并兼容PgSQL14.4的内核,支持了很多GPDB不具备的特性。
1、CloudberryDB vs. GPDB7
1.1通用特性
|
特性名 |
说明 |
Cloudberrydb |
GPDB7 beta3 |
|
Explain (WAL) support |
在执行计划中显示SQL语句生成的WAL大小,PgSQL13中增加的特性 |
支持 |
不支持 |
|
Multiranges |
PgSQL14引入支持 |
支持 |
不支持 |
|
B-tree bottom-up index deletion |
PgSQL14引入支持 |
支持 |
不支持 |
|
Covering indexes for GiST (INCLUDE) |
PgSQL12引入支持 |
支持 |
即将支持 |
|
The range_agg range type aggregation function |
PgSQL14引入支持 |
支持 |
不支持 |
|
CREATE ACCESS METHOD |
PgSQL12引入支持 |
支持 |
即将支持 |
|
LZ4 compression for TOAST tables |
PgSQL14引入支持 |
支持 |
不支持 |
|
JSONB subscripting |
PgSQL14引入支持 |
支持 |
不支持 |
|
Configure the maximum WAL retention for replication slots |
PgSQL13引入支持 |
支持 |
不支持 |
|
Verify backup integrity (pg_verifybackup) |
PgSQL13引入支持 |
支持 |
不支持 |
|
Client can require SCRAM channel binding |
PgSQL13引入支持 |
支持 |
不支持 |
|
Vacuum "emergency mode" |
PgSQL14引入支持 |
支持 |
不支持 |
|
Certificate authentication with postgres_fdw |
PgSQL13引入支持 |
支持 |
不支持 |
|
UPSERT |
-- |
支持 |
即将支持 |
|
COPY FROM Where |
PgSQL12引入支持 |
支持 |
不支持 |
|
VACUUM / ANALYZE Skip Lock Table |
PgSQL12引入支持 |
支持 |
不支持 |
|
HASH partitioned table |
PgSQL11引入支持 |
支持 |
不支持 |
|
CTE(SEARCH and CYCLE) |
PgSQL14引入支持 |
支持 |
不支持 |
|
Procedure OUT parameters |
PgSQL14引入支持 |
支持 |
不支持 |
|
CHECK constraints for foreign tables |
-- |
支持 |
不支持 |
|
Timeout parameter for pg_terminate_backend |
PgSQL14引入支持 |
支持 |
不支持 |
|
Auto failover for Master |
应该是自己开发的 |
支持 |
不支持 |
|
Kubernetes deployment support |
应该是自己开发的 |
支持 |
不支持 |
1.2性能相关特性
|
特性名 |
说明 |
Cloudberrydb |
GPDB7 beta3 |
|
REINDEX CONCURRENTLY |
-- |
支持 |
不支持 |
|
Aggregation pushdown |
-- |
支持 |
不支持 |
|
CREATE STATISTICS - OR and IN/ANY statistics |
-- |
支持 |
不支持 |
|
Incremental sort |
-- |
支持 |
不支持 |
|
Incremental sort for window functions |
-- |
支持 |
不支持 |
|
Query pipelining |
-- |
支持 |
不支持 |
|
BRIN Index(multi-minmax, bloom) |
-- |
支持 |
不支持 |
|
Query parallelism |
-- |
支持 |
不支持 |
|
Abbrevated keys for sorting |
-- |
支持 |
不支持 |
|
Hash Index WAL support |
-- |
支持 |
不支持 |
|
postgres_fdw aggregation pushdown |
-- |
支持 |
不支持 |
|
No need to rewrite the whole table when adding a column |
-- |
支持 |
不支持 |
|
Runtime Filter for Join |
-- |
支持 |
不支持 |
|
Index Scan for the AppendOnly table |
-- |
支持 |
即将支持 |
1.3安全相关特性
|
特性名 |
说明 |
Cloudberrydb |
GPDB7 beta3 |
|
Transparent Data Encryption (TDE) |
-- |
支持 |
不支持 |
|
Trusted extensions |
-- |
支持 |
不支持 |
|
SCRAM-SHA-256 |
-- |
支持 |
不支持 |
|
Encrypted TCP/IP connection when GSSAPI |
-- |
支持 |
不支持 |
|
Row-level security policy |
-- |
支持 |
不支持 |
2、CloudberryDB向量化
2020年PostgreSQL中国技术大会上,Cloudberry提到进行了向量化技术探索。采用Apache Arrow作为其列存,基于此进行向量化引擎改造。
采用Arrow实现向量化执行的优势:零拷贝的列式计算引擎;适合向量执行的数据内存格式,便于SIMD指令使用;尽可能降低了列式数据做JIT的拆分和组合开销,优化器决定是否选择JIT。
当然它也是将向量化执行器做成了一个插件,尽量减少对内核的入侵。对各个算子进行了重写包括:Scan、Agg、Sort、Motion、Project。
不过这块HashData并没有开源。
3、参考
https://github.com/cloudberrydb/cloudberrydb
https://www.modb.pro/doc/100993
更多推荐



所有评论(0)