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