云計算環(huán)境下NoSQL數(shù)據(jù)庫技術(shù)_第1頁
云計算環(huán)境下NoSQL數(shù)據(jù)庫技術(shù)_第2頁
云計算環(huán)境下NoSQL數(shù)據(jù)庫技術(shù)_第3頁
云計算環(huán)境下NoSQL數(shù)據(jù)庫技術(shù)_第4頁
云計算環(huán)境下NoSQL數(shù)據(jù)庫技術(shù)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

學(xué)生姓名:吳清學(xué)號:M130502791導(dǎo)師:吳開軍NoSQLDatabasetechnologyinCloudcomputing云計算環(huán)境下NoSQL數(shù)據(jù)庫技術(shù)◎2013.11.17

主要內(nèi)容21.云計算的概述2.云計算對存儲技術(shù)的要求3.NoSQL數(shù)據(jù)庫概述4.常見的NoSQL數(shù)據(jù)庫的比較5.結(jié)束語一、云計算的概述31.背景云計算是繼1980年大型計算機到客戶端-服務(wù)器的大轉(zhuǎn)變之后的又一種巨變。云計算的出現(xiàn)并非偶然,早在上世紀(jì)60年代,麥卡錫就提出了把計算能力作為一種像水和電一樣的公用事業(yè)提供給用戶的理念,這成為云計算思想的起源。在20世紀(jì)80年代網(wǎng)格計算、90年代公用計算,21世紀(jì)初虛擬化技術(shù)、SOA、SaaS應(yīng)用的支撐下,云計算作為一種新興的資源使用和交付模式逐漸為學(xué)界和產(chǎn)業(yè)界所認知。中國云發(fā)展創(chuàng)新產(chǎn)業(yè)聯(lián)盟評價云計算為“信息時代商業(yè)模式上的創(chuàng)新”。繼個人計算機變革、互聯(lián)網(wǎng)變革之后,云計算被看作第三次IT浪潮。它將帶來生活、生產(chǎn)方式和商業(yè)模式的根本性改變,云計算將成為當(dāng)前全社會關(guān)注的熱點。一、云計算的概述42.云計算的定義云計算(CloudComputing)是分布式計算(DistributedComputing)、并行計算(ParallelComputing)、效用計算(UtilityComputing)、網(wǎng)絡(luò)存儲(NetworkStorageTechnologies)、虛擬化(Virtualization)、負載均衡(LoadBalance)等傳統(tǒng)計算機和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。是透過網(wǎng)絡(luò)將龐大的計算處理程序自動分拆成無數(shù)個較小的子程序,再交由多臺服務(wù)器所組成的龐大系統(tǒng)經(jīng)計算分析之后將處理結(jié)果回傳給用戶。二、云計算對存儲技術(shù)的要求5電子商務(wù)、SNS等web2.0網(wǎng)站的興起,各種類型的應(yīng)用層出不窮,所以導(dǎo)致了這個云時代,不僅改變了網(wǎng)站的表現(xiàn)形式,也對網(wǎng)站的整體性能提出了更高的要求:1)數(shù)據(jù)庫高并發(fā)I/O讀寫的要求2)對海量數(shù)據(jù)的高校存儲和訪問的需求3)對在基于web的架構(gòu)當(dāng)中,數(shù)據(jù)庫是最難進行橫向擴展的,當(dāng)一個應(yīng)用系統(tǒng)的用戶量和訪問量與日俱增的時候,你的數(shù)據(jù)庫卻沒有辦法像webserver和appserver那樣簡單的通過添加更多的硬件和服務(wù)節(jié)點來擴展性能和負載能力。三、NoSQL數(shù)據(jù)庫概述61)什么是NoSQL?

NoSQL一詞最早出現(xiàn)于1998年,是CarloStrozzi開發(fā)的一個輕量、開源、不提供SQL功能的關(guān)系數(shù)據(jù)庫。NoSQL(NoSQL=NotOnlySQL),意即不提供SQL功能的數(shù)據(jù)庫,是一項全新的數(shù)據(jù)庫革命性運動。NoSQL早期就有人提出,發(fā)展至2009年趨勢越發(fā)高漲。NoSQL是指非關(guān)系型、分布式、不提供ACID的數(shù)據(jù)庫設(shè)計模式。三、NoSQL數(shù)據(jù)庫概述72)

NoSQL相對于關(guān)系型數(shù)據(jù)庫有以下的特點:(1)它們可以處理超大量的數(shù)據(jù)。(2)它們運行在便宜的PC服務(wù)器集群上。PC集群擴充起來非常方便并且成本很低,避免了“sharding”操作的復(fù)雜性和成本。(3)它們擊碎了性能瓶頸。NoSQL的支持者稱,通過NoSQL架構(gòu)可以省去將Web或Java應(yīng)用和數(shù)據(jù)轉(zhuǎn)換成SQL友好格式的時間,執(zhí)行速度變得更快?!癝QL并非適用于所有的程序代碼,”對于那些繁重的重復(fù)操作的數(shù)據(jù),SQL值得花錢。但是當(dāng)數(shù)據(jù)庫結(jié)構(gòu)非常簡單時,SQL可能沒有太大用處。三、NoSQL數(shù)據(jù)庫概述8(4)沒有過多的操作。雖然NoSQL的支持者也承認關(guān)系數(shù)據(jù)庫提供了無可比擬的功能集合,而且在數(shù)據(jù)完整性上也發(fā)揮絕對穩(wěn)定,他們同時也表示,企業(yè)的具體需求可能沒有那么多。(5)Bootstrap支持。因為NoSQL項目大都是開源的,因此它們?nèi)狈?yīng)商提供的正式支持。這一點它們與大多數(shù)開源項目一樣,不得不從社區(qū)中尋求支持。三、NoSQL數(shù)據(jù)庫概述93)NoSQL數(shù)據(jù)庫分類NoSQL數(shù)據(jù)庫根據(jù)數(shù)據(jù)的存儲模型和特點分很多種類。如下表類型部分代表表存儲BigTable、HBase、Riak、Cassandra等文檔存儲MongoDB、CouchDB等key-value存儲TokyoCabinet/Tyrant、BerkeleyDB、等圖存儲Neo4J、FlockDB等對象存儲Db4o、Versant等xml數(shù)據(jù)庫BerkeleyDBXML、BaseX等四、常見的NoSQL數(shù)據(jù)庫的比較10表存儲型Eg:

Google

HBase(配合ghshephard使用)所用語言:Java特點:支持數(shù)十億行x上百萬列使用許可:Apache協(xié)議:HTTP/REST(支持Thrift)在BigTable之后建模采用分布式架構(gòu)Map/reduce對實時查詢進行優(yōu)化高性能Thrift網(wǎng)關(guān)通過在server端掃描及過濾實現(xiàn)對查詢操作預(yù)判支持XML,Protobuf,和binary的HTTPCascading,hive,andpigsourceandsinkmodules基于Jruby(JIRB)的shell對配置改變和較小的升級都會重新回滾不會出現(xiàn)單點故障堪比MySQL的隨機訪問性能

最佳應(yīng)用場景:適用于偏好BigTable:)并且需要對大數(shù)據(jù)進行隨機、實時訪問的場合。例如:Facebook消息數(shù)據(jù)庫(更多通用的用例即將出現(xiàn))11文檔存儲型Eg:CouchDB(Apache)所用語言:Erlang特點:DB一致性,易于使用使用許可:Apache協(xié)議:HTTP/REST雙向數(shù)據(jù)復(fù)制,持續(xù)進行或臨時處理,處理時帶沖突檢查,因此,采用的是master-master復(fù)制MVCC–寫操作不阻塞讀操作可保存文件之前的版本Crash-only(可靠的)設(shè)計需要不時地進行數(shù)據(jù)壓縮視圖:嵌入式映射/減少格式化視圖:列表顯示支持進行服務(wù)器端文檔驗證,支持認證,根據(jù)變化實時更新,支持附件處理,因此,CouchApps(獨立的js應(yīng)用程序)需要jQuery程序庫

。最佳應(yīng)用場景:適用于數(shù)據(jù)變化較少,執(zhí)行預(yù)定義查詢,進行數(shù)據(jù)統(tǒng)計的應(yīng)用程序。適用于需要提供數(shù)據(jù)版本支持的應(yīng)用程序。例如:CRM、CMS系統(tǒng)。master-master復(fù)制對于多站點部署是非常有用的。四、常見的NoSQL數(shù)據(jù)庫的比較12key-value存儲型Eg:Redis所用語言:C/C++特點:運行異??焓褂迷S可:BSD協(xié)議:類Telnet有硬盤存儲支持的內(nèi)存數(shù)據(jù)庫,但自2.0版本以后可以將數(shù)據(jù)交換到硬盤(注意,2.4以后版本不支持該特性?。㎝aster-slave復(fù)制雖然采用簡單數(shù)據(jù)或以鍵值索引的哈希表,但也支持復(fù)雜操作,例如ZREVRANGEBYSCORE。INCR&co(適合計算極限值或統(tǒng)計數(shù)據(jù))支持sets(同時也支持union/diff/inter),支持列表(同時也支持隊列;阻塞式pop操作),支持哈希表(帶有多個域的對象),支持排序sets(高得分表,適用于范圍查詢),支持事務(wù),支持將數(shù)據(jù)設(shè)置成過期數(shù)據(jù)(類似快速緩沖區(qū)設(shè)計)。Pub/Sub允許用戶實現(xiàn)消息機制

最佳應(yīng)用場景:適用于數(shù)據(jù)變化快且數(shù)據(jù)庫大小可遇見(適合內(nèi)存容量)的應(yīng)用程序。例如:股票價格、數(shù)據(jù)分析、實時數(shù)據(jù)搜集、實時通訊。四、常見的NoSQL數(shù)據(jù)庫的比較13圖存儲型Eg:Neo4j所用語言:Java特點:基于關(guān)系的圖形數(shù)據(jù)庫使用許可:GPL,其中一些特性使用AGPL/商業(yè)許可協(xié)議:HTTP/REST(或嵌入在Java中)可獨立使用或嵌入到Java應(yīng)用程序圖形的節(jié)點和邊都可以帶有元數(shù)據(jù)很好的自帶web管理功能使用多種算法支持路徑搜索使用鍵值和關(guān)系進行索引為讀操作進行優(yōu)化支持事務(wù)(用Javaapi)使用Gremlin圖形遍歷語言支持Groovy腳本支持在線備份,高級監(jiān)控及高可靠性支持使用AGPL/商業(yè)許可

最佳應(yīng)用場景:適用于圖形一類數(shù)據(jù)。這是Neo4j與其他nosql數(shù)據(jù)庫的最顯著區(qū)別例如:社會關(guān)系,公共交通網(wǎng)絡(luò),地圖及網(wǎng)絡(luò)拓譜四、常見的NoSQL數(shù)據(jù)庫的比較14對象存儲型Eg:VersantObjectDatabase所用語言:C++,,Java,NET特點:跨多數(shù)據(jù)庫的無縫數(shù)據(jù)分發(fā),企業(yè)級的高可用性選項,動態(tài)模式更新,管理工作量少(或不需要),端到端的對象支持架構(gòu),細粒度并發(fā)控制,多線程多會話,支持國際字符集,高速數(shù)據(jù)采集設(shè)計目標(biāo)是優(yōu)化對象的存儲與操作。有能力管理任何類型的復(fù)雜模型。簡單類型:整型,字符串。數(shù)據(jù)類型與程序語言定義完全一致,非自建數(shù)據(jù)結(jié)構(gòu)。多值類型(Multi-valued):動態(tài)類型數(shù)組,可以有效支持復(fù)雜程序數(shù)據(jù)結(jié)構(gòu),無需拆分。有能力管理對象間的任何關(guān)系。對象間引用(鏈接):集合(唯一性),列表(排序),圖(關(guān)聯(lián)性查找),一次性存儲,透明裝載,能極大提高系統(tǒng)效率Versant數(shù)據(jù)庫能夠?qū)崿F(xiàn)數(shù)據(jù)與程序語言的無縫集成。最佳應(yīng)用場景:數(shù)據(jù)庫解決繼承對象存儲。例如:ObjectPersistence、MappingofObjects。四、常見的NoSQL數(shù)據(jù)庫的比較15xml數(shù)據(jù)庫Eg:

BerkeleyDB(BDBXML)是一個嵌入式數(shù)據(jù)庫規(guī)范,用來存儲和獲取XML格式的文檔,它建立在成功的BerkeleyDB之上。XQuery是設(shè)計用來驗證和返回XML文檔部分數(shù)據(jù)的查詢語言。所用語言:語言支持(C++、Java、Perl、Python、PHP、Tcl、Ruby等等)使用許可:Apache集成.XML特性:1:容器(Container)一個單獨的文件用來存貯多個或單個XML文檔以及它們的索引文件和其他元數(shù)據(jù).2:索引:用來快速的選擇文檔的子集,可以提高查詢的速度.3:完整性:確保文檔存儲和恢復(fù)的一致性4:元數(shù)據(jù):存儲在容器中的"關(guān)于文檔的數(shù)據(jù)",和文檔相關(guān)聯(lián).5:更改和修正:更改和修正XML文檔.包括添加和刪除.四、常見的NoSQL數(shù)據(jù)庫的比較16xml數(shù)據(jù)庫BDBXML繼承了大部分BerkeleyDB的特性,這使得BDBXML多年來一直處于領(lǐng)先地位.數(shù)據(jù)庫特性:1:嵌入式的數(shù)據(jù)訪問:BDB

XML像其他的庫文件一樣使用,它和應(yīng)用程序是同一進程空間的.這樣它訪問數(shù)據(jù)時就不會像服務(wù)器/客戶模式的數(shù)據(jù)庫那樣開銷大.2:最大可管理256TB的數(shù)據(jù)3:環(huán)境支持:BDB

XML支持多數(shù)據(jù)庫,數(shù)據(jù)cache共享,事務(wù),死鎖檢測,頁面控制,鎖控制和加密.BDBXML可以和BerkeleyDB共同使用一個環(huán)境.4:原子操作:使用BDB

XML的事務(wù)可以把復(fù)雜的讀或?qū)懖僮骺梢苑庋b成一個原子操作,一個原子操作中的語句要么全部完成,要么一條也不完成.5:單獨操作:在事務(wù)中的一個單獨操作可以忽略事務(wù).就像沒有事務(wù)一樣.6:可恢復(fù)性:事務(wù)可以保證在不可預(yù)測的系統(tǒng)故障的情況下的數(shù)據(jù)的有效性.7:并發(fā)連接:通過BDB

XML整合的隔離特性和死鎖檢測,可以保證多線程同時訪問數(shù)據(jù).8:復(fù)制:BDBXML提供從主數(shù)據(jù)庫復(fù)制數(shù)據(jù)到備份數(shù)據(jù)庫,可以提高容錯能力或用于負載平衡系統(tǒng).四、常見的NoSQL數(shù)據(jù)庫的比較五、結(jié)束語18隨著Web2.0和云計算的興起,和一些反SQL的倡導(dǎo),越來越多的大公司加入到NoSQL陣營。Digg、Twitter、Google、微軟等等公司已經(jīng)開始研究NoSQL,并在一些項目中進行實施。許多人甚至拋棄了MySQL開源數(shù)據(jù)庫這個長期以來Web2.0的寵兒,而改由NoSQL的方案來替代,因為優(yōu)勢實在是引人注目,NoSQL數(shù)據(jù)庫正在漸漸的成為數(shù)據(jù)庫領(lǐng)域不可缺的一部分,它彌補了關(guān)系數(shù)據(jù)庫在某寫應(yīng)用場景的不足,極大的節(jié)省了開發(fā)成本和維護成本,但是他也非萬能,數(shù)據(jù)才是最重要的東西,它是關(guān)鍵,然后是查詢類型、要處理的操作結(jié)構(gòu),以及什么需求要考慮伸縮性和CAP。企業(yè)應(yīng)該根據(jù)自身體業(yè)務(wù)的應(yīng)用環(huán)境的數(shù)據(jù)的類型,將關(guān)系數(shù)據(jù)庫和

溫馨提示

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

評論

0/150

提交評論