Hawq學習筆記 --- MPP(大規模並行處理)架構(Massively Parallel Processing)
阿新 • • 發佈:2019-01-01
MPP是 Massively Parallel Processing的縮寫。
MPP 是將任務並行的分散到多個伺服器和節點上,在每個節點上計算完成後,將各自部分的結果彙總在一起得到最終的結果。 首先MPP 必須消除手工切分資料的工作量。 這是MySQL 在網際網路應用中的主要侷限性。 另外MPP 的切分必須在任何時候都是平均的 , 不然某些節點處理的時間就明顯多於另外一些節點。 對於工作負載是不是要平均分佈有同種和異種之分,同種就是所有節點在資料裝載的時候都同時轉載,異種就是可以指定部分節點專門用來裝載資料(邏輯上的不 是物理上) , 而其他所有節點用來負責查詢。 Aster Data 和 Greenplum 都屬於這種。 兩者之間並沒有明顯的優勢科研,同種的工作負載情況下,需要軟體提供商保證所有節點的負載是平衡的。 而異種的工作負載可以在你覺得資料裝載很慢的情況下手工指定更多節點裝載資料 。 區別其實就是自動化和手工控制,看個人喜好而已。 另外一個問題是查詢如何被初始化的。 比如要查詢銷售最好的10件商品,每個節點都要先計算出自己的最好的10件商品,然後向上彙總,彙總的過程,肯定有些節點做的工作比其他節點要多。一般用來做高可用的資料能用在查詢上嘛?有什麼工具能檢視查詢的執行計劃嗎?這些功能能幫助你定位效能瓶頸或給出你指導意見嘛? 在開始使用MPP
的時候你至少應該明白幾件事:不同的資料分佈策略到底如何影響你的不同的工作負載模式如何影響你的設計Share
Everthing 和 Share Nothing 資料倉庫裡面share everything 的代表是Oracle 的Exadata 。 Sybase 也從oracle 引入了rac 的套件,但是Sybase 本身沒有硬體,所有架構上還是跟Exadata 有很大區別。 就跟普通所說的RAC 和 Exadata 的在架構上的區別一樣。