大數據時代,野心勃勃的MongDB爲你處理海量數據!

 MongoDB是一個基於分佈式文件存儲的數據庫,由C++語言編寫,旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。其名字來自humongous這個單詞的中間部分,從名字可見其野心所在就是海量數據的處理。

一、MongoDB簡介

  2011年將被記住,因爲這一年SQL將死;這一年,關係數據庫從一線退下;這一年開發人員發現他們沒必要爲了持久化數據,而將每個對象轉化爲表格結構。

  2011年是文檔數據庫的一年,儘管一直在穩步發展勢頭,通過過去八年多的發展,現在有各種穩定的文檔數據庫——從基於亞馬遜和谷歌的雲,到各種開放源碼工具,尤其是MongoDB。

  那麼,MongoDB是什麼?這裏的五件事是每個開發人員應該知道的:

    • MongoDB是一個獨立的服務器;

    • 它是基於文檔的,而不是基於表格的;

    • 它是非結構化的;

    • 不必去學習另一種查詢語言;

    • 它具有強大的主流開發語言支持,如 C#、C++、Java、PHP、Perl、Python、Ruby。

  1、MongoDB 是一個獨立的服務器

  如MySQL或PostgreSQL一樣,MongoDB提供偵聽端口以便接入。它提供了用於查詢,創建,更新和刪除的工具。從理論上講,你使用它的工作方式與你使用MySQL或PostgreSQL的工作方式相同:連接,執行任務,並關閉連接。

  2、MongoDB是非結構化的

  MongoDB 沒有結構化語言。如果你想創建一個新的文檔類型,你不用做任何事來告訴數據庫關於這些數據的結構,而僅僅是存到數據庫中即可。

  簡單的說,MongoDB使用類似JavaScript或PHP的類型處理方式。也就是說,數據庫是靈活的弱類型。

  雖然有一些數據是有限制條件的(大塊的數據可能需要一些明確的處理),但在大多數情況下,你可以像寫PHP代碼一樣編寫你的MongoDB代碼。

  3、不必去學習另一種查詢語言

  還記得這些你寫的數據庫抽象層嗎?還記得那些你處理過的ORM層嗎?現在,你可以將它們全部丟棄。在MongoDB中你不需要他們。MongoDB沒有很多查詢語句。在大多數情況下,只需給它一個數組指定你想要的信息,然後它會給你返回文檔的數組。如果你想運行一些非常複雜的查詢(如Map-Reduce操作),可以向MongoDB傳遞JavaScript,其內部的JavaScript引擎可以解析這個腳本。

  4、MongoDB是神速的

  開發時間也短,因爲沒有結構需要管理和很少(如果有的話)的數據映射。

  學習曲線很平滑,因爲沒有新的查詢語言學習。代碼是簡潔的。畢竟,無須任何其他ORM,封裝可以非常簡單。你的代碼是未來的保證。向你的對象增加更多的字段是很輕鬆的。因此,需求變化了,你可以很快修改代碼以便適應。

  MongoDB足以讓我意識到它有改變遊戲規則的潛力。這也是讓大家主張使用新一代的文檔數據庫代替基於SQL的關係數據庫的原因。將關係數據庫留在塵土裏,更可能的是讓它們做它們能做好的事情:存儲屬於行和表的數據。


圖靈關於MongoDB的圖書:

enter p_w_picpath description hereenter p_w_picpath description hereenter p_w_picpath description here

一、《MongoDB實戰》

如上文所述MongoDB是爲處理大數據而生的一款面向文檔的數據庫,而且MongoDB由10gen公司開發和維護。《MongoDB實戰》作者Kyle Banker曾在該公司負責MongoDB驅動程序的維護,對各方面技術細節都瞭如指掌,本書也是在大量第一手資料的基礎上形成的,其權威性毋庸置疑。

作者介紹:Kyle Banker  軟件工程師,曾工作於10gen公司,負責維護RubyC語言的官方MongoDB驅動、領導MongoDB文檔項目並開發培訓課程,且爲客戶提供諮詢、商業支持和培訓;現任職於Snapjoy(爲用戶提供默認私有的在線照片備份和自動管理服務)。個人網站http://kylebanker.com/blog。  譯者介紹:丁雪豐  一線“攻城師”一枚,InfoQ中文站小編,滿江紅翻譯組核心成員,常年混跡於各種社區,業餘時間寫作、翻譯、漢化軟件,《RESTful Web Services Cookbook中文版》、《Spring攻略》等多部書的譯者。

enter p_w_picpath description here內容簡介:

本書基於MongoDB 2.0+,全面系統地講解了設計、實現、安裝和維護MongoDB的各方面內容。全書分三部分,第一部分從基於文檔的數據與傳統關係型數據庫的差別講起,介紹了MongoDB的基本概念及安裝使用。第二部分是一個實戰式教程,結合示例講解了MongoDB的CRUD操作,以及實現系統安全、靈活和高效的設計原則及模式。第三部分側重數據庫的維護和管理,深入到MongoDB背後的技術細節,給出了對管理員和開發者都極有價值的建議。

本書篇幅適中,內容深淺得當,文字通俗易懂,再配以直觀形象的插圖和貼近實戰的代碼示例,非常適合MongoDB學習者、開發人員及管理員學習參考。

本書內容:

MongoDB介紹及其優劣勢  MongoDBShell界面  使用MongoDB的簡單應用  如何通過以文檔爲中心的方式看待數據  編寫查詢,以MapReduce方式聚合數據  更新和刪除數據及相關性能考量  尋找和改進慢查詢  MongoDB的複製與分片  MongoDB的監控、備份及恢復

二、《深入學習MongoDB》

內容簡介:

本書分兩部分,分別對應O’Reilly 公司出版的Scaling MongoDB 和50 Tips and Tricks forMongoDB Developers 兩本書的內容。第一部分全面講解了有關建立和使用集羣的內容,不僅從應用開發人員的角度講解了MongoDB 的使用,而且從運維方面介紹了集羣的管理。其中內容包括通過分片設置MongoDB 集羣,分片的工作原理,查詢和更新數據,操作、監控和備份集羣,錯誤處理。第二部分依次從應用設計、實現、優化、數據安全和管理方面介紹了使用MongoDB構建應用的技巧,內容包括範式化與反範式化的利弊權衡,複製組的故障恢復等。 本書適合所有MongoDB 用戶閱讀參考。

具體的主題有:

  通過分片設置MongoDB集羣;   在集羣中查詢和更新數據;   操作、監控和備份集羣;   從程序設計角度,考慮如何應對分片、配置服務器或者mongos進程停止運行的情況。

遵照其中建議,你很快就可通過MongoDB構建和運行一個高效的、可預測的分佈式系統。 對 於用戶而言,MongoDB上手很容易,但是構建使用MongoDB的應用程序時,一些棘手的問題便會接踵而來。怎樣權衡範式化與反範式化?怎樣處理複製 組失效的情況並進行故障恢復?本書第二部分“MongoDB開發技巧50例”呈現了一系列的MongoDB提示和技巧,可幫助用戶解決與應用程序設計與實 現、數據安全和監控有關的各種問題。

作者簡介: Kristina Chodorow  10gen公司的軟件工程師,MongoDB項目的核心成員,從事與數據庫服務器、PHP驅動、Perl驅動等相關的工作。她常在世界級技術大會上作報告,包括OSCONLinuxConFOSDEMLatinoware

三、《MongoDB權威指南》

內容簡介:

本書是一本廣受好評的MongoDB方面的圖書。與傳統的關係型數據庫不同,MongoDB是一種面向文檔的數據庫。書中介紹了面向文檔的存儲方式及利用MongoDB的無模式數據模型處理文檔、集合和多個數據庫,講述瞭如何執行基本的寫操作以及如何執行各種複雜的條件查詢,還介紹了索引、聚合工具以及其他高級查詢技術,另外對監控、安全性和身份驗證、備份和修復、水平擴展MongoDB數據庫等內容也有所涉及。 本書適合數據庫開發人員閱讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章