典型的十大NOSQL數(shù)據(jù)庫_第1頁
典型的十大NOSQL數(shù)據(jù)庫_第2頁
典型的十大NOSQL數(shù)據(jù)庫_第3頁
典型的十大NOSQL數(shù)據(jù)庫_第4頁
典型的十大NOSQL數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

分布式系統(tǒng)論文題目:NOSQL數(shù)據(jù)庫專 業(yè)班 級學(xué) 生學(xué) 號2023 年 秋季 學(xué)期名目\l“_TOC_250012“引言 1\l“_TOC_250011“NoSQL數(shù)據(jù)庫類型 1\l“_TOC_250010“依據(jù)NoSQL存儲模型和特點(diǎn)分類 1\l“_TOC_250009“依據(jù)CAP原理分類 2\l“_TOC_250008“NoSQL架構(gòu) 5\l“_TOC_250007“純NoSQL架構(gòu) 5\l“_TOC_250006“以NoSQL作為數(shù)據(jù)源的架構(gòu) 6\l“_TOC_250005“典型NoSQL數(shù)據(jù)庫概述 8HBase簡介 \l“_TOC_250004“Redis簡介 9\l“_TOC_250003“MongoDB簡介 10\l“_TOC_250002“Cassandra簡介 11\l“_TOC_250001“CouchDB簡介 11\l“_TOC_250000“5.總結(jié) 12NoSQL數(shù)據(jù)庫引言隨著互聯(lián)網(wǎng)Web2.0網(wǎng)站的興起,非關(guān)系型的數(shù)據(jù)庫現(xiàn)在成了一個極其熱門的Web2.0網(wǎng)站W(wǎng)eb2.0SQL查詢等。因此,關(guān)系數(shù)據(jù)庫在這些越來越多的應(yīng)用場景下顯得不那么適宜了,為了解決這類問題的非關(guān)系數(shù)據(jù)庫應(yīng)運(yùn)而生。NoSQL是非關(guān)系型數(shù)據(jù)存儲的廣義定義。它打破了長期以來關(guān)系型數(shù)據(jù)庫ACID理論大一統(tǒng)的局面。NoSQL數(shù)據(jù)存儲不需要固定的表構(gòu)造,通常也不存在連接操作。在大數(shù)據(jù)存取上具備關(guān)系型數(shù)據(jù)庫.無法比較的性能優(yōu)勢。該術(shù)2023年初得到了廣泛認(rèn)同。NoSQL數(shù)據(jù)庫類型依據(jù)NoSQL存儲模型和特點(diǎn)分類NoSQL11參照存儲模型的NoSQL分類中依據(jù)NoSQL數(shù)據(jù)庫的存儲原理,列出了六大類主要的NoSQL數(shù)據(jù)庫分類,分別是:列存儲、文檔型存儲、Key-value存儲、圖存儲、對象存儲xml1中僅列出了一些比較常見的NoSQL數(shù)據(jù)庫,在全部的這些類型的NoSQL數(shù)據(jù)庫中,當(dāng)前應(yīng)用較多的就是前三種類型:列存儲類型、文檔存儲、key-value存儲類型。特別需要說明的是,圖數(shù)據(jù)庫也可稱為面對/基于圖的Graphdatabase。圖數(shù)據(jù)庫的根本含義是以“圖”這種數(shù)據(jù)構(gòu)造存儲和查詢數(shù)據(jù),不是存儲圖片的數(shù)據(jù)庫。1CAP原理分類CAP理論是設(shè)計分布式web系統(tǒng)的一個很關(guān)鍵的定律,在設(shè)計分布式Web效勞中,通常需要考慮三個應(yīng)用的屬性:全都性、可用性以及分區(qū)寬容性。但是在實(shí)際的設(shè)計中,不行能這三方面同時做的很好。下面具體介紹CAP理論中的以理解為系統(tǒng)被即便被分個成無法通信的系統(tǒng)節(jié)點(diǎn)仍然可以正常工作,因此對于分布式系統(tǒng)而言,必需支持分區(qū)容錯。NoSQL肯定程度上就是基于這個理論提出來的,由于傳統(tǒng)的SQL數(shù)據(jù)庫〔關(guān)系型數(shù)據(jù)庫〕都是都是具有ACID屬性〔availability〕P〔partiontoleranc,因此,為了提高系統(tǒng)性能和可擴(kuò)展性,必需犧牲〔consistenc,推翻關(guān)系型數(shù)據(jù)庫中ACID這一套。CAP理論的核心思想是一個數(shù)據(jù)庫不行能同時滿足全都性、可用性和分區(qū)容錯性。依據(jù)CAP理論,從應(yīng)用的需求不同,一般對數(shù)據(jù)庫AP,主要是一些面對文檔的適用于分布式系統(tǒng)的數(shù)據(jù)庫,如SimpleDB2必定會選擇不同的NoSQL數(shù)據(jù)庫來進(jìn)展存儲操作,例如對于大型網(wǎng)站尤其是SNSAPTokyoCabinetAP理論的成功產(chǎn)品。CAPNoSQLCA原則、滿足CP原則和滿足APCAverticaCP原則的數(shù)據(jù)庫有MongoDB、HBase、Redis、BigTable、Hypertable、Terrastore、MemcacheDB、BerkeleyDBAP原則的數(shù)據(jù)庫有DynamoCouchDBSimpleDBCassandra等。承受NoSQL的型存儲架構(gòu)選用NoSQL數(shù)據(jù)庫必需依據(jù)特定的應(yīng)用場景又是格外擅長使用和維護(hù)關(guān)系數(shù)據(jù)庫的,那么筆者不建議開發(fā)人員承受NoSQLNoSQL。然而,在WEB2.0的網(wǎng)站中,關(guān)系數(shù)據(jù)庫大局部都消滅了瓶頸。在磁盤IO、復(fù)制、異構(gòu)復(fù)制等等,然而,這些工作需要的技術(shù)力量越來越高,也越來越具有NoSQL。如此多類型的NoSQL,而每種類型的NoSQL的NoSQL來作為存儲治理工具并不是一個很好答復(fù)的問題,影響選擇的因素有insert比例、update比例、是否常常更數(shù)據(jù)的某一個小字段、原子更需求;隨機(jī)的,而聞的查詢就是依據(jù)時間,越的越頻繁。NoSQL作為鏡像不轉(zhuǎn)變原有的以MySQL作為存儲的架構(gòu),使用NoSQL作為關(guān)心鏡像存儲,用NoSQL的優(yōu)勢關(guān)心提升性能。3如圖1NoSQL作為鏡像,這種架構(gòu)在原有基于MySQL數(shù)據(jù)庫的架構(gòu)上增加了一層關(guān)心的NoSQL存儲,代碼量不大,技術(shù)難度小,卻在可擴(kuò)展性和性能上起到了格外大的作用。只需要程序在寫入MySQL數(shù)據(jù)庫后,同時寫入到NoSQL數(shù)據(jù)庫,讓MySQL和NoSQL擁有一樣的鏡像數(shù)據(jù),在某些可以依據(jù)主用NoSQL的高性能來抵抗這些查詢。另外一種不通過程序代碼,而是通過MySQLNoSQL中。這種模式是上面一種的變體,是一種對寫入透亮但是具有更高技術(shù)難度一種模式。這種模式適用于現(xiàn)有的比較簡單的老系統(tǒng),同時也適用于需要把數(shù)據(jù)同步到多種類型的存儲中。MySQLNoSQL同MySQLUDF函數(shù),MySQLbinlog的解析來實(shí)現(xiàn)。MySQL中,依據(jù)查詢建立相應(yīng)的索引,其他不需要的字段,包括大文本字段都存儲在NoSQL中。在查詢的時候,先從MySQL中查詢出數(shù)據(jù)的主鍵,然后從NoSQL中直接取出對應(yīng)的數(shù)據(jù)即可。4如圖2,NoSQL和MySQL的結(jié)合,這種架構(gòu)模式把MySQL和NoSQL的作用進(jìn)展了融合,各司其職,讓MySQL特地負(fù)責(zé)處理擅長的關(guān)系存儲,NoSQL作為數(shù)據(jù)的存儲。它有以下優(yōu)點(diǎn):第一,節(jié)約MySQL的IO開銷,由于MySQL只存儲需要查詢的小字段,不再負(fù)責(zé)存儲大文本字段,這樣就可以節(jié)約MySQL存儲的空間開銷,從而節(jié)約MySQL的磁盤IO。筆者曾經(jīng)通過這種優(yōu)化,把MySQL一個40G的表縮減到幾百兆其次提高M(jìn)ySQLQueryCache緩存命中率。由于QueryCache緩存失效是表級的,在MySQL表一旦被更就會失效,經(jīng)過這種字段的分別,更的字段如果不是存儲在MySQL 中,那么對QueryCache就沒有任何影響而NoSQL的Cache往往都是行級別的只對更的記錄的緩存失效。第三,提升MySQL主從同步效率,由于MySQL存儲空間的減小,同步的數(shù)據(jù)記錄也減小了,而局部數(shù)據(jù)的更落在 NoSQL而不是MySQL,這樣也削減了MySQL數(shù)據(jù)需要同步的次數(shù)。第四,提高M(jìn)ySQL數(shù)據(jù)備份和恢復(fù)的速度,由于MySQL數(shù)據(jù)庫存儲的數(shù)據(jù)的減小,很簡潔看到數(shù)據(jù)備份和恢復(fù)的速度也將極大的提高。第五,比以前更簡潔擴(kuò)展,NoSQL天生就簡潔擴(kuò)展。經(jīng)過這種優(yōu)化,MySQL性能也得到提高。NoSQL架構(gòu)NoSQL架構(gòu)可以只使用NoSQL解決存儲問題,這樣不但可以提高性能,還格外易于擴(kuò)展。5在一些數(shù)據(jù)庫構(gòu)造常常變化,數(shù)據(jù)構(gòu)造不定的系統(tǒng)中,也格外適合使用NoSQL樣,承受NoSQL架構(gòu)可以避開常常對MySQL進(jìn)展表構(gòu)造調(diào)整,以避開增加字段帶來的性能問題。如圖3純NoSQL架構(gòu),這種架構(gòu)的缺點(diǎn)就是數(shù)據(jù)直接存儲在NoSQL中,NoSQL數(shù)據(jù)庫已經(jīng)具有局部key-value和關(guān)系數(shù)據(jù)庫之間,web2.0網(wǎng)站的查詢需求。比方:MongoDB就帶有關(guān)系查詢的功能,能解決常用的關(guān)系查詢。另外,TokyoTyranttabletableMySQL中的一個表。NoSQL作為數(shù)據(jù)源的架構(gòu)NoSQLNoSQL同步協(xié)議復(fù)制到其他存儲,依據(jù)應(yīng)用的規(guī)律來打算去相應(yīng)的存儲獵取數(shù)據(jù)。64,NoSQL作為數(shù)據(jù)源的架構(gòu),純NoSQL的架構(gòu)雖然構(gòu)造簡潔,NoSQL的簡潔功能上,可以使用以NoSQL為數(shù)據(jù)源的架構(gòu)。在這種架構(gòu)中,應(yīng)用程序只負(fù)責(zé)把數(shù)據(jù)直NoSQLOKNoSQLNoSQL數(shù)據(jù)的每次寫入,更,刪除操作都復(fù)制到MySQL數(shù)據(jù)庫中。同時,也可以通過復(fù)以依據(jù)不同的規(guī)章,把數(shù)據(jù)同步復(fù)制到設(shè)計好的分表分庫的MySQL中。NoSQL數(shù)據(jù)庫源,應(yīng)用程序就不NoSQL,實(shí)現(xiàn)了寫的高性能。而通過同步協(xié)議,把數(shù)據(jù)復(fù)制到各種適合查詢類型的存儲中,能實(shí)現(xiàn)查詢的高性能,不像以前MySQL一種數(shù)據(jù)開發(fā)人員只需要關(guān)心寫入NoSQL數(shù)據(jù)庫,數(shù)據(jù)的擴(kuò)展可以便利的在后端由復(fù)制7MySQLmastersalve模式的延遲問題是一樣的,解決方法也一樣。NoSQL數(shù)據(jù)庫的復(fù)制都沒有供給比較易于使用的復(fù)制接口所以這種架構(gòu)看起來很好,但是卻不是格外簡潔實(shí)現(xiàn)的。NoSQL數(shù)據(jù)庫概述HBase簡介HBase〔HadoopDatabase,是一個高牢靠性、高性能、面對列、可伸縮的HBase技術(shù)可在廉價PCServer上搭建起大規(guī)模構(gòu)造化存Bigtable的開源實(shí)現(xiàn),HBaseHadoopHDFS作為HadoopMapReduceHBase中的海量數(shù)據(jù),利用Zookeeper作為對應(yīng)。cellcellkeyfamilycolumnnameHBasecellsscan效率格外高〔b-tree存HBasehfileRegion中不同列族的數(shù)據(jù)是存儲在不同的hfile中的。所以,假設(shè)一次數(shù)據(jù)訪問過程中只訪問某個columnfamilytablescheme時的columnfamilyHBaseHBase的,這可以表達(dá)在幾點(diǎn)上:HBase的存儲是基于HDFS的,這表示HBase的每次讀操作都需要通過HDFS層來取得數(shù)據(jù),這也在肯定程度上打算了HBase的CassandraNoSQL數(shù)據(jù)庫,HBase集群RegionServerMasterRegionRegionServerRegions數(shù)據(jù),這在肯定程度上也為HBase引入了單點(diǎn)問cluster內(nèi)的各個節(jié)HDFS,Master,RegionServer,Zookeeper,這四者都8HBase的安裝部署比較繁瑣。Redis簡介REmoteDIctionaryServer(Redis)是一個由SalvatoreSanfilippo寫的key-valueMemcachedList、Set、SortedSetRedis:第一,keyvaluestore,Redis是一個以key-value形式存儲的數(shù)據(jù)庫,定位直指MySQL,用來作為唯一的存儲系統(tǒng);其次,memorycache,Redis是一個把數(shù)據(jù)memcachd;第三,datastructrueserver,Redis支持對簡單數(shù)據(jù)構(gòu)造的高速操作,供給某些特別業(yè)務(wù)場景的計算和呈現(xiàn)需求,比方排行榜應(yīng)用、Top10之類等。RedisIO操作都放到內(nèi)存中去,把挨次IORedis作為一個內(nèi)存NoSQL數(shù)據(jù)庫,就是把內(nèi)存當(dāng)做硬盤使用的一個典型范例。Redis使用內(nèi)存供給快,支持高頻率的讀寫;缺點(diǎn)是對設(shè)備硬件要求高,處理數(shù)據(jù)量有限。Redis是NoSQL數(shù)據(jù)庫中的Key-Value類型數(shù)據(jù)庫,其可以說是真正的純粹的NoSQL類型系型數(shù)據(jù)庫完全是對立的。Redis由于支持格外豐富的內(nèi)存數(shù)據(jù)構(gòu)造類型,如何Redis的長久化方式與傳統(tǒng)數(shù)據(jù)庫的方式有比較多的差異,Redis一共支持四種長久化方式,分別(snapshot)(aof)(vm),Diskstore方式。在設(shè)計思路上,前兩種是基于全部數(shù)據(jù)都在內(nèi)存中,即小數(shù)據(jù)并且vm句話說Redis〔全部數(shù)據(jù)能夠加載在內(nèi)存中Redis所擅長的領(lǐng)域。9MongoDB簡介MongoDB是一個可擴(kuò)展的、高性能、開源、模式自由、面對文檔的數(shù)據(jù)庫,C++web應(yīng)用供給可護(hù)展的高性能數(shù)據(jù)存儲解決方案。MongoDB在鍵值存儲和傳統(tǒng)關(guān)系數(shù)據(jù)庫系統(tǒng)之間建立了一個橋梁。MongoDB主要特性有:面對文檔存儲、支持完全索引、高牢靠性、自動分片支持云級擴(kuò)展性、查詢記錄分析、快速就地更、支持Map/Reduce、供給分布式文件系統(tǒng)GridFS、商業(yè)支持。除此之外,MongoDB還具有模式自由、支持動態(tài)查詢、支持?jǐn)?shù)據(jù)復(fù)制與的故障恢復(fù)、使用高效的二進(jìn)制數(shù)據(jù)存儲、包括大型對象、支持格外BSON。MongoDB的主要目標(biāo)是在鍵/值存儲方式以及傳統(tǒng)的RDBMS系統(tǒng)架起一座橋梁,集兩者的優(yōu)勢于一身。Mongo適合用于網(wǎng)站數(shù)據(jù):Mongo格外適合實(shí)時的插入,更與查詢,并具備網(wǎng)站實(shí)時數(shù)據(jù)存儲所需的復(fù)制及高度伸縮性;MongoDB適合用于緩存:由于性能很高,Mongo也適合作為信息根底設(shè)施的緩搭建的長久化緩存層可以避開下層的數(shù)據(jù)源過載;MongoDB適合用于大尺寸,低價值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存件進(jìn)展存儲;MongoDB適合用于高伸縮性的場景:Mongo格外適合由數(shù)十或數(shù)MapReduce引擎的內(nèi)置支持;用于對象及JSON數(shù)據(jù)的存儲:MongoDB的BSON數(shù)據(jù)格式格外適MongoDB的使用也會有一些限制。MongoDB不Mo

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論