1、 什么是MPP?
MPP (Massively Parallel Processing),即大規模並行處理,在數據庫非共享集群中,每個節點都有獨立的磁盤存儲系統和內存系統,業務數據根據數據庫模型和應用特點划分到各個節點上,每台數據節點通過專用網絡或者商業通用網絡互相連接,彼此協同計算,作為整體提供數據庫服務。非共享數據庫集群有完全的可伸縮性、高可用、高性能、優秀的性價比、資源共享等優勢。
簡單來說,MPP是將任務並行的分散到多個服務器和節點上,在每個節點上計算完成后,將各自部分的結果匯總在一起得到最終的結果(與Hadoop相似)。
2、MPP(大規模並行處理)架構 
3、 MPP架構特征
● 任務並行執行;
● 數據分布式存儲(本地化);
● 分布式計算;
● 私有資源;
● 橫向擴展;
● Shared Nothing架構。
數據庫構架設計中主要有Shared Everthting、Shared Nothing、和Shared Disk:
-
Shared Everthting:一般是針對單個主機,完全透明共享CPU/MEMORY/IO,並行處理能力是最差的,典型的代表SQLServer
-
Shared Disk:各個處理單元使用自己的私有 CPU和Memory,共享磁盤系統。典型的代表Oracle Rac, 它是數據共享,可通過增加節點來提高並行處理的能力,擴展能力較好。其類似於SMP(對稱多處理)模式,但是當存儲器接口達到飽和的時候,增加節點並不能獲得更高的性能 。
-
Shared Nothing:各個處理單元都有自己私有的CPU/內存/硬盤等,不存在共享資源,類似於MPP(大規模並行處理)模式,各處理單元之間通過協議通信,並行處理和擴展能力更好。典型代表DB2 DPF和Hadoop ,各節點相互獨立,各自處理自己的數據,處理后的結果可能向上層匯總或在節點間流轉。
我們常說的 Sharding 其實就是Share Nothing架構,它是把某個表從物理存儲上被水平分割,並分配給多台服務器(或多個實例),每台服務器可以獨立工作,具備共同的schema,比如MySQL Proxy和Google的各種架構,只需增加服務器數就可以增加處理能力和容量。
-
-
Shared nothing架構(shared nothing architecture)是一 種分布式計算架構。這種架構中的每一個節點( node)都是獨立、自給的,而且整個系統中沒有單點競爭。
-
在一個純Shared Nothing系統中,通過簡單地增加一些廉價的計算機做為系統的節點卻可以獲取幾乎無限的擴展。
-
Shared nothing系統通常需要將他的數據分布在多個節點的不同數據庫中(不同的計算機處理不同的用戶和查詢)或者要求每個節點通過使用某些協調協議來保留它自己的應用程序數據備份 ,這通常被成為數據庫Sharding。
4、 MPP服務器架構
它由多個SMP服務器通過一定的節點互聯網絡進行連接,協同工作,完成相同的任務,從用戶的角度來看是一個服務器系統。其基本特征是由多個SMP服務器(每個SMP服務器稱節點)通過節點互聯網絡連接而成,每個節點只訪問自己的本地資源(內存、存儲等),是一種完全無共享(Share Nothing)結構,因而擴展能力最好,理論上其擴展無限制。
5、MPPDB
MPPDB是一款 Shared Nothing 架構的分布式並行結構化數據庫集群,具備高性能、高可用、高擴展特性,可以為超大規模數據管理提供高性價比的通用計算平台,並廣泛地用於支撐各類數據倉庫系統、BI 系統和決策支持系統
6、MPPDB架構
MPP 采用完全並行的MPP + Shared Nothing 的分布式扁平架構,這種架構中的每一個節點(node)都是獨立的、自給的、節點之間對等,而且整個系統中不存在單點瓶頸,具有非常強的擴展性。
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和MPP兩種技術的特定和適用場景為:
● Hadoop在處理非結構化和半結構化數據上具備優勢,尤其適合海量數據批處理等應用要求。
● MPP適合替代現有關系數據機構下的大數據處理,具有較高的效率。
MPP適合多維度數據自助分析、數據集市等;Hadoop適合海量數據存儲查詢、批量數據ETL、非機構化數據分析(日志分析、文本分析)等。
由上述對比可預見未來大數據存儲與處理趨勢:MPPDB+Hadoop混搭使用,用MPP處理PB級別的、高質量的結構化數據,同時為應用提供豐富的SQL和事物支持能力;用Hadoop實現半結構化、非結構化數據處理。這樣可以同時滿足結構化、半結構化和非結構化數據的高效處理需求。
本文引用自:
https://blog.csdn.net/qq_42189083/article/details/80610092
https://www.cnblogs.com/kzwrcom/p/6397709.html
https://zhuanlan.zhihu.com/p/148621151
