初識大資料(三. Hadoop與MPP資料倉庫)
MPP代表大規模並行處理,這是網格計算中所有單獨節點參與協調計算的方法。 是將任務並行的分散到多個伺服器和節點上,在每個節點上計算完成後,將各自部分的結果彙總在一起得到最終的結果。 MPP DBMS是建立在這種方法之上的資料庫管理系統。在這些系統中的每個查詢都會被分解為由MPP網格的節點並行執行的一組協調程序,它們的執行時間比傳統的SMP RDBMS系統快得多。該架構的另一個優點是可擴充套件性,因為可以通過新增新節點擴充套件網格。為了能夠處理大量的資料,這些解決方案中的資料通常在每個節點只處理其本地資料的方式在節點(分片)之間分割。這是一種完全無共享(Share Nothing)結構,因而擴充套件能力最好,理論上其擴充套件無限制,目前技術上可實現512個節點互聯,數千個CPU。MPP有對SQL的完整相容和一些事務處理功能,如果資料擴充套件需求不是特別大,資料都是結構化資料,習慣使用傳統RDBMS,可以選擇MPP資料倉庫。
目前有很多關於hadoop技術棧與MPP資料倉庫的討論與對比,很多觀點認為hadoop可以替代MPP,但是從下表的比對可以看出兩者的差異,對於不同的場景以及MPP技術的發展,應該還是處於並存的狀態。另外,基於複雜的資料場景下,混合框架的使用,也還是會存的。我們團隊就使用混合框架構建了資料中心,從而完善OLTP能力。
以下是兩者的比較:
特性 |
Hadoop |
MPP資料倉庫 |
計算節點數 |
可到數千個 |
一般1000個以內 |
資料量 |
支援大於10P |
一般不大於10P |
資料型別 |
關係型,半關係型,無結構化,語音,影象,視訊 |
關係型 |
時延 |
中/高 |
低(但還是要看資料量和維度的數量) |
應用生態 |
創新型/人工智慧 |
傳統資料庫型/BI類 |
應用開發介面 |
SQL,MR,豐富的程式語言介面 |
標準資料庫SQL |
可擴充套件性 |
無窮的可能,完整的程式設計介面 |
有限擴充套件能力,主要通過UDF支援 |
事務支援 |
有限 |
完整 |
價格 |
低 |
高 |