云數(shù)據(jù)庫一詞來自英文“cloud database”(簡(jiǎn)稱cloudDB),又稱“database for the cloud”。在正式發(fā)表的文獻(xiàn)上最早見于2008年。
云數(shù)據(jù)庫服務(wù)一詞來自英文“cloud database-as-a-service”,又稱“database-as-a-service for the cloud”。在正式發(fā)表的文獻(xiàn)上最早見于2011年。
繼2006年亞馬遜(Amazon)公司推出云計(jì)算平臺(tái)EC2后,很多公司紛紛推出云計(jì)算平臺(tái),例如,Aamzon的AWS、微軟的Windows Azure和谷歌(Google)的AppEngine等。很多運(yùn)行于這些云計(jì)算平臺(tái)的應(yīng)用程序需要訪問數(shù)據(jù)庫。傳統(tǒng)數(shù)據(jù)庫是針對(duì)物理機(jī)開發(fā)和優(yōu)化的,而云計(jì)算平臺(tái)則是基于虛擬機(jī),將數(shù)據(jù)庫部署在虛擬機(jī)上需要解決很多挑戰(zhàn),早期的嘗試有Amazon在2008年開發(fā)的SimpleDB 。早期解決的主要問題是大規(guī)模用戶的并發(fā)訪問延遲和大規(guī)模系統(tǒng)的可用性,因此,這一時(shí)期開發(fā)的云數(shù)據(jù)庫主要是基于鍵值模型的NoSQL數(shù)據(jù)庫。
由于很多應(yīng)用對(duì)事務(wù)和關(guān)系模型的需求,在2009年左右,學(xué)術(shù)界和產(chǎn)業(yè)界都投入很大力量來開發(fā)基于關(guān)系模型的云數(shù)據(jù),學(xué)術(shù)界的嘗試有加州大學(xué)圣塔芭芭拉分校(UCSB)的ElasTrasS (2009)和麻省理工學(xué)院(MIT)的Relational Cloud (2011)等,產(chǎn)業(yè)界的系統(tǒng)有Google的MegaStore (2008)和微軟的SQL Azure Database (2009)等。之后,各大云平臺(tái)提供商和數(shù)據(jù)庫廠商相繼推出豐富的云數(shù)據(jù)庫產(chǎn)品。
①良好的彈性。能夠平滑地支持訪問量的突變,包括突增和突減。
②動(dòng)態(tài)可擴(kuò)展。可以滿足不斷增加的數(shù)據(jù)存儲(chǔ)和訪問需求。
③高可用性。能夠?qū)τ脩艉芎玫仉[藏節(jié)點(diǎn)失效等故障,提供不間斷服務(wù)。
④使用代價(jià)低。用戶采用按需付費(fèi)的方式使用云計(jì)算平臺(tái)的各種軟、硬件資源,通過資源共享節(jié)省成本。
⑤易用性。用戶不必自己部署和維護(hù)數(shù)據(jù)庫,也不必自己維護(hù)數(shù)據(jù)庫運(yùn)行所需要的機(jī)器、存儲(chǔ)、網(wǎng)絡(luò)等。
根據(jù)數(shù)據(jù)模型,云數(shù)據(jù)庫主要有兩大類:
①基于鍵值模型的NoSQL數(shù)據(jù)庫。典型代表有Google的BigTable及其開源實(shí)現(xiàn)HBase、Amazon的Dynamo和SimpleDB、雅虎(Yahoo)的PNUTS等。
②基于關(guān)系模型的關(guān)系數(shù)據(jù)庫。典型代表有微軟的SQL Azure、Amazon的RDS和AMI、Google的Cloud SQL、Oracle的Database Cloud Service、EnterpriseDB的Postgres Plus Cloud Database、MongoDB的mLab等。
早期的云數(shù)據(jù)庫以NoSQL為主,主要原因是在大規(guī)模云計(jì)算平臺(tái)上難以同時(shí)保證一致性、可用性和容忍網(wǎng)絡(luò)分區(qū),從而難以實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫所必須的事務(wù)一致性(ACID),代價(jià)太高。NoSQL數(shù)據(jù)庫是以放松一致性和犧牲對(duì)事務(wù)的支持,來獲得良好的擴(kuò)展性和高可用性的。
后來人們提出了多種方法來解決大規(guī)模云計(jì)算平臺(tái)的事務(wù)一致性,例如Google的分布式數(shù)據(jù)庫Spanner是基于原子鐘來確定事務(wù)之間的順序的。
①多租戶的高效支持。給定一組數(shù)據(jù)庫訪問負(fù)載,確定它們的數(shù)據(jù)庫需要多少臺(tái)機(jī)器,目標(biāo)是在保證查詢響應(yīng)時(shí)間的前提下,以最少的機(jī)器服務(wù)最多的負(fù)載。
②彈性可擴(kuò)展。支持?jǐn)?shù)據(jù)庫的大小和負(fù)載大小動(dòng)態(tài)可變。通常技術(shù)是使用虛擬機(jī)來部署數(shù)據(jù)庫,動(dòng)態(tài)監(jiān)測(cè)負(fù)載和數(shù)據(jù)庫的狀態(tài),進(jìn)行動(dòng)態(tài)數(shù)據(jù)庫遷移,例如,A.J.埃爾莫爾(A.J.Elmore)提出云平臺(tái)上數(shù)據(jù)庫的在線遷移技術(shù)。
③數(shù)據(jù)安全。為了不讓沒有許可的人獲取或修改數(shù)據(jù),云數(shù)據(jù)庫通常采用數(shù)據(jù)加密和身份驗(yàn)證等技術(shù)。
④系統(tǒng)運(yùn)維。支持大量用戶的大規(guī)模云數(shù)據(jù)庫的運(yùn)維非常復(fù)雜,為簡(jiǎn)化運(yùn)維,主要技術(shù)包括自動(dòng)化的狀態(tài)監(jiān)測(cè)、故障定位、性能瓶頸定位、數(shù)據(jù)庫性能調(diào)優(yōu)工具。
一方面,云數(shù)據(jù)庫的出現(xiàn)極大地改變了企業(yè)管理數(shù)據(jù)的方式,大量的中小企業(yè)更愿意采用云數(shù)據(jù)庫產(chǎn)品,數(shù)據(jù)庫市場(chǎng)份額面臨重新分配。另一方面,云數(shù)據(jù)庫面臨很多新的挑戰(zhàn)和問題,由此催生新一代的數(shù)據(jù)庫技術(shù)。
聯(lián)系客服