Apache Doris vs Clickhouse vs Greenplum
2024-04-09 20:00:40  阅读数 6361

架构比对

Apache Doris、Clickhouse 、Greenplum都是基于MPP架构的实现的可用于数仓分析的数据库管理系统。下边通过具体的架构设计分析三者的区别。

Apache Dodis

官网描述

Apache Doris是一个现代化的MPP分析型数据库产品。

架构图

主从架构

架构描述

1. 高可靠

Apache Doris 使用了主从架构进行设计。通过Fronted Engine(前端引擎) 的主从达到高可用的目的。FE主要有有三个⾓⾊,⼀个是leader,⼀个是follower,还有⼀个observer。leader跟follower,主要是⽤来达到元数据的⾼可⽤,保证单节点宕机的情况下,元数据能够实时地在线恢复,⽽不影响整个服务。erver只是⽤来扩展查询节点,就是说如果在发现集群压⼒⾮常⼤的情况下,需要去扩展整个查询的能⼒,那么可以加observer的节点。observer不参与任何的写⼊,只参与读取。Apache Doris 元数据层⾯,Doris采⽤Paxos协议以及Memory + Checkpoint + Journal的机制来确保元数据的⾼性能及⾼可靠。

2. 高可用

Apache Doris 通过建表的时候指定多副本的机制实现高可靠的功能。

3. 高效查询

Doris整体架构整合Coogle Mesa + Apache Impala + ORC列式从存储三种技术。通过Mesa实现预聚合特性,Impala 实现MPP连接处理的特性,ORC列式存储更适合OLAP数据分析。

多副本的机制减少数据网络拷贝,也提供了查询的效率。

将数据进行分区、分桶然后分发散列到各个节点实现分布式计算。还有其他的索引、引擎等优化暂不从架构层面对比分析了。

ClickHouse

官网描述

ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。

架构图

多主架构

架构描述

1. 高可靠

ClickHouse则采用Multi-Master多主架构,集群中每个角色对等,客户端访问任意一个节点都能得到相同的效果。

2. 高可用

同样也是支持数据的多副本,这样单点故障不影响数据的查询。

3. 高效查询

多副本节点计算可以基于本地数据较少IO传输。

纯列式存储适合OLAP聚合分析。

数据分区、分片、分块多进程+多线程并行计算。分块数和cpu核心数相同,充分利用CPU多线程并行计算。

表引擎丰富,尤其是MergeTree引擎做了通过各种维度的优化更适合OLAP分析。

Greenplum

官网描述

GP(GreenPlum)是业界最快最高性价比的关系型分布式数据库,它在开源的PG(PostgreSql)的基础上采用MPP架构(Massive Parallel Processing,海量并行处理),具有强大的大规模数据分析任务处理能力。Greenplum 是全球领先的大数据分析引擎,专为分析、机器学习和AI而打造。

架构图

主备架构

架构描述

1:高可靠

采用master+standby的方式实现服务的高可靠。

1)        创建与客户端的会话链接和管理;

2)        SQL的解析并造成分布式的执行计划;

3)        将生成好的执行计划分发到每一个Segment上执行;

4)        收集Segment的执行结果;

5)        不存储业务数据,只存储数据字典;

6)        能够一主一备(standby),分布在两台机器上,为了提升性能,最好单独占用一台机器。

2:高可用

数据冗余-Segment 镜像保护。主节点(Primary Segment)故障后会自动切换到镜像节点(Mirror Segment),集群仍然保持可用状态。当主节点恢复并启动以后,主节点会自动恢复期间的变动。

3:高效查询

多级分区、也支持列式存储。多节点并行计算。

当然Greenplum不仅仅支持OLAP,同时OLTP 是一款优秀的HTAP数据库。

小结

以上对三款数据库架构层面进行了简单介绍,由于使用场景不同,稳定性,易用性、扩展性以及生态各有千秋,不存在孰好孰坏,可以根据自己的使用场景,详细了解哪款数据库更能契合自己的场景解决自己的问题。