詳解MongoDB之特點、原理、使用場景、應(yīng)用案例

發(fā)布時間:2024-07-10
推薦:《mongodb視頻教程》
簡介
mongodb是一個基于分布式文件存儲的數(shù)據(jù)庫。由c 語言編寫。旨在為web應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。
mongodb是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。
特點
它的特點是高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。主要功能特性有:
*面向集合存儲,易存儲對象類型的數(shù)據(jù)。
*模式自由。
*支持動態(tài)查詢。
*支持完全索引,包含內(nèi)部對象。
*支持查詢。
*支持復(fù)制和故障恢復(fù)。
*使用高效的二進制數(shù)據(jù)存儲,包括大型對象(如視頻等)。
*自動處理碎片,以支持云計算層次的擴展性。
*支持ruby,python,java,c ,php,c#等多種語言。
*文件存儲格式為bson(一種json的擴展)。
*可通過網(wǎng)絡(luò)訪問。
使用原理
所謂“面向集合”(collection-oriented),意思是數(shù)據(jù)被分組存儲在數(shù)據(jù)集中,被稱為一個集合(collection)。每個集合在數(shù)據(jù)庫中都有一個唯一的標(biāo)識名,并且可以包含無限數(shù)目的文檔。集合的概念類似關(guān)系型數(shù)據(jù)庫(rdbms)里的表(table),不同的是它不需要定義任何模式(schema)。nytro megaraid技術(shù)中的閃存高速緩存算法,能夠快速識別數(shù)據(jù)庫內(nèi)大數(shù)據(jù)集中的熱數(shù)據(jù),提供一致的性能改進。
模式自由(schema-free),意味著對于存儲在mongodb數(shù)據(jù)庫中的文件,我們不需要知道它的任何結(jié)構(gòu)定義。如果需要的話,你完全可以把不同結(jié)構(gòu)的文件存儲在同一個數(shù)據(jù)庫里。
存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標(biāo)識一個文檔,為字符串類型,而值則可以是各種復(fù)雜的文件類型。我們稱這種存儲形式為bson(binary serialized document format)。
mongodb已經(jīng)在多個站點部署
主要場景:
1)網(wǎng)站實時數(shù)據(jù)處理。它非常適合實時的插入、更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復(fù)制及高度伸縮性。
2)緩存。由于性能很高,它適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由它搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。
3)高伸縮性的場景。非常適合由數(shù)十或數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫,它的路線圖中已經(jīng)包含對mapreduce引擎的內(nèi)置支持。
不適用的場景如下:
1)要求高度事務(wù)性的系統(tǒng)。
2)傳統(tǒng)的商業(yè)智能應(yīng)用。
3)復(fù)雜的跨文檔(表)級聯(lián)查詢。
系統(tǒng)介紹
分布式文件系統(tǒng)(distributed file system)是指文件系統(tǒng)管理的物理存儲資源不一定直接連接在本地節(jié)點上,而是通過計算機網(wǎng)絡(luò)與節(jié)點相連。分布式文件系統(tǒng)的設(shè)計基于客戶機/服務(wù)器模式。一個典型的網(wǎng)絡(luò)可能包括多個供多用戶訪問的服務(wù)器。另外,對等特性允許一些系統(tǒng)扮演客戶機和服務(wù)器的雙重角色。
hbase是一個分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于 fay chang 所撰寫的google論文“bigtable:一個結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)。
yonghong data mart是基于自有技術(shù)研發(fā)的一款數(shù)據(jù)存儲、數(shù)據(jù)處理的軟件。yonghong data mart的分布式文件存儲系統(tǒng) (zdfs)是在hadoop hdfs基礎(chǔ)上進行的改造和擴展,將服務(wù)器集群內(nèi)所有節(jié)點上存儲的文件統(tǒng)一管理和存儲。
適用場景
mongodb 的主要目標(biāo)是在鍵/值存儲方式(提供了高性能和高度伸縮性)和傳統(tǒng)的rdbms 系統(tǒng)(具有豐富的功能)之間架起一座橋梁,它集兩者的優(yōu)勢于一身。根據(jù)官方網(wǎng)站的描述,mongo 適用于以下場景。
● 網(wǎng)站數(shù)據(jù):mongo 非常適合實時的插入,更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復(fù)制及高度伸縮性。
● 緩存:由于性能很高,mongo 也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由mongo 搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。
● 大尺寸、低價值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統(tǒng)的文件進行存儲。
● 高伸縮性的場景:mongo 非常適合由數(shù)十或數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫,mongo 的路線圖中已經(jīng)包含對mapreduce 引擎的內(nèi)置支持。
● 用于對象及json 數(shù)據(jù)的存儲:mongo 的bson 數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。
不適場景
● 高度事務(wù)性的系統(tǒng):例如,銀行或會計系統(tǒng)。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫目前還是更適用于需要大量原子性復(fù)雜事務(wù)的應(yīng)用程序。
● 傳統(tǒng)的商業(yè)智能應(yīng)用:針對特定問題的bi 數(shù)據(jù)庫會產(chǎn)生高度優(yōu)化的查詢方式。對于此類應(yīng)用,數(shù)據(jù)倉庫可能是更合適的選擇。
● 需要sql 的問題。
應(yīng)用案例
下面列舉一些公司mongodb的實際應(yīng)用:
craiglist上使用mongodb的存檔數(shù)十億條記錄。
foursquare,基于位置的社交網(wǎng)站,在amazon ec2的服務(wù)器上使用mongodb分享數(shù)據(jù)。
shutterfly,以互聯(lián)網(wǎng)為基礎(chǔ)的社會和個人出版服務(wù),使用mongodb的各種持久性數(shù)據(jù)存儲的要求。
bit.ly, 一個基于web的網(wǎng)址縮短服務(wù),使用mongodb的存儲自己的數(shù)據(jù)。
spike.com,一個mtv網(wǎng)絡(luò)的聯(lián)營公司, spike.com使用mongodb的。
intuit公司,一個為小企業(yè)和個人的軟件和服務(wù)提供商,為小型企業(yè)使用mongodb的跟蹤用戶的數(shù)據(jù)。
sourceforge.net,資源網(wǎng)站查找,創(chuàng)建和發(fā)布開源軟件免費,使用mongodb的后端存儲。
etsy.com ,一個購買和出售手工制作物品網(wǎng)站,使用mongodb。
紐約時報,領(lǐng)先的在線新聞門戶網(wǎng)站之一,使用mongodb。
cern,著名的粒子物理研究所,歐洲核子研究中心大型強子對撞機的數(shù)據(jù)使用mongodb。
上一個:6ES7214-1HG40-0XB0代理
下一個:取樣冷卻器冷卻面積的計算

超凈工作臺成為*的實驗室設(shè)備
油煙機、純水機等入選*第三批綠色設(shè)計產(chǎn)品
華為手機怎樣把照片傳到u盤里,怎樣把華為手機的照片導(dǎo)入u盤
車載藍牙連不上怎么辦(車載藍牙連不上去)
死亡檔期是什么時候
win10 c盤擴展卷是灰色的(windows c盤擴展卷灰色)
塑料閥門的分類和各種材質(zhì)的性能
最新溫室氣體公報發(fā)布 大氣本底站助力環(huán)境監(jiān)測
集料堅固性試驗儀試驗步驟
澳洲阿德萊德海運(阿德萊德海運到澳洲)
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos