云計算導論第6章_第1頁
云計算導論第6章_第2頁
云計算導論第6章_第3頁
云計算導論第6章_第4頁
云計算導論第6章_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章云計算數據庫的研究6.1云計算數據庫6.2云計算數據庫的關鍵技術及實現 過程中要解決的基本問題6.3關系型數據庫與NoSQL數據庫6.4云數據庫的安全6.5云數據庫的發展趨勢6.6小結

6.1云計算數據庫

6.1.1云計算數據庫的研究現狀

國內現有的與數據庫相關的云計算研究工作也都處于起步階段。Google、百度、新浪、騰訊、盛大等眾多已經有著豐富數據資源或計算資源的互聯網企業將會走在云計算浪潮的前列,除了安全性、帶寬、軟/硬件資源管理等技術因素外,他們面臨的最大挑戰是盡快尋找到或者創造出新的基于云計算的用戶需求。例如,上海超級計算中心作為國內首家也是唯一一家面向公眾開發的公共計算服務平臺,已經通過網絡為各個應用領域的用戶提供計算服務。對這類數據或計算中心,云計算時代面臨的主要挑戰同樣是拓寬與尋找新的服務領域和服務內容。

6.1.2云計算數據庫的基本思想

這里提出的云計算數據庫是一個面向云計算的數據庫資源管理平臺,旨在為現有大量位于Internet后臺的數據庫資源的共享提供一個云計算接入環境,為云計算應用提供基礎結構級的數據庫資源訪問、發現、整合等一系列問題的通用解決方案。

云計算數據庫探討的問題涉及了包括數據庫管理系統、分布式數據庫以及語義Web在內的多個相關領域的研究。云計算數據庫采納了這些領域的一些思想、方法和技術,但是在研究方向和內容上又有所不同。云計算數據庫的研究重點不在于如何提高數據庫系統本身的性能或功能問題,而在于如何基于現有數據庫管理系統,將數據庫作為基本的數據管理單元并入云計算環境,使其能夠被云計算應用有序地訪問和協同地調用,即如何建立數據庫資源在云計算上的共享規則。因此,云計算數據庫的目標是要成為云計算平臺的一個組成部分,它的本質是位于數據庫管理系統和云計算數據庫用戶之間的一層中間件。6.2云計算數據庫的關鍵技術及實現過程中

要解決的基本問題

1.關鍵技術

1)數據存儲技術

為保證高可用、高可靠和經濟性,云計算采用分布式存儲的方式來存儲數據,采用冗余存儲的方式來保證存儲數據的可靠性。另外,云計算系統需要同時滿足大量用戶的需求,并行地為大量用戶提供服務,因此云計算的數據存儲技術必須具有高吞吐量和高傳輸率的特點。未來的發展將集中在超大規模的數據存儲、數據加密和安全性保證以及繼續提高I/O速率等方面。為了滿足云計算的分布式存儲方式,同時保證數據可靠性和高吞吐率以及高傳輸率的需求,目前各IT廠商多采用GFS或HDFS的數據存儲技術。

2)數據管理技術

云計算系統對大數據集進行處理、分析,向用戶提供高效的服務。因此,數據管理技術必須能夠高效地管理大數據集,同時必須在規模巨大的數據中找到特定的數據。云計算的特點是對讀取后的海量的數據存儲進行大量的分析,數據的讀操作頻率遠大于數據的更新頻率,云中的數據管理是一種讀優化的數據管理。由于云計算采用列存儲的方式管理數據,因此如何提高數據的更新速率以及進一步提高隨機讀速率是未來的數據管理技術必須解決的問題。為了滿足云計算的大規模數據集管理以及高效的數據定位需求,谷歌采用BigTable的數據管理技術。在各大IT廠商的支持下,Hadoop稱得上是開源創新領域的杰出典范。

3)數據安全技術

網絡技術的發展使得帶寬不會成為主要障礙,安全性依舊是最重要的顧慮。將保存在本地、為自己所掌控的數據交給一個外部的云計算存儲服務中心,這樣一個改變讓人不得不考慮數據的安全和保密問題。“云安全”作為云計算技術的一種應用,其實質是通過安全廠商自建的數據中心這個“云”與客戶端相互合作,共同對用戶訪問的Web內容進行防護,通過“云”對互聯網進行掃描,對有毒的網頁進行標記。其具體操作流程是:用戶在訪問網頁之前,先與“云”取得聯系,如果網頁安全就順利訪問,否則就終止行為。

2.實現過程中必須要解決的基本問題

1)云計算數據庫資源發現

在云計算開發環境下,大量云計算數據庫資源共存且完全獨立于應用。云計算數據庫對外界發布共享的數據,應用要找到合適的數據源依賴于一套資源注冊和發現機制,這也是云計算為所有類型資源提供的一個共有的基本功能。

2)云計算數據融合

面對多個異質、分布、自治的數據資源,需要對其進行整合,形成一個統一的數據視圖,或者稱為虛擬數據庫。

3)云計算海量數據處理

大量科學型的研究應用是數據密集型的,在其運行過程中會產生海量數據,這就需要數據庫盡可能保證數據的安全性和存取的效率。

4)容錯性控制

云計算環境下的數據庫訪問連接,受到網絡、站點局部控制與突發事件等因素的制約,因此云計算必須負責實時監控數據庫狀態,處理異常情況,保證數據操作的正確性和效率。

6.3關系型數據庫與NoSQL數據庫

6.3.1關系型數據庫的劣勢

隨著Web2.0的發展,傳統的關系型數據庫在應對超大規模和高并發的SNS類型的網站方面暴露了許多難以克服的問題,主要表現為以下幾點:

(1)高并發讀/寫速度慢。這種情況主要發生在數據量達到一定規模時,由于關系型數據庫的系統邏輯非常復雜,容易發生死鎖等并發問題,從而導致其讀/寫速度下降。例如,Web2.0網站要根據用戶個性化信息來實時生成動態頁面、提供動態信息,所以基本上無法使用動態頁面靜態化技術,因此數據庫并發負載非常高,往往要求達到每秒上萬次讀/寫請求。關系型數據庫勉強可以應付上萬次的SQL查詢,但硬盤I/O往往無法承擔上萬次的SQL寫數據請求。

(2)支撐容量有限。類似Facebook、Twitter這樣的SNS網站,每天產生海量的用戶動態,每月會產生幾億條用戶動態,對于關系型數據庫來說,在一張數億條記錄的表里面進行SQL查詢,效率是極低的。

(3)擴展性差。在基于Web的架構中,數據庫是最難進行橫向擴展的。當一個應用系統的用戶量和訪問量與日俱增的時候,傳統的關系型數據庫沒有辦法像WebServer那樣通過簡單地添加更多的硬件和服務器節點來擴展性能和負載能力。對于不間斷提供服務的網絡來說,對數據庫系統進行升級和擴展是非常痛苦的事情,往往需要停機維護和數據遷移,因此迫切需要關系型數據庫能夠通過不斷添加服務器節點來實現擴展。(4)建設和運維成本高。企業級數據庫的價格很高,并且隨著系統的規模增大而不斷上升。高昂的建設和運維成本無法滿足云計算應用對數據庫的需求。

關系型數據庫遇到了上述難以克服的瓶頸,與此同時,它的很多主要特性在云計算應用中也無用武之地,例如,數據庫事務一致性、數據庫的寫實時性和讀實時性,復雜的SQL查詢特別是多表關聯查詢。因此,傳統的關系型數據庫已經無法獨立應付云計算時代的各種應用。6.3.2

NoSQL數據庫數據模型

關系型數據庫越來越無法滿足云計算的應用場景,為了解決此類問題,非關系型數據庫應運而生。由于在設計上和傳統的關系型數據庫相比有了很大的不同,所以非關系型數據庫被稱為NoSQL(NotonlySQL)數據庫。與關系型數據庫相比,NoSQL更關注對數據高并發讀/寫和海量數據的存儲,在架構和數據模型方面做了簡化,而在擴展和并發等方面做了增強。目前,主流的NoSQL數據庫包括BigTable、HBase、Cassandra、SimpleDB、CouchDB、MongoDB與Redis等。NoSQL常用數據模型如下:

1.Columnoriented(列式)

列式主要適用于Table這樣的模型,但是它并不支持類似Join這樣多表的操作。列式的特點是在存儲數據時,主要圍繞著“列”,而不是像傳統的關系型數據庫那樣根據“行(row)”進行存儲。也就是說,屬于同一列的數據會盡可能地存儲在硬盤的同一頁中,而不是將屬于同一個行的數據存儲在一起。這樣做的好處是,對于很多類似數據倉庫的應用,雖然每次查詢都會處理很多數據,但是每次所涉及的列并沒有很多。使用列式數據庫,將會節省大量I/O,并且大多數列式數據庫都支持ColumnFamily這個特性,能將多個列并為一個小組,提高這些列的存儲和查詢效率。總體而言,列式數據模型的優點是比較適合匯總和數據倉庫這類應用。

2.Keyvalue(鍵值)

雖然Keyvalue這種模型和傳統的關系型數據庫相比較為簡單,有點類似常見的HashTable,一個Key對應一個value,但是它能提供非常快的查詢速度、大的數據存放量和高并發操作,非常適合通過主鍵對數據進行查詢和修改等操作,雖然不支持復雜的操作,但是可以通過上層的開發來彌補這個缺陷。

3.Document(文檔)

在結構上,Document和Keyvalue是非常相似的,也是一個Key對應一個value,但是這個value主要以JSON或者XML等格式的文檔來進行存儲,是有語義的,并且DocumentDB一般可以對value創建SecondaryIndex,方便上層的應用,而這點是普通的KeyvalueDB所無法支持的。6.3.3

NoSQL數據庫的優劣勢分析

下面從設計理念、數據模式、分布式等幾個角度對BigTable、Cassandra、Redis與MongoDB進行比較,見表6-1。

表6-1主要NoSQL數據庫之間的比較

1.優勢

NoSQL數據庫主要有以下幾個優勢:

(1)擴展簡單。例如Cassandra,由于其架構類似于經典的P2P,因此能夠通過簡單添加新的節點來擴展集群。

(2)讀/寫快速。例如Redis,由于其邏輯簡單,純內存操作,因此具有非常出色的性能,單節點每秒可以處理超過10萬次的讀/寫操作。

(3)成本低廉。因為大多數NoSQL數據庫都是開源軟件,所以沒有昂貴的成本限制。

2.劣勢

NoSQL數據庫雖然具有很多顯著的優勢,但依然存在很多不足,主要表現在以下幾個方面:

(1)不提供對SQL的支持。這會對用戶產生一定的應用遷移成本,同時無法實現組合應用并發揮SQL數據庫已經非常成熟的優勢。

(2)支持的特性不夠豐富。現有NoSQL數據庫提供的功能十分有限,大多數都不支持事務和其他附加功能。

(3)產品不夠成熟。大多數NoSQL數據庫產品還處于初級階段,與已經非常完善成熟的關系型數據庫不可同日而語。

6.4云數據庫的安全

信息安全技術雖然越來越完善,但數據庫安全面臨的挑戰越來越多,如數據品質和完整性。互聯網增加了人們對于網絡的依賴,但是人們無法確定網絡數據的品質和完整性。而且,移動用戶訪問控制和隱私問題也被暴露。移動設備、傳感器網絡促使數字化生活隨時隨地成為了可能,但是人們發現自己已經不知不覺地生活在了一個暴露一切數據的環境中,用戶的賬號、信用憑證、權限、計劃和瀏覽記錄等均是如此。如何管理與使用這些數據和確保訪問控制的真實性、權威性等方面面臨著前所未有的挑戰。數據庫的可存活性也不容忽視。可存活性意味著系統在遭受攻擊或產生錯誤的時候能繼續提供核心服務并及時回復全部的服務。目前還沒有標準的云數據庫安全標準體系,因此用戶對云數據庫的安全較為關心。

較為完善的云服務商業模式應該是大多數云服務提供商自身就是內容供應商,公司有條件把主要業務完全遷移至公共端,但是實施的公司很少且很困難。這可能會限制云計算和云數據庫的發展。因此創建和實行一個完善的能保證安全體系的結構對于云數據庫技術將來的發展至關重要。

6.5云數據庫的發展趨勢

隨著云的興起,非關系型數據庫成了一個極其熱門的新領域,非關系型數據庫產品的發展非常迅速。而傳統的關系型數據庫顯得力不從心,暴露了很多難以克服的問題,它所存在的許多規則束縛了數據庫系統的開發,而在云端需要的是一個真正強大的、能讓多臺計算機一起運行的數據庫系統,可保存所有用戶的所有數據。作為云數據庫,就其自身所持有的易擴展、易配置以及根據負載特性和資源狀況進行自我優化的特征,非關系型數據庫正在吸引人們的注意。因為關系型數據庫本身所存在的不足以及不易擴展,在應用中需要配合Join操作,而Join操作不易并行的性質使得關系型數據庫很難部署在有大量節點的ShareNothing集群,這對海量數據庫的處理造成不利的局面。

基于云計算的需求,應該說NoSQL數據庫就是下一代數據庫技術,因為其主要特點是非關系、分布式、水平可擴展,非常配合云計算中的海量數據運算。NoSQL數據庫具有極高的并發讀/寫性能,而且在保證海量數據存儲的同時,還具有良好的查詢性能和彈性的可擴展能力。另外,并行關系型數據庫也可以考慮。并行關系型數據庫支持ShareNothing集群系統,提高了系統的可伸縮性,多用于數據分析應用中,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論