微軟並行資料倉儲(Parallel Data Warehouse,簡稱PDW)去年同SQL Server 2008 R2一同發布,該產品設計初衷是為了同Oracle Exadata和Teradata等展開競 爭。PDW真正意義上實現了混合工作負載的能力,使用者可以在使用熟悉的SQL Server資料庫引擎的情況下,將資料從多個物理伺服器上進行擴充。
並行 資料倉儲並不是一款軟體系統產品,在購買之後你不能簡單地將其安裝在硬體上 。PDW最基本的配置是雙機架,其中一個機架是管理伺服器,作為管理節點、控制 節點、lzone節點和備份節點。另一個機架將存放所謂的計算節點,用來真正儲存 資料,我們將其稱為一個資料機架,它裡面是一個10核晶片伺服器(具體情況具體 分析)和專有的SAN存放裝置。對PDW進行擴充十分簡單,添加更多的資料機架即可 。
控制節點提供了一系列的功能,最重要的是,它們提供了查詢並行資料 倉庫的功能。你串連到控制節點時,並不是使用熟悉的SQL Server Management Studio(SSMS),而是使用一款第三方工具——Nexus Chameleon,它是包含在PDW 安裝之內的。由於SSMS不能夠直接連接到PDW控制節點,因此使用者在使用PDW之前 需要熟悉這款工具。
運行在控制節點上的是一個特殊版本的SQL Server數 據庫,它能夠將Transact-SQL查詢送到PDW計算節點來執行。事實上,來自資料倉 庫的資料並不會儲存在這個執行個體上,取而代之,它會存放資料庫設定方面的元數 據,並提供暫存空間作為臨時資料庫。
除了處理資料查詢請求之外,控制 節點還會處理你的資料載入過程。資料載入能夠通過幾種不同的方式來完成,最 簡單的一種就是使用Business Intelligence Development Studio (BIDS)工具和 最新SQL Server整合服務(SSIS)的目標連線物件,後者是特別針對PDW研發出的產 品;另外一種方式是將資料載入到所謂的磁頭停放區(landing zone),然後使用一 個新的工具叫做DWLOADER來批量載入資料到PDW。DWLOADER的工作原理同bcp工具 非常相似,它可以將資料快速地載入到目標table中。
許多人認為,微軟 並行資料倉儲同SQL Server或者Oracle的分區表相類似,雖然二者的概念聽上去 很像,但實際上有著很大的差別。分區表是指你講特定地區的資料分割到單獨的 分區上,這樣在查詢的時候就可以只查詢一個分區就夠了;而PDW中的原理則是截 然相反的,你是將當前資料推送到系統中的每一個計算節點上,這樣當你查詢數 據的時候實際是由多個計算節點來響應資料請求的。
因此,當使用所有的 計算節點時,你可以增加CPU的數量並提高一次產生的I/O總數。這樣的設計增加 了大量的計算資源,可以很大程度上減小回應時間。之前需要幾天來完成的操作 ,在使用PDW時僅需幾分鐘,傳統SQL Server執行個體無法啟動並執行報表,PDW可以快速 地完成。
但是並行資料倉儲並不是萬能的,它也有自身的缺點。比如在 PDW運行插入insert操作會比傳統SQL Server更慢,由於資料插入PDW時,每一行 都需要進行檢測才能夠決定儲存在哪些計算節點上。當在PDW內部建立一個表時, 你需要明確資料是否需要複製到所有儲存節點上;往往一個維度資料表可以這樣設定。
第二個表設定選項將用來在計算節點之間發布資料,並具體根據每一列來 決定。當資料載入之後,聲明過的列被hash,而hash值將同一個內部表進行比較 ,以決定哪個控制節點儲存該資料。由於資料是通過控制節點來載入到系統之內 的,所以必須經過hash過程。然後行資料將從控制節點轉移到計算節點進行儲存 。
另外一個PDW的缺點就是彙總功能。根據編寫的查詢,所有被彙總的數 據需要從計算節點轉移到控制節點,並儲存在臨時資料庫中,當轉移完成後再進 行彙總。如果資料量非常大的話,這個過程將是非常耗費時間的,因為資料的轉 移需要網路連接來完成。在一定程度上,使用者可以避免此類情況的發生,因此我 們需要對錶進行特別的設計,並重新審視我們的查詢語句。如果你打算做一個聚 合日誌,那麼一定要確保徹底測試所有的查詢。
並行資料倉儲的基礎架構 是高度冗餘的, PDW內幾乎所有的組件都有備份內建在幾家之內。兩個管理節點 作為並行資料倉儲的主控制器可以允許系統管理員對其他伺服器進行相應配置 (PDW擁有自身的動態目錄,可以將機器同其他任何組策略進行隔絕)。控制節點起 到了一個主動/被動Windows叢集的作用,計算節點也可以配置為一個單獨的叢集 ,因此如果物理伺服器宕機,PDW將不會失去所有的CPU計算資源。
微軟的 並行資料倉儲是一個非常強大的系統,企業可以根據自身需求將其的價值發揮到 最大。但記住PDW並不是SQL Server執行個體的替代品,二者在工作原理上並不相同。 企業在購買並行資料倉儲之前,一定要理解本文中所講到的內容,以避免操作不 當帶來的不必要的麻煩。