天天看點

大資料管理系統:淺析并行資料庫優缺點

文章講的是<b>大資料管理系統:淺析并行資料庫優缺點</b>,并行資料庫是指那些在無共享的體系結構中進行資料操作的資料庫系統。這些系統大部分采用了關系資料模型并且支援SQL語句查詢,但為了能夠并行執行SQL的查詢操作,系統中采用了兩個關鍵技術:關系表的水準劃分和SQL查詢的分區執行。

  水準劃分的主要思想就是根據某種政策将關系表中的元組分布到叢集中的不同節點上,這些節點上的表結構是一樣的,這樣就可以對元組并行處理。現有的分區政策有哈希分區、範圍分區、循環分區等。例如,哈希分區政策是将表T中的元組分布到n個節點上,可以使用統一的雜湊演算法對元組中的某個或某幾個屬性進行哈希,如hash(T.attribute1) mod n,然後根據哈希值将元組放置到不同的節點上。

  在分區存儲的表中處理SQL查詢需要使用基于分區的執行政策,如擷取表T中某一數值範圍内的元組,系統首先為整個表T生成總的執行計劃P,然後将P拆分成n個子計劃{P1,…,Pn},子計劃Pi在節點ni上獨立執行,最後每個節點将生成的中間結果發送到某一標明的節點上,該節點對中間結果進行聚集産生最終的結果。

  并行資料庫系統的目标是高性能和高可用性,通過多個節點并行執行資料庫任務,提高整個資料庫系統的性能和可用性。最近一些年不斷湧現一些提高系統性能的新技術,如索引、壓縮、實體化視圖、結果緩存、I/O共享等,這些技術都比較成熟且經得起時間的考驗。與一些早期的系統如Teradata必須部署在專有硬體上不同,最近開發的系統如Aster、Vertica等可以部署在普通的商業機器上,這些資料庫系統可以稱得上準雲系統。

  并行資料庫系統的主要缺點就是沒有較好的彈性,而這種特性對中小型企業和初創企業是有利的。人們在對并行資料庫進行設計和優化的時候認為叢集中節點的數量是固定的,若需要對叢集進行擴充和收縮,則必須為資料轉移過程制訂周全的計劃。這種資料轉移的代價是昂貴的,并且會導緻系統在某段時間内不可通路,而這種較差的靈活性直接影響到并行資料庫的彈性以及現用現付商業模式的實用性。

  并行資料庫的另一個問題就是系統的容錯性較差,過去人們認為節點故障是個特例,并不經常出現,是以系統隻提供事務級别的容錯功能,如果在查詢過程中節點發生故障,那麼整個查詢都要從頭開始重新執行。這種重新開機任務的政策使得并行資料庫難以在擁有數以千個節點的叢集上處理較長的查詢,因為在這類叢集中節點的故障經常發生。基于這種分析,并行資料庫隻适合于資源需求相對固定的應用程式。不管怎樣,并行資料庫的許多設計原則為其他海量資料系統的設計和優化提供了比較好的借鑒。

  <b>作者簡介</b>

  陸嘉恒,中國人民大學副教授,新加坡國立大學博士,美國加利福尼亞大學爾灣分校(University of California, Irvine) 博士後。

作者: 陸嘉恒

來源:IT168

原文連結:大資料管理系統:淺析并行資料庫優缺點