MPP数据库对比及选择

概念

MPP

MPP (Massively Parallel Processing),即大规模并行处理。

简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。

什么是MPP数据库?

MPP数据库是一款 Shared Nothing架构的分布式并行结构化数据库集群,具备高性能、高可用、高扩展特性,可以为超大规模数据管理提供高性价比的通用计算平台,并广泛地用于支撑各类数据仓库系统、BI 系统和决策支持系统

OLAP
数据分析的目标则是探索并挖掘数据价值,作为企业高层进行决策的参考,通常被称为OLAP(On-Line Analytical Processing,联机分析处理)。

业务数据积累时所产生的价值信息则被OLAP不断呈现,企业高层通过参考这些信息会不断调整经营方针,也会促进基础业务的不断优化。

OLAP不应该对OLTP产生任何影响,(理想情况下)OLTP应该完全感觉不到OLAP的存在。

OLTP
业务类系统主要供基层人员使用,进行一线业务操作,通常被称为OLTP(On-Line Transaction Processing,联机事务处理)。

从功能角度来看,OLTP负责基本业务的正常运转。

使用场景

总体来说MPP数据库更适合数据规模较大的关系型数据的处理。

特征 传统数据库 MPPDB Hadoop/Hive
扩展能力 低★ 中★★ 高★★★
系统和数据管理成本 中★★ 中★★ 高★
应用开发维护成本 中★★ 中★★ 高★
SQL支持 高★★★ 高★★★ 中★★
数据规模 TB级别★ 准PB级别(10PB以下)★★ PB级别★★★
计算性能 对关系型操作效率中★★ 对关系型操作效率高★★★ 对非关系型操作效率高★
数据结构 结构化数据 结构化数据 结构化、半结构化和非机构化数据

常见的MPP数据库

我这里选用的基本上都是兼容MySQL的MPP数据库。

Doris、Clickhouse、Tidb三者对比

类别 Doris Clickhouse TIDB
Share-Nothing
列存
架构 内置分布式协议进行元数据同步
Master/Follower/Observer节点类型
依赖ZooKeeper进行DDL和Replica同步 Master/Slave
事务性 事务保证数据ACID 100万以内原子性,DDL无事务保证 事务保证数据ACID
数据规模 单集群< 10PB 单集群< 10PB 单集群< 10PB
Kafka导入 内置支持 内置支持 内置支持
MySQL协议兼容 兼容 部分兼容 高度兼容 MySQL 5.7 协议

相关文档

Doris

https://doris.apache.org/zh-CN/docs/dev/get-starting/what-is-apache-doris

TIDB

https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb

客户端

所有支持Mysql的客户端都可以使用。

但是不要在这些客户端上使用图形化界面创建表,部分语法是不一样的。