MPP架构知识整理
2020-12-21 本文已影响0人
ShootHzj
什么是MPP
Massively Parallel Processing, 即大规模并行处理
一般用来指多个SQL数据库节点搭建的数据仓库系统。执行查询的时候,查询可以分散到多个SQL数据库节点上执行,然后汇总返回给用户
MPP的核心
- 减少资源的共享,尽力达到Shared Nothing。 MPP并不会进行远程计算,每个节点都有自己独立的CPU,内存和磁盘资源
- 并行,MPP并没有像并行度这样的概念,而是每个节点都在进行相同的工作。所以对MPP架构进行水平扩容无法提升并行度
上面说的就是纯粹的MPP架构,但现在MPP架构和Sql on Hadoop的区别也变得模糊,比如,为了提高并行度引入类似并行度的概念,为了降低单个节点宕机的影响,引入副本的概念等。
MPP的优缺点
MPP解决了单个SQL数据库不能存放海量数据的问题,但是也存在一些问题,例如:
- 当节点数达到100左右时,MPP有些仍会遇到SQScalability的问题,速度变慢,或者不稳定。
- 当增加或者删除节点的时候,需要的维护工作仍然比较大,集群会遇到数据迁移和重新平衡的问题
Sql on Hadoop架构特征
SQL over Processing Framework
"Hadoop通用计算框架+SQL解析引擎", 存储层,执行引擎层,SQL解析层三者分离,可以方便替换执行引擎,对使用者而言,同一份数据可以采用不同并行执行引擎来分析。优点是灵活性高,支持细粒度容错,集群扩展性好,缺点是效率无法保证
OLAP over Hadoop
预计算,即数据都以时间序列的方式进入系统并经过数据预聚合和建立索引,因为是预计算,所以应对多维查询时速度非常快,且稳定,支持高并发,支持集群扩展。缺点是灵活性较差
MPP和Sql on Hadoop的区别
- MPP数据库适合存储高密度价值数据,并且是长期存储和多次使用,所以MPP并行数据库会花大量的精力在Load阶段,把数据处理成适合分析格式。带来的优点就是从查询速度快,通常在秒级甚至毫秒级以内就可以返回查询结果。缺点是不支持细粒度的容错。
- SQL on Hadoop是利用Hadoop平台存储数据,在其之上实现SQL查询引擎。最大的特点和Scalability非常好,可以支持超过1000个节点的集群。但是由于Hadoop的特点,很多查询还是需要做大量的数据扫描操作,因此查询速度往往比MPP要慢,而且支持的同时并发查询数一般也比较低。
样例产品
MPP
GreenPlum,Presto等
elasticsearch
SQL on Hadoop
Hive,Spark等