1、先了解下OLTP与OLAP区别
OLTP(OnLine Transaction Processing ,联机事务处理)系统
例如mysql。擅长事务处理,在数据操作中保持着很强的一致性和原子性 ,能够很好的支持频繁的数据插入和修改 ,但是,一旦数据量过大,OLTP便力不从心了。
OLAP(On-Line Analytical Processing,联机分析处理)系统
例如Greenplum。不特别关心对数据进行输入、修改等事务性处理,而是关心对已有 的大量数据进行多维度的、复杂的分析的一类数据系统 。
2、什么是MPP数据库?(Massively Parallel Processing)
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