1、先了解下OLTP与OLAP区别

OLTP(OnLine Transaction Processing ,联机事务处理)系统

例如mysql。擅长事务处理,在数据操作中保持着很强的一致性和原子性 ,能够很好的支持频繁的数据插入和修改 ,但是,一旦数据量过大,OLTP便力不从心了。

OLAP(On-Line Analytical Processing,联机分析处理)系统

例如Greenplum。不特别关心对数据进行输入、修改等事务性处理,而是关心对已有 的大量数据进行多维度的、复杂的分析的一类数据系统 。

2、什么是MPP数据库?(Massively Parallel Processing)

MPP架构是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。采用MPP架构的数据库称为MPP数据库。

mpp数据 关系型数据库 mpp数据类型_数据库

3、为什么需要MPP数据库?

3.1 海量数据的分析需求

传统数据库无法支持大规模集群与PB级别数据量

单台机器性能受限、成本高昂,扩展性受限

3.2 支持复杂的结构化查询(这里是重点)

复杂查询经常使用多表联结、全表扫描等,牵涉的数据量往往十分庞大;支持复杂sql查询和支持大数据规模;

3.3 Hadoop技术的先天不足

Hive等sql-on-hadoop性能太慢,分析场景不一样,SQL兼容性与支持不足

4、MPP数据库应用领域

大数据分析:MPP数据库做大数据计算或分析平台非常适合,例如:数据仓库系统、历史数据管理系统、数据集市等。

有很强的并行数据计算能力和海量数据存储能力,但是他不擅长高频的小规模数据插入、修改、删除,每次事务处理的数据量不大。这类数据衡量指标是TPS,适用的系统是OLTP数据库。

-----

所以,报表统计分析、运维统计数据,快速生成报表展示都可以使用mpp数据库。

符合几个条件:不需要更新数据,不需要频繁重复离线计算,不需要并发大。

有上百亿以上离线数据,不更新,结构化,需要各种复杂分析的sql语句,那就可以选择他。几秒、几十秒立即返回你想要的分析结果。例如sum,count,group by,order,好几层查询嵌套,在几百亿数据里分分钟出结果

这类的数据库有,clickhouse,greenplum,Doris