MPP介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hmxz2nn/article/details/82715868

MPP即大规模并行处理(Massively Parallel Processor )。它是一种基于PostgreSQL的分布式数据库,采用Shared-Nothing架构,主机、操作系统、内存、存储都是自我控制的,不存在共享。数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。

MPP虽然是关系型数据库产品,它的特点主要就是查询速度快,数据装载速度快,批量DML处理快。而且性能可以随着硬件的添加,呈线性增加,拥有非常良好的可扩展性。因此,它主要适用于面向分析的事务场景。

与SMP的比较

SMP (Symmetric Multi Processing),对称多处理系统。系统内有许多紧耦合多处理器,在这样的系统中,所有的CPU共享全部资源,如总线,内存和I/O系统等,操作系统或管理数据库的复本只有一个,这种系统有一个最大的特点就是共享所有资源。
在这里插入图片描述
MPP (Massively Parallel Processing),大规模并行处理系统,这样的系统是由许多松耦合的处理单元组成的,要注意的是这里指的是处理单元而不是处理器。每个单元内的CPU都有自己私有的资源,如总线,内存,硬盘等。在每个单元内都有操作系统和管理数据库的实例复本。这种结构最大的特点在于不共享资源。
在这里插入图片描述
通常情况下,MPP系统因为要在不同处理单元之间传送信息(请注意上图),所以它的效率要比SMP要差一点,但是这也不是绝对的。因为MPP系统不共享资源,因此对它而言,资源比SMP要多,当需要处理的事务达到一定规模时,MPP的效率要比SMP好。这就是看通信时间占用计算时间的比例而定,如果通信时间比较多,那MPP系统就不占优势了,相反,如果通信时间比较少,那MPP系统可以充分发挥资源的优势,达到高效率。
当前使用的OTLP程序中,用户访问一个中心数据库,如果采用SMP系统结构,它的效率要比采用MPP结构要快得多。而MPP系统在决策支持和数据挖掘方面显示了优势,可以这样说,如果操作相互之间没有什么关系,处理单元之间需要进行的通信比较少,那采用MPP系统就要好,相反就不合适了。

OLTP与OLAP

当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。

OLTP的最大特点是支持大量并发用户定期添加和修改数据,并且可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理结果的一个重要指标是系统性能,具体体现为实时请求-响应时间(Response Time),即用户在终端上输入数据之后,到计算机对这个请求给出答复所需要的时间。OLTP是由前台、应用、数据库共同完成的,处理快慢以及处理程度取决于数据库引擎、服务器、应用引擎。

OLAP是基于数据仓库的信息分析处理过程,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。其基本特点是:
1.本身不产生数据,其基础数据来源于生产系统中的操作数据;
2.基于查询的分析系统;
3.复杂查询经常使用多表联结、全表扫描等,牵涉的数据量往往十分庞大;
4.响应时间与具体查询有很大关系;
5.用户数量相对较小,其用户主要是业务人员与管理人员。

由此可见,对于大规模并发查询、频繁的数据更新操作、交互式的查询处理,MPP都是不合适的。

OLAP系统数据加载能力相当重要,对于数据导入速率直接影响使用体验。
1.MPP提供高速的数据导入导出功能;导入导出子节点直接连入到数据源、数据加载速率随着节点数线性增长,可提供每小时>10TB的能力。
2.支持的数据导入源比较多:可从文件系统、ETL产、Hadoop(hbase/hive/hdfs)上导入导出。
3.自带ETL工具gpfdist/gpload,并且能够并发执行,大大提高加载速率。
4.数据的导入导出操作不经过master节点,这样master节点不会成为系统瓶颈。

MPP与传统数据库及hadoop的比较

大多数人会想到大数据就等于hadoop,不可否认对于超大规模的(PB级别)的数据分析来说,hadoop有一定的适用性。但对于很多场景来说,数据量在TB到PB级别的数据分析系统,MPP架构更合适,或者在很多场景下需要使用hadoop和MPP架构数据库混搭来更好的适应客户需求。

与传统数据库及hadoop的比较,3者在应用场景上各有侧重。
hadoop对于数据规模优势比较明显,但对于复杂的关联查询和即席查询支持较弱。
传统数据库对于复杂查询支持最好,但是对于数据规模和处理时间上又不足。
MPP数据库集群综合支持度是最好的,对于查询复杂度和数据规模能很好适应中大型企业。

参考:
1.https://blog.csdn.net/maochengtao/article/details/42583585

猜你喜欢

转载自blog.csdn.net/hmxz2nn/article/details/82715868