作为一个长期使用数仓产品的用户,一直使用greenplum。
近期参加了openGauss的学习课程。openGauss是基于postgresql9.2.4版本发展而来的,
而当前最新版Greenplum 6的内核版本为PostgreSQL 9.4 。
所以,可以看作是同源,但是openGauss属于单体数据库,GP属于分布式数据库。
但是基本概念,管理方法上基本差不多。
openGauss支持行列混合存储,甚至支持内存表。
greenplum也支持行列混合存储,但是不支持内存表。
行存储:
是openGauss默认的表存储方式,用于TP场景,支持在线业务数据频繁更新的场景。
greenplum默认也是行存储格式,主要适合AP场景。不适合联机交易场景。虽然现在也宣传支持HTAP混合负载场景。
列存储:
openGauss支持业务数据追加和分析场景。
这一点跟greenplum使用场景非常相似。但是greenplum是MPP架构,性能应该更强一些。
内存表:
openGauss的MOT表,是一种高性能(查询和事务时延)、高可扩展性(吞吐量和并发量)的内存表。类似oracle的timesten内存数据库。
数据库启动后,其中所有表和索引完全驻留在内存。支持高吞吐,低时延,极高性能场景。特别适合在一些实时交易,实时风控,实时计算,广告投放的场景下使用。
重要的是:MOT表的使用方式很简单。集成在openGauss软件中,因此可以从openGauss的SQL和HA特性受益,在生产级数据库中实现最佳的TPC-C性能。
所有MOT命令的语法与基于磁盘的表的语法相同,并支持大多数标准,如PostgreSQL SQL、DDL和DML命令和功能,如存储过程。只有MOT中的创建和删除表语句与openGauss中基于磁盘的表的语句不同。
以创建一个名为ceshi的内存表(表中有一个名为A的整数列)为例:
create FOREIGN table ceshi(A int) [server mot_server];
要删除一个名为ceshi的MOT表:
drop FOREIGN table ceshi;
支持openGauss创建和删除索引语法:
create index ceshi_index1 on ceshi(A) ;




