MPP(大规模并行处理)简介

1、 什么是MPP?

MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。

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

2、MPP(大规模并行处理)架构 

                                         (MPP架构)

3、 MPP架构特征

● 任务并行执行;

● 数据分布式存储(本地化);

● 分布式计算;

● 私有资源;

● 横向扩展;

● Shared Nothing架构。

4、 MPP服务器架构

它由多个SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。其基本特征是由多个SMP服务器(每个SMP服务器称节点)通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种完全无共享(Share Nothing)结构,因而扩展能力最好,理论上其扩展无限制。

5、MPPDB

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

6、MPPDB架构

MPP 采用完全并行的MPP + Shared Nothing 的分布式扁平架构,这种架构中的每一个节点(node)都是独立的、自给的、节点之间对等,而且整个系统中不存在单点瓶颈,具有非常强的扩展性。

                                        MPPDB架构

7、 MPPDB特征

MPP 具备以下技术特征:

1) 低硬件成本:完全使用 x86 架构的 PC Server,不需要昂贵的 Unix 服务器和磁盘阵列;

2) 集群架构与部署:完全并行的 MPP + Shared Nothing 的分布式架构,采用 Non-Master 部署,节点对等的扁平结构;

3) 海量数据分布压缩存储:可处理 PB 级别以上的结构化数据,采用 hash分布、random 存储策略进行数据存储;同时采用先进的压缩算法,减少存储数据所需的空间,可以将所用空间减少 1~20 倍,并相应地提高 I/O 性能;

4) 数据加载高效性:基于策略的数据加载模式,集群整体加载速度可达2TB/h

5) 高扩展、高可靠:支持集群节点的扩容和缩容,支持全量、增量的备份/恢复;

6) 高可用、易维护:数据通过副本提供冗余保护,自动故障探测和管理,自动同步元数据和业务数据。提供图形化工具,以简化管理员对数据库的管理工作;

7) 高并发:读写不互斥,支持数据的边加载边查询,单个节点并发能力大于 300 用户;

8) 行列混合存储:提供行列混合存储方案,从而提高了列存数据库特殊查询场景的查询响应耗时;

9) 标准化:支持SQL92 标准,支持 C API、ODBC、JDBC、ADO.NET 等接口规范。

8、 常见MPPDB

GREENPLUM(EMC)

Asterdata(Teradata)

Nettezza(IBM)

Vertica(HP)

GBase 8a MPP cluster(南大通用)

9、 MPPDB、Hadoop与传统数据库技术对比与适用场景

MPPDB与Hadoop都是将运算分布到节点中独立运算后进行结果合并(分布式计算),但由于依据的理论和采用的技术路线不同而有各自的优缺点和适用范围。两种技术以及传统数据库技术的对比如下:

特征

Hadoop

MPPDB

传统数据仓库

平台开放性

运维负责度

扩展能力

拥有成本

系统和数据管理成本

应用开发维护成本

SQL支持

中(低)

数据规模

PB级别

部分PB

TB级别

计算性能

对非关系型操作效率高

对关系型操作效率高

对关系型操作效率中

数据结构

机构化、半结构化和非机构化数据

结构化数据

结构化数据


综合而言,Hadoop
和MPP两种技术的特定和适用场景为:

Hadoop在处理非结构化和半结构化数据上具备优势,尤其适合海量数据批处理等应用要求。

MPP适合替代现有关系数据机构下的大数据处理,具有较高的效率。

MPP适合多维度数据自助分析、数据集市等;Hadoop适合海量数据存储查询、批量数据ETL、非机构化数据分析(日志分析、文本分析)等。

由上述对比可预见未来大数据存储与处理趋势:MPPDB+Hadoop混搭使用,用MPP处理PB级别的、高质量的结构化数据,同时为应用提供丰富的SQL和事物支持能力;用Hadoop实现半结构化、非结构化数据处理。这样可以同时满足结构化、半结构化和非结构化数据的高效处理需求。

 


### MPP 大规模并行处理的技术原理 MPP(Massively Parallel Processing,大规模并行处理)是一种分布式计算架构,在这种架构下,数据被划分为多个片段,每个片段被分配给一个或多个节点进行存储。当执行查询时,这些查询会被分解成多个子任务,每个子任务可以在不同的节点上并行执行[^4]。 #### 数据分布 为了提高效率和可扩展性,MPP系统中的数据通常按照一定的策略分布在不同节点上。常见的分片方法包括哈希分片、范围分片以及列表分片等。通过合理的数据分布方式可以减少跨节点的数据交换量,从而提升整体性能。 #### 任务划分 在接收到用户的SQL请求之后,MPP数据库管理系统会将其解析为逻辑执行计划,并进一步转换为物理执行计划。此过程中涉及到的任务切分会依据具体的算法来决定如何最优地利用集群资源完成工作负载。例如,某些操作可能会尽可能本地化以降低网络开销;而其他一些则需考虑全局协调因素。 #### 数据移动 尽管尽力优化了前期准备阶段的工作,但在实际运行期间仍然不可避免存在部分运算环节需要依赖于多台机器间的协作才能达成目标——即所谓的“shuffle phase”。此时便会产生一定数量级的数据迁移活动,它不仅消耗额外的时间成本同时也增加了系统的复杂度管理难度。因此设计良好的通信机制对于保持高效至关重要。 #### 结果汇总 最后一步就是收集来自各处的结果集并将它们组装起来形成最终答复反馈给前端应用程序或者终端用户那里去。这一过程同样讲究技巧,既要保证准确性又要兼顾速度方面的要求。 ```sql -- 示例 SQL 查询展示 MPP 如何拆分子任务 SELECT COUNT(*) FROM sales WHERE sale_date BETWEEN '2023-01-01' AND '2023-12-31'; ``` 上述例子中,`sales` 表可能已经被分区存放在不同的节点上了,所以该聚合函数将会分别由各个负责相应日期区间记录的服务器独立计算局部计数值,然后再把这些值加总得到总的销售次数统计结果。 ### 应用场景 由于其卓越的大数据分析能力,MPP广泛应用于金融行业风险评估模型训练、电信运营商客户行为分析平台建设等领域当中。特别是在面对海量结构化信息快速检索需求的情况下表现尤为突出。此外,随着物联网设备普及程度不断提高所带来的非实时流式数据处理挑战也成为了推动此类技术进步的重要动力源泉之一。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值