NoSQL數(shù)據(jù)庫應(yīng)用與實踐 課件 第十章 MapReduce和GridFS_第1頁
NoSQL數(shù)據(jù)庫應(yīng)用與實踐 課件 第十章 MapReduce和GridFS_第2頁
NoSQL數(shù)據(jù)庫應(yīng)用與實踐 課件 第十章 MapReduce和GridFS_第3頁
NoSQL數(shù)據(jù)庫應(yīng)用與實踐 課件 第十章 MapReduce和GridFS_第4頁
NoSQL數(shù)據(jù)庫應(yīng)用與實踐 課件 第十章 MapReduce和GridFS_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第十章MapReduce和GridFS單擊此處添加副標(biāo)題演講者:MapReduce01文件存儲02項目實踐03目錄01MapReduceMapReduceMongoDB的MapReuce的核心思想是“分而治之”。所謂"分面治之”就是把一個復(fù)雜的問題,按照一定的“分解”方法分為等價的規(guī)模較小的若干部分,然后逐個解決,分別找出各部分的結(jié)果,把各部分的結(jié)果組成整個問題的結(jié)果。這種思想來源于日常生活與工作時的經(jīng)驗,同樣也完全適合技術(shù)領(lǐng)域。在MongoDB中,MapReduce功能基于JavaScript實現(xiàn),允許用戶自定義Map和Reduce函數(shù),對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分布式計算。Map階段將輸入數(shù)據(jù)切分成若干份,每份由一個Mapper處理,輸出中間結(jié)果;Reduce階段則負(fù)責(zé)對中間結(jié)果進(jìn)行聚合處理,輸出最終結(jié)果。MapReduce格式定義db.collection.mapReduce(

function(){emit(key,value);},//map函數(shù)

function(key,values){returnreduceFunction},//reduce函數(shù)

{

out:collection,

query:document,

sort:document,

limit:number

})MapReduce格式定義其中各個參數(shù)說明如下:mapReduce:要操作的目標(biāo)集合。map函數(shù):映射函數(shù)(生成鍵值對序列,作為reduce函數(shù)參數(shù))。reduce函數(shù):統(tǒng)計函數(shù)。query:目標(biāo)記錄過濾。sort:目標(biāo)記錄排序。limit:限制目標(biāo)記錄數(shù)量。out:統(tǒng)計結(jié)果存放集合(不指定則使用臨時集合,在客戶端斷開后自動刪除)。keeptemp:是否保留臨時集合。finalize:最終處理函數(shù)(對reduce返回結(jié)果進(jìn)行最終整理后存入結(jié)果集合)。scope:向map、reduce、finalize導(dǎo)入外部變量。verbose:顯示詳細(xì)的時間統(tǒng)計信息。02文件存儲存儲查找路徑優(yōu)點:節(jié)省數(shù)據(jù)庫的存儲空間。將文件放在本地路徑(網(wǎng)絡(luò)路徑)下,然后數(shù)據(jù)庫中存儲該文件的查找路徑,這種存儲方式有以下特點。缺點:當(dāng)數(shù)據(jù)或者文件位置發(fā)生變化時文件及丟失。存儲01存儲文件本身03優(yōu)點:數(shù)據(jù)庫和文件綁定,數(shù)據(jù)庫在文件即在。02數(shù)據(jù)庫支持二進(jìn)制格式,將文件轉(zhuǎn)化為二進(jìn)制,將文件本身存入數(shù)據(jù)庫中,這樣的存儲方式有以下特點。04缺點:占用數(shù)據(jù)庫空間大,存儲效率低。存儲GridFS的存儲原理GridFS使用chunks集合來存儲文件的數(shù)據(jù)塊,每個塊默認(rèn)大小為256KB。files集合則用于存儲文件的元數(shù)據(jù),包括文件名、文件大小、上傳時間等信息。通過這兩個集合,GridFS能夠高效地存儲和檢索大文件。。GridFS的優(yōu)點在于它能夠?qū)⒋笪募鎯Φ組ongoDB中,并利用MongoDB的分布式特性進(jìn)行高效的存儲和檢索。同時,由于GridFS使用MongoDB的文檔模型,因此可以方便地對文件進(jìn)行查詢和管理。GridFSGridFSfiles和chunksfiles集合包含元數(shù)據(jù)對象(如文件的名稱、上傳的時間等),chunks集合包含其他一些相關(guān)信息的二進(jìn)制塊,組成如圖所示。03項目實踐:上傳下載pdf文件上傳素材中l(wèi)ogo.pdf文件到pdf_gridfs數(shù)據(jù)庫中。查看上傳的文件下載logo.pdf文件到本地010203要求MapReduce實現(xiàn)原理1GridFS存儲文件2小結(jié)練習(xí)使用MapReduce統(tǒng)計出每個學(xué)生level為A的成績的總和。準(zhǔn)備數(shù)據(jù):students>usestuswitchedtodbstustu>db.students.insertOne({name:"張三",course:"英語",score:70,level:"C"})stu>db.students.insertOne({name:"張三",course:"數(shù)學(xué)",score:95,level:"A"})stu>db.students.insertOne({name:"張三",course:"語文",score:91,level:"A"})stu>db.students.insertOne({name:"張三",course:"歷史",score:98,level:"A"})stu>db.students.insertOne({name:"李四",course:"數(shù)學(xué)",score:88,level:"B"})stu>db.students.insertOne({name:"李四",

溫馨提示

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

最新文檔

評論

0/150

提交評論