互聯(lián)網(wǎng)已經(jīng)成為當(dāng)今人們生活中不可或缺的一部分。一方面,隨著Web2.0的流行以及云計(jì)算技術(shù)的發(fā)展,超大規(guī)模和高并發(fā)的社交網(wǎng)站迅速興起,人們對(duì)互聯(lián)網(wǎng)的需求遠(yuǎn)不局限于網(wǎng)頁(yè)信息的瀏覽,而是通過(guò)瀏覽器獲取各種各樣的服務(wù)。另一方面,互聯(lián)網(wǎng)數(shù)據(jù)中心的研究報(bào)告顯示,在未來(lái)幾年中,企業(yè)對(duì)于結(jié)構(gòu)化以及非結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)需求會(huì)每年都會(huì)增長(zhǎng),但對(duì)非結(jié)構(gòu)化數(shù)據(jù)需求增長(zhǎng)幅度相對(duì)較大。同時(shí),在數(shù)據(jù)庫(kù)知識(shí)網(wǎng)站DB-Engines最新一期的數(shù)據(jù)庫(kù)產(chǎn)品流行度排名中,位于前10名的大部分是基于關(guān)系數(shù)據(jù)模型的數(shù)據(jù)庫(kù),以及少部分的非關(guān)系數(shù)據(jù)模型數(shù)據(jù)庫(kù),但從整體來(lái)看,Relational DBMS處于下降的趨勢(shì),而對(duì)非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)庫(kù)的需求越來(lái)越多。面對(duì)數(shù)據(jù)的海量存儲(chǔ)以及需求的動(dòng)態(tài)變化,傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)顯得力不從心。為了滿足互聯(lián)網(wǎng)發(fā)展以及互聯(lián)網(wǎng)用戶對(duì)數(shù)據(jù)海量存儲(chǔ)的需求,Amazon、Google、Microsoft等公司相繼對(duì)云數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行了深入研究,并生產(chǎn)了自己企業(yè)的云數(shù)據(jù)庫(kù)。具有代表性的云數(shù)據(jù)庫(kù)有Amazon的simpleDB、Google的BigTable以及yahoo的PNUTS等。
1.云數(shù)據(jù)庫(kù)概述
通俗的理解,云數(shù)據(jù)庫(kù)就是部署在云計(jì)算環(huán)境中,并利用云計(jì)算的特性來(lái)提升自身的服務(wù)質(zhì)量,滿足用戶新需求的數(shù)據(jù)庫(kù)。云數(shù)據(jù)庫(kù)是隨著SaaS(Software as a service;軟件即服務(wù))應(yīng)用的興起而發(fā)展起來(lái)的一種云計(jì)算技術(shù),它在數(shù)據(jù)庫(kù)的存儲(chǔ)能力方面有了很大的提高,并在一定程度上消除了對(duì)軟件、硬件以及人員的重復(fù)配置,讓軟硬件的升級(jí)變得更加方便,與此同時(shí)也虛擬化了很多后端的功能。與傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)相比,云數(shù)據(jù)庫(kù)具有顯著的優(yōu)勢(shì):海量性、種類多樣性、動(dòng)態(tài)可擴(kuò)展性、高可用性、較低的使用代價(jià)、易用性、大規(guī)模并行處理等。
2.云數(shù)據(jù)庫(kù)系統(tǒng)體系架構(gòu)
云數(shù)據(jù)庫(kù)的系統(tǒng)體系架構(gòu)多種多樣,本文主要介紹采用鍵/值數(shù)據(jù)模型和關(guān)系數(shù)據(jù)模型的系統(tǒng)體系架構(gòu)以及可擴(kuò)展分布式關(guān)系型系統(tǒng)體系架構(gòu)。
2.1 HBase體系架構(gòu)
HBase(Hadoop Database),是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。HBase是谷歌Big—table的開源實(shí)現(xiàn),其采用的架構(gòu)和Bigtable類似。如圖1所示。
圖1 Hbase的體系架構(gòu)
HBase體系架構(gòu)中主要包括5部分,分別為:Client,Zookeeper,Hmaster,HRegionServer和Store,具體功能如下:
(1)Client:為用戶訪問(wèn)數(shù)據(jù)庫(kù)提供了接口。
(2)Zookeeper:主要用于存儲(chǔ)數(shù)據(jù)庫(kù)模式和所有HRegion的地址,并實(shí)時(shí)監(jiān)控HRegion-Server的狀態(tài)。
(3)HMaster:主要為每個(gè)HRegionServer分配其要維護(hù)的HRegion群組,實(shí)現(xiàn)負(fù)載均衡,HBase中僅有一個(gè)Master server。
(4)HRegionServer:每個(gè)HRegionServer主要用于管理多個(gè)HRegion,確保其能為Client提供服務(wù),并及時(shí)向HMaster提供自己的運(yùn)行狀況信息。
(5)Store:主要用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)的存儲(chǔ)功能,其由兩部分組成:MemStore和StoreFiles。更新數(shù)據(jù)首先會(huì)存儲(chǔ)到MemStore中,并當(dāng)MemStore數(shù)據(jù)存儲(chǔ)滿了之后再將數(shù)據(jù)存儲(chǔ)到StoreFile中,其中StoreFile存放在分布式文件系統(tǒng)的HFile中。
2.2 SQL Azure體系架構(gòu)
SQL Azure是一種基于云計(jì)算的關(guān)系型數(shù)據(jù)庫(kù)服務(wù),基礎(chǔ)架構(gòu)類似于SQL Server2008,但它與SQL Server 2008有所不同,其在內(nèi)部包含了很多虛擬服務(wù)器,可以根據(jù)需求的動(dòng)態(tài)變化而改變參與計(jì)算的虛擬機(jī)數(shù)量。SQL Azure以關(guān)系模型存儲(chǔ)數(shù)據(jù),并且每臺(tái)虛擬機(jī)都安裝了數(shù)據(jù)庫(kù)管理系統(tǒng)。一般情況下,一個(gè)完整的數(shù)據(jù)庫(kù)會(huì)被存儲(chǔ)到多臺(tái)虛擬機(jī)中。每臺(tái)虛擬機(jī)的結(jié)構(gòu)相同,都包括SQL Azure Fabric,管理服務(wù),若干數(shù)據(jù)庫(kù)實(shí)例,管理服務(wù)主要用于實(shí)現(xiàn)數(shù)據(jù)同步,這就避免了因?yàn)楦虏僮鞫鴮?dǎo)致的每臺(tái)虛擬機(jī)中數(shù)據(jù)的不同,從而保證了數(shù)據(jù)的高可用性。同時(shí),虛擬機(jī)通過(guò)SQL Azure Fabric和管理服務(wù)之間互相交換信息,從而監(jiān)控整體服務(wù)的狀態(tài)。如圖2所示。
圖2 SQL Azure的體系架構(gòu)
2.3 可擴(kuò)展分布式關(guān)系型系統(tǒng)體系架構(gòu)
可擴(kuò)展分布式關(guān)系型系統(tǒng)是在非關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)基礎(chǔ)上提出來(lái)的,并借鑒了RDBMS數(shù)據(jù)模型的高效性和NoSQL數(shù)據(jù)庫(kù)的高可用性,其體系架構(gòu)如圖3所示。圖中實(shí)線箭頭用于表示組件間數(shù)據(jù)的傳輸功能;虛線箭頭用于表示組件間對(duì)信號(hào)的控制功能。系統(tǒng)服務(wù)組件主要包括五種,分為別:RS(主服務(wù),主要用于維護(hù)系統(tǒng)最底層的元數(shù)據(jù)),US(更新服務(wù),主要用于執(zhí)行系統(tǒng)的更新操作),CS(主干服務(wù),主要用于存儲(chǔ)用于查詢的靜態(tài)數(shù)據(jù)),MS(合并服務(wù),主要用于處理查詢請(qǐng)求時(shí)數(shù)據(jù)的合并相關(guān)操作),client(客戶端,主要為用戶操作數(shù)據(jù)庫(kù)提供接口)。
圖3 可擴(kuò)展分布式關(guān)系型系統(tǒng)體系架構(gòu)
客戶端查詢流程,如圖4所示。
圖4 數(shù)據(jù)查詢流程
(1)首先客戶端向處理合并操作的合并服務(wù)組件發(fā)送查詢請(qǐng)求;
(2)合并服務(wù)組件接到請(qǐng)求后首先向主服務(wù)發(fā)送定位請(qǐng)求,獲取相應(yīng)數(shù)據(jù)所在服務(wù)器的位置;
(3)主服務(wù)組件RS根據(jù)合并服務(wù)的請(qǐng)求獲取相應(yīng)的定位信息并返回給合并服務(wù)組件;
(4)合并服務(wù)組件根據(jù)返回的定位信息首先向存儲(chǔ)靜態(tài)數(shù)據(jù)的主干服務(wù)組件CS發(fā)送查詢請(qǐng)求;
(5)主干服務(wù)組件CS根據(jù)請(qǐng)求返回滿足條件的靜態(tài)數(shù)據(jù);
(6)合并服務(wù)組件然后根據(jù)從主服務(wù)返回的定位信息向存儲(chǔ)動(dòng)態(tài)數(shù)據(jù)的更新服務(wù)組件發(fā)起動(dòng)態(tài)查詢請(qǐng)求;
(7)更新服務(wù)組件根據(jù)請(qǐng)求向合并服務(wù)組件返回滿足需求的動(dòng)態(tài)數(shù)據(jù);
(8)合并服務(wù)組件將(5)和(7)返回的數(shù)據(jù)進(jìn)行處理并將最終結(jié)果返回給客戶端。
2.4 云數(shù)據(jù)庫(kù)體系架構(gòu)的探索
HBase體系架構(gòu)采用鍵/值數(shù)據(jù)模型,解決了傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)只能存儲(chǔ)關(guān)系型數(shù)據(jù)的瓶頸,其不僅可以存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),同時(shí)也可以存儲(chǔ)半結(jié)構(gòu)化以及非結(jié)構(gòu)化數(shù)據(jù),并可以通過(guò)Zookeeper實(shí)時(shí)監(jiān)控系統(tǒng)運(yùn)行狀態(tài),保證交叉操作數(shù)據(jù)的正確性。SQL Azure體系架構(gòu)采用關(guān)系數(shù)據(jù)模型,可以使用與人們所熟悉的SQL Server相同的方式來(lái)使用,在擴(kuò)展性、可用性等方面相對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)來(lái)說(shuō)具有很好的改進(jìn),并可以通過(guò)管理服務(wù)實(shí)現(xiàn)數(shù)據(jù)間的同步。可擴(kuò)展分布式關(guān)系型系統(tǒng)體系架構(gòu)既具有關(guān)系數(shù)據(jù)庫(kù)的便攜性同時(shí)又增加了NoSQL的可擴(kuò)展性,提出了一種全新的數(shù)據(jù)讀寫、合并以及存儲(chǔ)流程。三者在實(shí)現(xiàn)方式上有所不同,但他們的基本目的是一致的,都是盡可能保證系統(tǒng)的高可用性以及高效性,三者具有相對(duì)的優(yōu)勢(shì),但如果將其優(yōu)點(diǎn)進(jìn)行融合,各自發(fā)揮各自的優(yōu)勢(shì),便可帶來(lái)新的體驗(yàn)。下面介紹一種在三者基礎(chǔ)上提出的云數(shù)據(jù)庫(kù)體系架構(gòu)。
該體系架構(gòu)融合了Hbase、SQL Azure、可擴(kuò)展分布式關(guān)系型系統(tǒng)體系架構(gòu)三者的優(yōu)點(diǎn),將用戶的操作分為更新操作和查詢操作兩種。首先客戶端通過(guò)訪問(wèn)端口進(jìn)行操作,如果是查詢操作并且客戶端存儲(chǔ)了相應(yīng)的分區(qū)映射圖,直接到指定的HregionServer讀取數(shù)據(jù),如果未存儲(chǔ)相應(yīng)的分區(qū)映射圖則首先通過(guò)Hmaster—select獲取相應(yīng)的分區(qū)映射圖之后再到指定的HregionServer讀取數(shù)據(jù)。因?yàn)椴恍枰獔?zhí)行更新操作,Store中只有存儲(chǔ)數(shù)據(jù)的Storefile。如果用戶執(zhí)行的是更新操作,則首先經(jīng)過(guò)Zookeeper檢查一下相應(yīng)的HRegionServer的狀態(tài),若可用則連接到相應(yīng)的HregionServer,否則Hmaster_update會(huì)根據(jù)負(fù)載均衡分配可用的Hre—gionServer,并將數(shù)據(jù)首先放到MemStore中,在適當(dāng)?shù)臅r(shí)機(jī)自動(dòng)更新到Storefile中。另外,每一個(gè)Hregion Server中包含一個(gè)管理服務(wù),并且管理服務(wù)間相互連接,從而實(shí)現(xiàn)數(shù)據(jù)的同步。如圖5所示。
圖5 云數(shù)據(jù)庫(kù)體系架構(gòu)探索示意圖
該體系架構(gòu)與Hbase體系架構(gòu)相比,采用了其監(jiān)控的模式,不同的是每一個(gè)體系中含有兩個(gè)Hmaster,分別為Hmaster-select和Hmaster-update,二者都可以管理HRegionServer的負(fù)載均衡,調(diào)整Region的分布,區(qū)別在于前者主要用于管理用戶對(duì)Table的查詢操作,后者主要用于管理用戶對(duì)Table的增加、刪除、修改操作。與SQL Azure體系架構(gòu)相比,采用了其利用管理服務(wù)實(shí)現(xiàn)數(shù)據(jù)同步的功能。與可擴(kuò)展分布式關(guān)系型系統(tǒng)體系架構(gòu)相比,主要采用了其查詢和更新操作相分離的思想,這樣執(zhí)行不同的操作目的性強(qiáng),在一定程度上節(jié)省了時(shí)間。
3.結(jié)論及展望
隨著信息量的增加,計(jì)算機(jī)所要處理的數(shù)據(jù)呈指數(shù)級(jí)別的增長(zhǎng),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)不能滿足用戶的需求。云數(shù)據(jù)庫(kù)為解決該問(wèn)題提供了一種可行的解決方案,日益受到業(yè)界和學(xué)術(shù)界的普遍關(guān)注。云數(shù)據(jù)庫(kù)的出現(xiàn)必定會(huì)帶來(lái)一場(chǎng)巨大的變革,諸如:數(shù)據(jù)存儲(chǔ)的變革、極大的改變企業(yè)管理數(shù)據(jù)的方式、催生新一代的數(shù)據(jù)庫(kù)技術(shù)、數(shù)據(jù)庫(kù)市場(chǎng)份額面臨重新分配、瀏覽器模式的改變、影響了DBA的工作量以及開發(fā)者的訪問(wèn)方式等。
就目前階段而言,雖然已經(jīng)出現(xiàn)了一些云數(shù)據(jù)庫(kù)產(chǎn)品,其體系結(jié)構(gòu)不盡相同,但總體目標(biāo)都是盡可能保證數(shù)據(jù)的高效性、高可用性等云數(shù)據(jù)庫(kù)特有的特性。但這些系統(tǒng)暫時(shí)并未完全實(shí)現(xiàn)云數(shù)據(jù)庫(kù)相對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)所有的優(yōu)勢(shì),讓這些系統(tǒng)能完全滿足用戶不斷發(fā)展的需求仍需人們的共同努力。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.hanmeixuan.com/
本文標(biāo)題:云數(shù)據(jù)庫(kù)體系架構(gòu)研究分析
本文網(wǎng)址:http://www.hanmeixuan.com/html/consultation/10839714812.html