MongoDB非結構化數據解決方案.docx_第1頁
MongoDB非結構化數據解決方案.docx_第2頁
MongoDB非結構化數據解決方案.docx_第3頁
MongoDB非結構化數據解決方案.docx_第4頁
MongoDB非結構化數據解決方案.docx_第5頁
全文預覽已結束

下載本文檔

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

文檔簡介

隨著WEB2.0 的應用和發展,一些新型互聯網應用,如社交網絡、博客(Blog)、個人視頻分享、個性化信息租用服務等應用不斷涌入人們眼簾,并逐漸成為人們生活的一部分。云計算為這些新型應用提供了計算手段,云存儲為這些應用提供了存儲方案。目前,數以億計的網絡用戶通過個人電腦、智能手機等終端訪問Internet,據中國互聯網絡信息中心(CNNIC) 在2012 年1 月16 日發布的中國互聯網發展狀況統計報告中顯示,截止2011 年12月底,中國網民突破5 億,其中手機網民達3.56億,且同前期相比呈不斷增長趨勢。網絡用戶在瀏覽信息的同時,產生了海量的格式多樣的新數據,在這些數據中,諸如文檔、音樂、圖片、視頻一類的非結構化信息占比相當大。面臨用戶端的日益膨脹和海量數據的持續產生,盡管高性能處理器已基本滿足了運算需求,卻對無限大的存儲空間和無限大的網絡帶寬需求力不從心。因此,在信息系統設計中,計算設計已經不再是應用的中心,而數據的妥善存儲和管理成為系統設計的焦點。1 非結構化數據存儲發展進程當前,互聯網中的數據包括非結構化數據和半結構化的數據,非結構化信息又以二進制文件為主。制約海量非結構化數據存儲的關鍵問題是,數據中心與異構終端間的數據共享程度不夠強,存儲系統的高并發讀寫能力欠缺,存儲系統的自由擴展比較困難。針對移動計算的海量存儲需求,深入研究非結構化數據的存儲發展過程,這有助于開發出具有高共享、高吞吐和高并發能力的網絡存儲系統。傳統存儲技術中,文件系統是可持久存儲和管理數據的普遍手段。文件的管理方式主要有單機文件系統、網絡文件系統、分布式文件系統和高通量文件系統等。在單機文件系統中,十億兆位字節文件系統(ZFS, Zettabyte File System) 是應用較成功的典范,該系統由Sun 公司于2005 年11 月正式發布,是針對ZB 級數據存儲需求而設計的128 位UNIX 文件系統,ZFS 引入“存儲池”的概念管理物理存儲空間,采用寫時復制事務模型來維護數據一致性。由于該系統不能跨越數據的物理位置,同時沒有妥善地解決數據傳輸通道的瓶頸問題,且系統復雜度較高,最終沒有得到推廣。網絡文件系統(NFS, Network File System) 的出現,使得跨平臺的非結構化數據共享成為可能,數據存儲通過遠程過程調用(RPC, Remote Procedure Call) 機制實現,使遠程文件本地化,用戶存取遠程文件如同訪問本地文件一樣方便,但NFS 的服務器架構過于單一,決定其擴展性受到局限。搜索引擎的出現,使得用戶得以免費獲取快速檢索信息的便利,這一便利是建立在海量存儲和海量計算基礎上的。為使用戶檢索到最新的信息,新增的非結構化型WEB 快照數據需要及時存儲到服務器上,便于分析處理和建立索引,盡管此時已經出現基于高性能計算(High Performance Computing, HPC)的并行文件系統,然而成本高昂、當節點、網絡或磁盤陣列出現故障后需停機恢復,不適合在線維護。而后,Google 公司提出一種基于集中式管理、分布式存儲的全新存儲架構,即Google File System(GFS),該架構將非結構化數據按64MB 的粒度存儲于各子結點上3。這些系統與特定應用的耦合度高,表現出適應性差的缺點。非結構化數據存儲技術與文件系統及其存儲技術的發展密切相關,更與數據庫的發展密不可分。使用與操作系統、數據庫系統無縫結合而形成的新型存儲技術取代傳統存儲解決方案是必然的。2 非關系型數據庫(Not Only SQL,NoSQL)傳統的關系數據庫在高并發讀寫、高吞吐率的海量數據存取、高可用性和高可擴展性需求方面表現得不盡如意。針對海量非結構化數據存儲管理難題,研究者致力于尋求一種可靠的、低成本的和易實施的存儲解決方案,在此情況下,出現了諸如Tokyo Cabinet、MongoDB、CouchDB 等非關系型數據庫(Not Only SQL, NoSQL) 。NoSQL數據庫打破了傳統關系數據庫的事務一致性及范式約束,放棄了關系數據庫強大的SQL 查詢語言,采用 格式存儲數據,保證系統能提供海量數據存儲的同時具備優良查詢性能。2.1 NoSQL數據庫特性NoSQL 數據庫系統通常具有以下六個特性。1)對多個服務器進行簡單的水平擴展即可實現吞吐量的提高;2)具有在多服務間進行復制和分發數據的能力;3)與SQL 數據綁定相比,NoSQL 的存儲調用接口和協議更加簡單;4)傳統數據庫系統的事務處理具有四個特性:原子性、一致性、隔離性和持久性(Atomicity,Consistency, Isolation, Durability, ACID),為增強新型數據庫系統的可伸縮性,NoSQL 系統放棄了部分ACID 特性;5)利用分布式索引和隨機存儲器實現高效的數據存儲;6)具有動態添加新屬性和數據記錄的能力。滿足以上特性的NoSQL 數據庫比較多,大致可分為三類。一類是滿足較高讀寫性能需求的 型數據庫,如Redis、ToKyo Cabinet等,另一類是可滿足海量存儲需求和良好查詢性能的面向文檔的數據庫,如MongoDB、CouchDB等,還有一類是支持高可擴展性和可用性的分布式數據庫,如Cassandra、Voldmort 等。結合非結構化數據存儲管理,本研究選用了MongoDB 數據庫,并重點介紹其在.NET Framework 下的開發和應用。2.2 MongoDB存儲體系結構MongoDB 是一款基于JSON(JavaScript Object Notation) 的非關系型數據庫,可將一個文檔或文件以BSON(Binary JSON) 的格式存入其中。JSON是一種輕量級的數據交換格式,以一種特定的字符串表示JavaScript 對象,這種交換格式易于閱讀和編寫,同時也易于機器解析和生成。BSON 是JSON 的二進制表示形式,同JSON 一樣,支持內嵌的文檔對象和數組對象。以BSON 格式存儲的非結構化數據, 在MongoDB 數據庫中稱之為文檔(Document),每個文檔可理解為關系數據庫中的一條記錄(Record),若干記錄使用集合(Collection) 統一管理,若干集合屬于同一個數據庫,如此一來,文件數據可直接存儲于數據庫中,其存儲結構如圖1 所示,與關系型數據庫相比,其數據的邏輯結構對比如表1所示。WEB2.0 環境下,已出現過將視頻、音樂等二進制大對象直接存儲入RDBMS 的存儲技術,但須以同構的記錄形式存儲,而MongoDB 具有支持異構數據存儲的優點,是RDBMS 所不能及的。因此,使用MongoDB 可實現非結構化數據的統一管理。MongoDB簡介:1. 一個分布式文件存儲數據庫,由C+語言編寫的開源項目。 2. 一個NoSQL中,功能最豐富、最像關系數據庫的產品。 3. 它支持的數據結構非常松散,是類似JSON的BSON格式,因此可以存儲比較復雜的數據模型。 4. 它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,而且還支持索引、MapReduce等功能。MongoDB主要特點:1. 高性能、易部署、易使用,存儲數據方便。 2. 模式自由,支持動態查詢、完全索引、文檔內嵌查詢。 3. 面向文檔,以K/V形式存儲數據,Key用于唯一標識,而Value則可以是各種復雜的數據類型。 4.

溫馨提示

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

評論

0/150

提交評論