https://www.cnblogs.com/tan-chao/p/11023181.html
簡介
MongoDB[1] 是一個基于分布式檔案存盤的資料庫,由C 語言撰寫,旨在為WEB應用提供可擴展的高性能資料存盤解決方案,MongoDB[2] 是一個介于關系資料庫和非關系資料庫之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的,他支持的資料結構非常松散,是類似json的bson格式,因此可以存盤比較復雜的資料型別,Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向物件的查詢語言,幾乎可以實作類似關系資料庫單表查詢的絕大部分功能,而且還支持對資料建立索引,
特點
它的特點是高性能、易部署、易使用,存盤資料非常方便,主要功能特性有: *面向集合存盤,易存盤物件型別的資料, *模式自由, *支持動態查詢, *支持完全索引,包含內部物件, *支持查詢, *支持復制和故障恢復, *使用高效的二進制資料存盤,包括大型物件(如視頻等), *自動處理碎片,以支持云計算層次的擴展性, *支持RUBY,PYTHON,JAVA,C ,PHP,C#等多種語言, *檔案存盤格式為BSON(一種JSON的擴展), *可通過網路訪問,
使用原理
所謂“面向集合”(Collection-Oriented),意思是資料被分組存盤在資料集中,被稱為一個集合(Collection),每個集合在資料庫中都有一個唯一的標識名,并且可以包含無限數目的檔案,集合的概念類似關系型資料庫(RDBMS)里的表(table),不同的是它不需要定義任何模式(schema),Nytro MegaRAID技術中的閃存高速快取演算法,能夠快速識別資料庫內大資料集中的熱資料,提供一致的性能改進, 模式自由(schema-free),意味著對于存盤在mongodb資料庫中的檔案,我們不需要知道它的任何結構定義,如果需要的話,你完全可以把不同結構的檔案存盤在同一個資料庫里, 存盤在集合中的檔案,被存盤為鍵-值對的形式,鍵用于唯一標識一個檔案,為字串型別,而值則可以是各種復雜的檔案型別,我們稱這種存盤形式為BSON(Binary Serialized Document Format), MongoDB已經在多個站點部署主要場景:
1)網站實時資料處理,它非常適合實時的插入、更新與查詢,并具備網站實時資料存盤所需的復制及高度伸縮性, 2)快取,由于性能很高,它適合作為資訊基礎設施的快取層,在系統重啟之后,由它搭建的持久化快取層可以避免下層的資料源過載, 3)高伸縮性的場景,非常適合由數十或數百臺服務器組成的資料庫,它的路線圖中已經包含對MapReduce引擎的內置支持,
不適用的場景如下:
1)要求高度事務性的系統, 2)傳統的商業智能應用, 3)復雜的跨檔案(表)級聯查詢,
系統介紹
分布式檔案系統(Distributed File System)是指檔案系統管理的物理存盤資源不一定直接連接在本地節點上,而是通過計算機網路與節點相連,分布式檔案系統的設計基于客戶機/服務器模式,一個典型的網路可能包括多個供多用戶訪問的服務器,另外,對等特性允許一些系統扮演客戶機和服務器的雙重角色, HBase是一個分布式的、面向列的開源資料庫,該技術來源于 Fay Chang 所撰寫的Google論文“Bigtable:一個結構化資料的分布式存盤系統, Yonghong Data Mart是基于自有技術研發的一款資料存盤、資料處理的軟體,Yonghong Data Mart的分布式檔案存盤系統 (ZDFS)是在Hadoop HDFS基礎上進行的改造和擴展,將服務器集群內所有節點上存盤的檔案統一管理和存盤,適用場景
MongoDB 的主要目標是在鍵/值存盤方式(提供了高性能和高度伸縮性)和傳統的RDBMS 系統(具有豐富的功能)之間架起一座橋梁,它集兩者的優勢于一身,根據官方網站的描述,Mongo 適用于以下場景,● 網站資料:Mongo 非常適合實時的插入,更新與查詢,并具備網站實時資料存盤所需的復制及高度伸縮性, ● 快取:由于性能很高,Mongo 也適合作為資訊基礎設施的快取層,在系統重啟之后,由Mongo 搭建的持久化快取層可以避免下層的資料源過載, ● 大尺寸、低價值的資料:使用傳統的關系型資料庫存盤一些資料時可能會比較昂貴,在此之前,很多時候程式員往往會選擇傳統的檔案進行存盤, ● 高伸縮性的場景:Mongo 非常適合由數十或數百臺服務器組成的資料庫,Mongo 的路線圖中已經包含對MapReduce 引擎的內置支持, ● 用于物件及JSON 資料的存盤:Mongo 的BSON 資料格式非常適合檔案化格式的存盤及查詢,
不適場景
● 高度事務性的系統:例如,銀行或會計系統,傳統的關系型資料庫目前還是更適用于需要大量原子性復雜事務的應用程式, ● 傳統的商業智能應用:針對特定問題的BI 資料庫會產生高度優化的查詢方式,對于此類應用,資料倉庫可能是更合適的選擇, ● 需要SQL 的問題,
應用案例
下面列舉一些公司MongoDB的實際應用:[7]- Craiglist上使用MongoDB的存檔數十億條記錄,
-
FourSquare,基于位置的社交網站,在Amazon EC2的服務器上使用MongoDB分享資料,
Shutterfly,以互聯網為基礎的社會和個人出版服務,使用MongoDB的各種持久性資料存盤的要求,
bit.ly, 一個基于Web的網址縮短服務,使用MongoDB的存盤自己的資料,
spike.com,一個MTV網路的聯營公司, spike.com使用MongoDB的,
Intuit公司,一個為小企業和個人的軟體和服務提供商,為小型企業使用MongoDB的跟蹤用戶的資料,
sourceforge.net,資源網站查找,創建和發布開源軟體免費,使用MongoDB的后端存盤,
etsy.com ,一個購買和出售手工制作物品網站,使用MongoDB,
紐約時報,領先的在線新聞門戶網站之一,使用MongoDB,
CERN,著名的粒子物理研究所,歐洲核子研究中心大型強子對撞機的資料使用MongoDB,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/12705.html
標籤:NoSQL
下一篇:初識Redis
