大資料時代,野心勃勃的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的圖書:
如上文所述MongoDB是為處理大資料而生的一款面向文件的資料庫,而且MongoDB由10gen公司開發和維護。《MongoDB實戰》作者Kyle Banker曾在該公司負責MongoDB驅動程式的維護,對各方面技術細節都瞭如指掌,本書也是在大量第一手資料的基礎上形成的,其權威性毋庸置疑。
作者介紹:Kyle Banker 軟體工程師,曾工作於10gen公司,負責維護Ruby及C語言的官方MongoDB驅動、領導MongoDB文件專案並開發培訓課程,且為客戶提供諮詢、商業支援和培訓;現任職於Snapjoy(為使用者提供預設私有的線上照片備份和自動管理服務)。個人網站http://kylebanker.com/blog。
譯者介紹:丁雪豐 一線“攻城師”一枚,InfoQ中文站小編,滿江紅翻譯組核心成員,常年混跡於各種社群,業餘時間寫作、翻譯、漢化軟體,《RESTful Web Services Cookbook中文版》、《Spring攻略》等多部書的譯者。
內容簡介:
本書基於MongoDB 2.0+,全面系統地講解了設計、實現、安裝和維護MongoDB的各方面內容。全書分三部分,第一部分從基於文件的資料與傳統關係型資料庫的差別講起,介紹了MongoDB的基本概念及安裝使用。第二部分是一個實戰式教程,結合示例講解了MongoDB的CRUD操作,以及實現系統安全、靈活和高效的設計原則及模式。第三部分側重資料庫的維護和管理,深入到MongoDB背後的技術細節,給出了對管理員和開發者都極有價值的建議。
本書篇幅適中,內容深淺得當,文字通俗易懂,再配以直觀形象的插圖和貼近實戰的程式碼示例,非常適合MongoDB學習者、開發人員及管理員學習參考。
本書內容:
MongoDB介紹及其優劣勢
MongoDB的Shell介面
使用MongoDB的簡單應用
如何通過以文件為中心的方式看待資料
編寫查詢,以MapReduce方式聚合資料
更新和刪除資料及相關效能考量
尋找和改進慢查詢
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驅動等相關的工作。她常在世界級技術大會上作報告,包括OSCON、LinuxCon、FOSDEM和Latinoware。
內容簡介:
本書是一本廣受好評的MongoDB方面的圖書。與傳統的關係型資料庫不同,MongoDB是一種面向文件的資料庫。書中介紹了面向文件的儲存方式及利用MongoDB的無模式資料模型處理文件、集合和多個資料庫,講述瞭如何執行基本的寫操作以及如何執行各種複雜的條件查詢,還介紹了索引、聚合工具以及其他高階查詢技術,另外對監控、安全性和身份驗證、備份和修復、水平擴充套件MongoDB資料庫等內容也有所涉及。 本書適合資料庫開發人員閱讀。
相關文章
- 海量資料處理
- 海量資料處理2
- 海量資料處理 (轉)
- 海量資料的併發處理
- 海量資料處理_批量插入
- 海量資料處理_批量更新
- 海量資料處理_資料泵分批資料遷移
- 我的《海量資料處理與大資料技術實戰》出版啦!大資料
- 海量資料處理_表分割槽
- 海量資料處理:十道面試題與十個海量資料處理方法總結面試題
- 處理海量資料的模式MapReduce,大規模資料集的並行運算模式並行
- 海量資料處理利器greenplum——初識
- 海量資料處理_使用外部表進行資料遷移
- 海量資料處理_表結構變更
- 海量資料處理_刪除重複行
- 大資料與海量資料的區別大資料
- “大資料”與“海量資料”的區別大資料
- 剖析大資料平臺的資料處理大資料
- 超3萬億資料實時分析,JCHDB助力海量資料處理
- 快手關於海量模型資料處理的實踐模型
- 滴滴處理海量資料的祕訣是什麼?
- SQL Server 2005對海量資料的處理SQLServer
- O'Reilly精品圖書推薦:大資料猩球:海量資料處理實踐指南大資料
- 大資料時代的資料治理!大資料
- N道大資料海量資訊處理 演算法面試集錦大資料演算法面試
- 女人與大資料:大資料時代就是女性的時代大資料
- 大資料的時代大資料
- 大資料處理的基本流程大資料
- 一套用來處理海量資料的軟體工具應運而生,這就是大資料!大資料
- 關於海量資料處理分析的經驗總結
- java大資料處理:如何使用Java技術實現高效的大資料處理Java大資料
- 資料庫如何處理大資料訪問資料庫大資料
- 大資料時代之你不得不知道的大資料概念大資料
- 大資料常用處理框架大資料框架
- 海量資料處理_表分割槽(線上重定義)
- 海量資料處理利器 Roaring BitMap 原理介紹
- 【雲端大資料實戰】大資料誤區、大資料處理步驟分析大資料
- 尋路大資料:海量資料與大規模分析大資料