分散式資料庫

分散式資料庫

分散式資料庫(英文名稱:distributed database;簡稱DDB)是指資料分存在電腦網路中的各台電腦上的資料庫。

  • 中文名稱
    分散式資料庫
  • 外文名稱
    distributed data base
  • 簡稱
     DDB
  • 系統可靠性
  • 支持技術
    分散式處理
  • 特點
    就地完成

簡介

分散式資料庫是指利用高速電腦網路將物理上分散的多個資料存儲單元連線起來組成一個邏輯上統一的資料庫。分散式資料庫的基本思想是將原來集中式資料庫中的資料分散存儲到多個通過網路連線的資料存儲節點上,以獲取更大的存儲容量和更高的並發訪問量。近年來,隨著資料量的高速成長,分散式資料庫技術也得到了快速的發展,傳統的關系型資料庫開始從集中式模型向分散式架構發展,基于關系型的分散式資料庫在保留了傳統資料庫的資料模型和基本特征下,從集中式存儲走向分散式存儲,從集中式計算走向分散式計算。

另一方面,隨著資料量越來越大,關系型資料庫開始暴露出一些難以克服的缺點,以NoSQL 為代表的非關系型資料庫,其高可擴展性、高並發性等優勢出現了快速發展,一時間市場上出現了大量的key-value 存儲系統、文檔型資料庫等NoSQL 資料庫產品。NoSQL 類型資料庫正日漸成為大資料時代下分散式資料庫領域的主力。

這種組織資料庫的方法克服了物理中心資料庫組織的弱點。

  • 首先,降低了資料傳送代價,因為大多數的對資料庫的訪問操作都是針對局部資料庫的,而不是對其他位置的資料庫訪問;
  • 其次,系統的可靠性提高了很多,因為當網路出現故障時,仍然允許對局部資料庫的操作,而且一個位置的故障不影響其他位置的處理工作,隻有當訪問出現故障位置的資料時,在某種程度上才受影響;
  • 第三,便于系統的擴充,增加一個新的局部資料庫,或在某個位置擴充一台適當的小型電腦,都很容易實現。然而有些功能要付出更高的代價。例如,為了調配在幾個位置上的活動,事務管理的性能比在中心資料庫時花費更高,而且甚至抵消許多其他的優點。

分散式軟體系統(Distributed Software Systems)是支持分散式處理的軟體系統,是在由通信網路互聯的多處理機體系結構上執行任務的系統。它包括分散式作業系統、分散式程式語言及其編譯(解釋)系統、分散式檔案系統和分散式資料庫系統等。

分散式作業系統負責管理分散式處理系統資源和控製分散式程式運行。它和集中式作業系統的區別在于資源管理、進程通信系統結構等方面。 分散式程式語言用于編寫運行于分散式電腦系統上的分散式程式。一個分散式程式由若幹個可以獨立執行的程式模組組成,它們分布于一個分散式處理系統的多台電腦上被同時執行。它與集中式的程式語言相比有三個特點:分布性、通信性和穩健性。 分散式檔案系統具有執行遠程檔案存取的能力,並以透明方式對分布在網路上的檔案進行管理和存取。 分散式資料庫系統由分布于多個電腦結點上的若幹個資料庫系統組成,它提供有效的存取手段來操縱這些結點上的子資料庫。分散式資料庫在使用上可視為一個完整的資料庫,而實際上它是分布在地理分散的各個結點上。當然,分布在各個結點上的子資料庫在邏輯上是相關的。

Hadoop的分散式檔案系統HDFS,作為開源的分散式平台,為目前流行的很多分散式資料庫提供了支持,譬如HBase等。Yonghong的分散式檔案系統ZFS,為分散式資料集市Z-DataMart提供了底層平台。

主要特點

·

大資料時代,面對海量資料量的井噴式成長和不斷成長的使用者需求,分散式資料庫必須具有如下特征,才能應對不斷成長的海量資料。

● 高可擴展性:分散式資料庫必須具有高可擴展性,能夠動態地增添存儲節點以實現存儲容量的線性擴展。

● 高並發性:分散式資料庫必須及時回響大規模使用者的讀/寫請求,能對海量資料進行隨機讀/寫。

● 高可用性:分散式資料庫必須提供容錯機製,能夠實現對資料的冗餘備份,保證資料和服務的高度可靠性。

優點

大資料時代,面對日益成長的海量資料,傳統的集中式資料庫的弊端日益顯現,分散式資料庫相對傳統的集中式資料庫有如下優點。

● 更高的資料訪問速度:分散式資料庫為了保證資料的高可靠性,往往採用備份的策略實現容錯,所以,在讀取資料的時候,客戶端可以並發地從多個

備份伺服器同時讀取,從而提高了資料訪問速度。

● 更強的可擴展性:分散式資料庫可以通過增添存儲節點來實現存儲容量的線性擴展,而集中式資料庫的可擴展性十分有限。

● 更高的並發訪問量:分散式資料庫由于採用多台主機組成存儲集群,所以相對集中式資料庫,它可以提供更高的使用者並發訪問量。

體系結構

根據我國製定的《分散式資料庫系統標準》,分散式資料庫系統抽象為4層的結構模式。這種結構模式得到了國內外的支持和認同。

分散式資料庫結構模式圖分散式資料庫結構模式圖

4層模式劃分為全局外層、全局概念層、局部概念層和局部內層,在各層間還有相應的層間對應。這種4層模式適用于同構型分散式資料庫系統,也適用于異構型分散式資料庫系統。

資料分片類型

(1)水準分片:按一定的條件把全局關系的所有元組劃分成若幹不相交的子集,每個子集為關系的一個片段。

(2)垂直分片:把一個全局關系的屬性集分成若幹子集,並在這些子集上作投影運算,每個投影稱為垂直分片。

(3)導出分片:又稱為導出水準分片,即水準分片的條件不是本關系屬性的條件,而是其他關系屬性的條件。

(4)混合分片:以上三種方法的混合。可以先水準分片再垂直分片,或先垂直分片再水準分片,或其他形式,但他們的結果是不相同的。

條件:

(1)完備性條件:必須把全局關系的所有資料對應到片段中,決不允許有屬于全局關系的資料卻不屬于它的某一個片段。

(2)可重構條件:必須保證能夠由同一個全局關系的各個片段來重建該全局關系。對于水準分片可用並操作重構全局關系;對于垂直分片可用聯接操作重構全局關系。

(3)不相交條件:要求一個全局關系被分割後所得的各個資料片段互不重疊(對垂直分片的主鍵除外)。

資料分配方式

(1)集中式:所有資料片段都安排在同一個場地上。

(2)分割式:所有資料隻有一份,它被分割成若幹邏輯片段,每個邏輯片段被指派在一個特定的場地上。

(3)全復製式:資料在每個場地重復存儲。也就是每個場地上都有一個完整的資料副本。

(4)混合式:這是一種介乎于分割式和全復製式之間的分配方式。

目前分散式資料庫分配的設計,越來越多的採用尋找最優解的演算法,比如遺傳演算法、退火機製等

查詢最佳化

指在執行分散式查詢時選擇查詢執行計畫的方法和關系運算符的實現演算法。根據系統環境的不同,查詢最佳化所使用的演算法也有所不同,通常分為遠程廣域網環境和高速區域網路環境,其區別主要在網路的頻寬。對于一元運算符可以採用集中式資料庫中的查詢最佳化方法。而對于二元運算符,由于涉及場地間的資料傳輸,因此必須考慮通信代價。分散式查詢中常見的連線運算執行策略包括:

(1)半連線方法:利用半連線運算的轉換方法R∞S=(RµS)∞S。假設場地1和場地2上分別有關系R和關系S,首先在S上執行連線屬性上的投影並將結果傳輸至場地1,在場地1上執行關系R與投影的連線操作,再將結果傳輸至場地2與關系S執行連線操作。這種方法能夠降低執行連線運算時的網路通信代價,主要適用于頻寬較低的遠程廣域網路。

(2)枚舉法方法:指枚舉關系運算符的物理執行計畫,通過對比執行計畫的代價選擇執行演算法的方法。其中,連線運算符的物理執行計畫包括嵌套迴圈方法、哈希連線法和歸並連線法。枚舉法主要適用于以磁碟IO代價為主的高速區域網路環境。

典型套用

最典型套用的銀行領域為例:

  • 將分散的資料庫從邏輯上聯系在一起,可以大大提高資料的管理效率。這就是總行和支行之間的關系:總行與全國各地的支行之間既有各自需要處理的資料,又有需要交換的資料。
  • 將資料分散存儲在各地的資料庫中,可提高故障發生時的資料安全性。一旦上海支行的資料庫出現故障,比如停機、損壞,也是僅僅限于上海支行,總行、廣州等其他地區的支行資料庫的資料都不會受到影響。
  • 分散式架構具備良好的擴展性。比如建立一個新的海外支行時,隻要將新增的資料庫加入到原有的分散式資料庫架構中就可以,以最小的代價在不影響原有支行、總行的情況下完成資料庫的擴展。
  • 以冗餘方式進行資料的備份,以備在系統崩潰、資料丟失的情況下仍有備份資料可以進行恢復。

相關詞條

相關搜尋