一、SMP數(shù)據(jù)庫架構(gòu)
SMP(對稱多處理器結(jié)構(gòu),Symmetric Multi-Processor)數(shù)據(jù)庫架構(gòu)部署成本相對較低,可以運行從大型服務器到中型商用硬件的各種設備。它在提供合理的性能和吞吐量方面擁有良好的記錄。
下圖說明了此體系結(jié)構(gòu)的基本特性 - 連接到本地或網(wǎng)絡連接磁盤的單臺計算機。實際上,有一份數(shù)據(jù)副本,因此數(shù)據(jù)一致性不是挑戰(zhàn)。
二、MPP數(shù)據(jù)庫架構(gòu)
MPP表示Massive Parallel Processing,海量并行處理結(jié)構(gòu)。
下圖提供了MPP體系結(jié)構(gòu)的圖示,其中協(xié)調(diào)SMP服務器接受用戶SQL語句,這些語句分布在多個獨立運行的數(shù)據(jù)庫服務器上,這些服務器一起作為單個集群機器運行。每個節(jié)點都是一臺獨立的計算機,具有自己的CPU,內(nèi)存和直接連接的磁盤。
使用此解決方案,在加載數(shù)據(jù)時,可以使用一致的散列算法來均勻地分布數(shù)據(jù),這些(如果一切順利)將導致跨集群的工作的均衡分布。MPP體系結(jié)構(gòu)是數(shù)據(jù)倉庫和分析平臺的出色解決方案,因為查詢可以分解為組件部分,并在服務器之間并行執(zhí)行,從而顯著提高性能。典型的產(chǎn)品有Teradata,在MPP平臺上存儲和處理的數(shù)據(jù)量可以達到TB或PB級別。
與SMP解決方案相比,MPP架構(gòu)具有幾個明顯的優(yōu)勢,其中包括:
性能:這是MPP系統(tǒng)真正擅長的領域。提供的數(shù)據(jù)和處理可以在集群中的節(jié)點之間并行地均勻執(zhí)行,即使是最大的SMP服務器,性能也會顯著增加。
可伸縮性和并發(fā)性:與SMP解決方案不同,基于MPP的系統(tǒng)可以選擇逐步添加計算和存儲資源,并且吞吐量大大提高了算術(shù)速率。添加額外的相同大小的節(jié)點可以提高系統(tǒng)處理其他查詢的能力,而不會顯著降低性能。
成本和高可用性:一些基于MPP的數(shù)據(jù)倉庫解決方案旨在在廉價的商用硬件上運行,而無需可能包含成本的企業(yè)級雙冗余組件。這些解決方案通常使用自動數(shù)據(jù)復制來提高系統(tǒng)彈性并確保高可用性。這可以非常有效地利用資源,并且避免了許多基于SMP的解決方案所使用的大量未使用的熱備用的成本。
讀寫吞吐量:當數(shù)據(jù)分布在整個系統(tǒng)中時,該解決方案可以實現(xiàn)非常高的吞吐量,因為讀寫操作可以在集群中的獨立節(jié)點上并行執(zhí)行。
三、SQL over HDFS的Hadoop架構(gòu)
與MySQL和PostgreSQL(開源數(shù)據(jù)庫)不同,Hadoop不是單一產(chǎn)品,而是相關項目的開源生態(tài)系統(tǒng)。Hadoop/HDFS架構(gòu)和MPP架構(gòu)類似,下圖說明了相似性。
Hadoop旨在處理非常大的數(shù)據(jù)集和大型集群。
Hadoop不是單一產(chǎn)品,而是一個龐大的軟件生態(tài)系統(tǒng),部署通常需要熟練掌握一系列工具,包括HDFS、Yarn、Spark、Impala、Hive、Flume、Zookeeper和Kafka。即使是大規(guī)模的MPP解決方案,部署和維護也比Hadoop簡單得多。






