MongoDB非結(jié)構(gòu)化數(shù)據(jù)解決方案_第1頁
MongoDB非結(jié)構(gòu)化數(shù)據(jù)解決方案_第2頁
MongoDB非結(jié)構(gòu)化數(shù)據(jù)解決方案_第3頁
MongoDB非結(jié)構(gòu)化數(shù)據(jù)解決方案_第4頁
MongoDB非結(jié)構(gòu)化數(shù)據(jù)解決方案_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、隨著WEB2.0 的應(yīng)用和發(fā)展,一些新型互聯(lián)網(wǎng)應(yīng)用,如社交網(wǎng)絡(luò)、博客(Blog)、個人視頻分享、個性化信息租用服務(wù)等應(yīng)用不斷涌入人們眼簾,并逐漸成為人們生活的一部分。云計算為這些新型應(yīng)用提供了計算手段,云存儲為這些應(yīng)用提供了存儲方案。目前,數(shù)以億計的網(wǎng)絡(luò)用戶通過個人電腦、智能手機(jī)等終端訪問Internet,據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC) 在2012 年1 月16 日發(fā)布的中國互聯(lián)網(wǎng)發(fā)展?fàn)顩r統(tǒng)計報告中顯示,截止2011 年12月底,中國網(wǎng)民突破5 億,其中手機(jī)網(wǎng)民達(dá)3.56億,且同前期相比呈不斷增長趨勢。網(wǎng)絡(luò)用戶在瀏覽信息的同時,產(chǎn)生了海量的格式多樣的新數(shù)據(jù),在這些數(shù)據(jù)中,諸如文檔、音樂、

2、圖片、視頻一類的非結(jié)構(gòu)化信息占比相當(dāng)大。面臨用戶端的日益膨脹和海量數(shù)據(jù)的持續(xù)產(chǎn)生,盡管高性能處理器已基本滿足了運(yùn)算需求,卻對無限大的存儲空間和無限大的網(wǎng)絡(luò)帶寬需求力不從心。因此,在信息系統(tǒng)設(shè)計中,計算設(shè)計已經(jīng)不再是應(yīng)用的中心,而數(shù)據(jù)的妥善存儲和管理成為系統(tǒng)設(shè)計的焦點(diǎn)。1 非結(jié)構(gòu)化數(shù)據(jù)存儲發(fā)展進(jìn)程當(dāng)前,互聯(lián)網(wǎng)中的數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化的數(shù)據(jù),非結(jié)構(gòu)化信息又以二進(jìn)制文件為主。制約海量非結(jié)構(gòu)化數(shù)據(jù)存儲的關(guān)鍵問題是,數(shù)據(jù)中心與異構(gòu)終端間的數(shù)據(jù)共享程度不夠強(qiáng),存儲系統(tǒng)的高并發(fā)讀寫能力欠缺,存儲系統(tǒng)的自由擴(kuò)展比較困難。針對移動計算的海量存儲需求,深入研究非結(jié)構(gòu)化數(shù)據(jù)的存儲發(fā)展過程,這有助于開發(fā)出具

3、有高共享、高吞吐和高并發(fā)能力的網(wǎng)絡(luò)存儲系統(tǒng)。傳統(tǒng)存儲技術(shù)中,文件系統(tǒng)是可持久存儲和管理數(shù)據(jù)的普遍手段。文件的管理方式主要有單機(jī)文件系統(tǒng)、網(wǎng)絡(luò)文件系統(tǒng)、分布式文件系統(tǒng)和高通量文件系統(tǒng)等。在單機(jī)文件系統(tǒng)中,十億兆位字節(jié)文件系統(tǒng)(ZFS, Zettabyte File System) 是應(yīng)用較成功的典范,該系統(tǒng)由Sun 公司于2005 年11 月正式發(fā)布,是針對ZB 級數(shù)據(jù)存儲需求而設(shè)計的128 位UNIX 文件系統(tǒng),ZFS 引入“存儲池”的概念管理物理存儲空間,采用寫時復(fù)制事務(wù)模型來維護(hù)數(shù)據(jù)一致性。由于該系統(tǒng)不能跨越數(shù)據(jù)的物理位置,同時沒有妥善地解決數(shù)據(jù)傳輸通道的瓶頸問題,且系統(tǒng)復(fù)雜度較高,最終沒

4、有得到推廣。網(wǎng)絡(luò)文件系統(tǒng)(NFS, Network File System) 的出現(xiàn),使得跨平臺的非結(jié)構(gòu)化數(shù)據(jù)共享成為可能,數(shù)據(jù)存儲通過遠(yuǎn)程過程調(diào)用(RPC, Remote Procedure Call) 機(jī)制實現(xiàn),使遠(yuǎn)程文件本地化,用戶存取遠(yuǎn)程文件如同訪問本地文件一樣方便,但NFS 的服務(wù)器架構(gòu)過于單一,決定其擴(kuò)展性受到局限。搜索引擎的出現(xiàn),使得用戶得以免費(fèi)獲取快速檢索信息的便利,這一便利是建立在海量存儲和海量計算基礎(chǔ)上的。為使用戶檢索到最新的信息,新增的非結(jié)構(gòu)化型WEB 快照數(shù)據(jù)需要及時存儲到服務(wù)器上,便于分析處理和建立索引,盡管此時已經(jīng)出現(xiàn)基于高性能計算(High Performance

5、 Computing, HPC)的并行文件系統(tǒng),然而成本高昂、當(dāng)節(jié)點(diǎn)、網(wǎng)絡(luò)或磁盤陣列出現(xiàn)故障后需停機(jī)恢復(fù),不適合在線維護(hù)。而后,Google 公司提出一種基于集中式管理、分布式存儲的全新存儲架構(gòu),即Google File System(GFS),該架構(gòu)將非結(jié)構(gòu)化數(shù)據(jù)按64MB 的粒度存儲于各子結(jié)點(diǎn)上3。這些系統(tǒng)與特定應(yīng)用的耦合度高,表現(xiàn)出適應(yīng)性差的缺點(diǎn)。非結(jié)構(gòu)化數(shù)據(jù)存儲技術(shù)與文件系統(tǒng)及其存儲技術(shù)的發(fā)展密切相關(guān),更與數(shù)據(jù)庫的發(fā)展密不可分。使用與操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)無縫結(jié)合而形成的新型存儲技術(shù)取代傳統(tǒng)存儲解決方案是必然的。2 非關(guān)系型數(shù)據(jù)庫(Not Only SQL,NoSQL)傳統(tǒng)的關(guān)系數(shù)據(jù)庫在

6、高并發(fā)讀寫、高吞吐率的海量數(shù)據(jù)存取、高可用性和高可擴(kuò)展性需求方面表現(xiàn)得不盡如意。針對海量非結(jié)構(gòu)化數(shù)據(jù)存儲管理難題,研究者致力于尋求一種可靠的、低成本的和易實施的存儲解決方案,在此情況下,出現(xiàn)了諸如Tokyo Cabinet、MongoDB、CouchDB 等非關(guān)系型數(shù)據(jù)庫(Not Only SQL, NoSQL) 。NoSQL數(shù)據(jù)庫打破了傳統(tǒng)關(guān)系數(shù)據(jù)庫的事務(wù)一致性及范式約束,放棄了關(guān)系數(shù)據(jù)庫強(qiáng)大的SQL 查詢語言,采用 格式存儲數(shù)據(jù),保證系統(tǒng)能提供海量數(shù)據(jù)存儲的同時具備優(yōu)良查詢性能。2.1 NoSQL數(shù)據(jù)庫特性NoSQL 數(shù)據(jù)庫系統(tǒng)通常具有以下六個特性。1)對多個服務(wù)器進(jìn)行簡單的水平擴(kuò)展即可實

7、現(xiàn)吞吐量的提高;2)具有在多服務(wù)間進(jìn)行復(fù)制和分發(fā)數(shù)據(jù)的能力;3)與SQL 數(shù)據(jù)綁定相比,NoSQL 的存儲調(diào)用接口和協(xié)議更加簡單;4)傳統(tǒng)數(shù)據(jù)庫系統(tǒng)的事務(wù)處理具有四個特性:原子性、一致性、隔離性和持久性(Atomicity,Consistency, Isolation, Durability, ACID),為增強(qiáng)新型數(shù)據(jù)庫系統(tǒng)的可伸縮性,NoSQL 系統(tǒng)放棄了部分ACID 特性;5)利用分布式索引和隨機(jī)存儲器實現(xiàn)高效的數(shù)據(jù)存儲;6)具有動態(tài)添加新屬性和數(shù)據(jù)記錄的能力。滿足以上特性的NoSQL 數(shù)據(jù)庫比較多,大致可分為三類。一類是滿足較高讀寫性能需求的 型數(shù)據(jù)庫,如Redis、ToKyo Cab

8、inet等,另一類是可滿足海量存儲需求和良好查詢性能的面向文檔的數(shù)據(jù)庫,如MongoDB、CouchDB等,還有一類是支持高可擴(kuò)展性和可用性的分布式數(shù)據(jù)庫,如Cassandra、Voldmort 等。結(jié)合非結(jié)構(gòu)化數(shù)據(jù)存儲管理,本研究選用了MongoDB 數(shù)據(jù)庫,并重點(diǎn)介紹其在.NET Framework 下的開發(fā)和應(yīng)用。2.2 MongoDB存儲體系結(jié)構(gòu)MongoDB 是一款基于JSON(JavaScript Object Notation) 的非關(guān)系型數(shù)據(jù)庫,可將一個文檔或文件以BSON(Binary JSON) 的格式存入其中。JSON是一種輕量級的數(shù)據(jù)交換格式,以一種特定的字符串表示Ja

9、vaScript 對象,這種交換格式易于閱讀和編寫,同時也易于機(jī)器解析和生成。BSON 是JSON 的二進(jìn)制表示形式,同JSON 一樣,支持內(nèi)嵌的文檔對象和數(shù)組對象。以BSON 格式存儲的非結(jié)構(gòu)化數(shù)據(jù), 在MongoDB 數(shù)據(jù)庫中稱之為文檔(Document),每個文檔可理解為關(guān)系數(shù)據(jù)庫中的一條記錄(Record),若干記錄使用集合(Collection) 統(tǒng)一管理,若干集合屬于同一個數(shù)據(jù)庫,如此一來,文件數(shù)據(jù)可直接存儲于數(shù)據(jù)庫中,其存儲結(jié)構(gòu)如圖1 所示,與關(guān)系型數(shù)據(jù)庫相比,其數(shù)據(jù)的邏輯結(jié)構(gòu)對比如表1所示。WEB2.0 環(huán)境下,已出現(xiàn)過將視頻、音樂等二進(jìn)制大對象直接存儲入RDBMS 的存儲技術(shù)

10、,但須以同構(gòu)的記錄形式存儲,而MongoDB 具有支持異構(gòu)數(shù)據(jù)存儲的優(yōu)點(diǎn),是RDBMS 所不能及的。因此,使用MongoDB 可實現(xiàn)非結(jié)構(gòu)化數(shù)據(jù)的統(tǒng)一管理。MongoDB簡介:1. 一個分布式文件存儲數(shù)據(jù)庫,由C+語言編寫的開源項目。 2. 一個NoSQL中,功能最豐富、最像關(guān)系數(shù)據(jù)庫的產(chǎn)品。 3. 它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似JSON的BSON格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)模型。 4. 它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,而且還支持索引、MapReduce等功能。MongoDB主要特點(diǎn):1. 高性能、易部署、易使用,存儲數(shù)據(jù)方便。 2. 模式自由,支持動態(tài)查詢、完全索引、文檔內(nèi)嵌查詢。 3. 面向文檔,以K/V形式存儲數(shù)據(jù),Key用于唯一標(biāo)識,而Value則可以是各種復(fù)雜的數(shù)據(jù)類型。 4.

溫馨提示

  • 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

提交評論