NoSQL數(shù)據(jù)庫應(yīng)用與實(shí)踐 課件 第9、10章 權(quán)限機(jī)制;MapReduce和GridFS_第1頁
NoSQL數(shù)據(jù)庫應(yīng)用與實(shí)踐 課件 第9、10章 權(quán)限機(jī)制;MapReduce和GridFS_第2頁
NoSQL數(shù)據(jù)庫應(yīng)用與實(shí)踐 課件 第9、10章 權(quán)限機(jī)制;MapReduce和GridFS_第3頁
NoSQL數(shù)據(jù)庫應(yīng)用與實(shí)踐 課件 第9、10章 權(quán)限機(jī)制;MapReduce和GridFS_第4頁
NoSQL數(shù)據(jù)庫應(yīng)用與實(shí)踐 課件 第9、10章 權(quán)限機(jī)制;MapReduce和GridFS_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第九章權(quán)限機(jī)制單擊此處添加副標(biāo)題演講者:創(chuàng)建賬號(hào)01開啟驗(yàn)證02備份還原04項(xiàng)目實(shí)踐05通過超級管理員賬號(hào)登錄03目錄01創(chuàng)建賬號(hào)創(chuàng)建賬號(hào)在MongoDB中,可以創(chuàng)建賬號(hào)(用戶)并為其分配角色和權(quán)限,以控制對數(shù)據(jù)庫的訪問。這通常是通過MongoDB的內(nèi)置角色和權(quán)限系統(tǒng)來實(shí)現(xiàn)的。以下是在MongoDB中創(chuàng)建賬號(hào)的語法:db.createUser({"user":"賬號(hào)","pwd":"密碼","roles":[{role:"角色",db:"所屬數(shù)據(jù)庫"}]})role角色參數(shù)種類用戶超級用戶角色root數(shù)據(jù)庫用戶角色read、readWrite數(shù)據(jù)庫管理角色dbAdmin、userAdmin集群管理角色clusterAdmin、clusterManager、clusterMonitor、hostManager備份恢復(fù)角色backup、restore所有數(shù)據(jù)庫角色readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase02開啟驗(yàn)證必須使用admin數(shù)據(jù)庫,才能添加超級管理員01創(chuàng)建超級用戶,賬號(hào):admin,密碼:admin88802db.createUser({'user':'admin','pwd':'admin888','roles':[{role:'root',db:'admin'}]})03添加超級管理員賬號(hào)當(dāng)中已經(jīng)有了剛才創(chuàng)建的admin,使用exit命令退出登錄,然后以管理員模式打開終端輸入如下命令卸載服務(wù)。01注意:要切換到MongoDB的服務(wù)bin目錄下再卸載。02卸載命令:mongod--remove03退出并卸載服務(wù)STEP2STEP1卸載完成之后,重新安裝服務(wù),語法:mongod--install--dbpath數(shù)據(jù)目錄--logpath日志目錄\日志名稱--auth安裝需要身份驗(yàn)證的MongoDB服務(wù)03通過超級管理員賬號(hào)登錄010204mongosh此時(shí)提示需要驗(yàn)證身份打開MongoDB的服務(wù),命令如下:啟動(dòng)服務(wù)01語法:db.auth(用戶名、密碼)方法一:直接使用賬號(hào)密碼登錄語法:MongoDB服務(wù)器IP地址:端口/數(shù)據(jù)庫-u用戶名-p密碼方法二:先選擇數(shù)據(jù)庫,再驗(yàn)證用戶名和密碼020304登錄MongoDB添加用戶user1和user2并設(shè)置權(quán)限,user1只能讀取數(shù)據(jù)庫shop,user2可以讀取并寫入數(shù)據(jù)庫shop。010102數(shù)據(jù)和用戶都準(zhǔn)備好了,驗(yàn)證是否可以讀寫。先退出當(dāng)前用戶,使用新創(chuàng)建的用戶登錄。02創(chuàng)建不同用戶實(shí)現(xiàn)讀寫04備份還原下載備份還原工具M(jìn)ongoDB數(shù)據(jù)庫工具是用于處理MongoDB部署的命令行實(shí)用程序的集合。這些工具獨(dú)立于MongoDBServer計(jì)劃發(fā)布,需要單獨(dú)下載。在MongoDB官網(wǎng)中找到MongoDBDatabaseTools,里面就是我們需要的工具。下載后得到壓縮包,解壓并將其中的所有exe文件拷貝到MongoDB安裝目錄下的bin目錄中。01語法如右:02mongodump-h-port-u-p-d-o03參數(shù)說明:04h:服務(wù)器ip地址(一般不寫,默認(rèn)本機(jī))。05port:端口(一般不寫,默認(rèn)27017)。06u:賬號(hào)。07p:密碼。08d:數(shù)據(jù)庫(不寫則表示導(dǎo)出全部)。09o:備份到指定目錄下。備份mongodump還原數(shù)據(jù)mongorestore還原數(shù)據(jù)使用MongoDB的mongorestore工具將之前通過mongodump創(chuàng)建的備份文件恢復(fù)到MongoDB數(shù)據(jù)庫中。語法如下:mongostore-h-port-u-p-d--drop備份數(shù)據(jù)目錄參數(shù)說明:h:服務(wù)器IP地址(一般不寫,默認(rèn)是本機(jī))。port:端口(一般不寫,默認(rèn)是27017)。u:賬號(hào)。p:密碼。d:數(shù)據(jù)庫(不寫則表示還原全部數(shù)據(jù))。05項(xiàng)目實(shí)踐:使用stu賬戶備份還原數(shù)據(jù)庫添加管理員賬號(hào)stu,密碼stu666。退出卸載服務(wù)。安裝需要身份驗(yàn)證服務(wù)。登錄MongoDB服務(wù)。備份還原數(shù)據(jù)庫。要求開啟權(quán)限驗(yàn)證01.數(shù)據(jù)庫備份01.數(shù)據(jù)庫還原01.小結(jié)進(jìn)入數(shù)據(jù)庫刪除數(shù)據(jù)庫shop,test1退出數(shù)據(jù)庫,使用admin賬戶恢復(fù)所有數(shù)據(jù)庫重新登錄,查看數(shù)據(jù)庫還原指定數(shù)據(jù)庫shop重新登錄,查看指定數(shù)據(jù)庫使用前面章節(jié)中創(chuàng)建的賬號(hào)和數(shù)據(jù)庫,完成下面操作:020103050604練習(xí)謝謝!第十章MapReduce和GridFS單擊此處添加副標(biāo)題演講者:MapReduce01文件存儲(chǔ)02項(xiàng)目實(shí)踐03目錄01MapReduceMapReduceMongoDB的MapReuce的核心思想是“分而治之”。所謂"分面治之”就是把一個(gè)復(fù)雜的問題,按照一定的“分解”方法分為等價(jià)的規(guī)模較小的若干部分,然后逐個(gè)解決,分別找出各部分的結(jié)果,把各部分的結(jié)果組成整個(gè)問題的結(jié)果。這種思想來源于日常生活與工作時(shí)的經(jīng)驗(yàn),同樣也完全適合技術(shù)領(lǐng)域。在MongoDB中,MapReduce功能基于JavaScript實(shí)現(xiàn),允許用戶自定義Map和Reduce函數(shù),對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分布式計(jì)算。Map階段將輸入數(shù)據(jù)切分成若干份,每份由一個(gè)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格式定義其中各個(gè)參數(shù)說明如下:mapReduce:要操作的目標(biāo)集合。map函數(shù):映射函數(shù)(生成鍵值對序列,作為reduce函數(shù)參數(shù))。reduce函數(shù):統(tǒng)計(jì)函數(shù)。query:目標(biāo)記錄過濾。sort:目標(biāo)記錄排序。limit:限制目標(biāo)記錄數(shù)量。out:統(tǒng)計(jì)結(jié)果存放集合(不指定則使用臨時(shí)集合,在客戶端斷開后自動(dòng)刪除)。keeptemp:是否保留臨時(shí)集合。finalize:最終處理函數(shù)(對reduce返回結(jié)果進(jìn)行最終整理后存入結(jié)果集合)。scope:向map、reduce、finalize導(dǎo)入外部變量。verbose:顯示詳細(xì)的時(shí)間統(tǒng)計(jì)信息。02文件存儲(chǔ)存儲(chǔ)查找路徑優(yōu)點(diǎn):節(jié)省數(shù)據(jù)庫的存儲(chǔ)空間。將文件放在本地路徑(網(wǎng)絡(luò)路徑)下,然后數(shù)據(jù)庫中存儲(chǔ)該文件的查找路徑,這種存儲(chǔ)方式有以下特點(diǎn)。缺點(diǎn):當(dāng)數(shù)據(jù)或者文件位置發(fā)生變化時(shí)文件及丟失。存儲(chǔ)01存儲(chǔ)文件本身03優(yōu)點(diǎn):數(shù)據(jù)庫和文件綁定,數(shù)據(jù)庫在文件即在。02數(shù)據(jù)庫支持二進(jìn)制格式,將文件轉(zhuǎn)化為二進(jìn)制,將文件本身存入數(shù)據(jù)庫中,這樣的存儲(chǔ)方式有以下特點(diǎn)。04缺點(diǎn):占用數(shù)據(jù)庫空間大,存儲(chǔ)效率低。存儲(chǔ)GridFS的存儲(chǔ)原理GridFS使用chunks集合來存儲(chǔ)文件的數(shù)據(jù)塊,每個(gè)塊默認(rèn)大小為256KB。files集合則用于存儲(chǔ)文件的元數(shù)據(jù),包括文件名、文件大小、上傳時(shí)間等信息。通過這兩個(gè)集合,GridFS能夠高效地存儲(chǔ)和檢索大文件。。GridFS的優(yōu)點(diǎn)在于它能夠?qū)⒋笪募鎯?chǔ)到MongoDB中,并利用MongoDB的分布式特性進(jìn)行高效的存儲(chǔ)和檢索。同時(shí),由于GridFS使用MongoDB的文檔模型,因此可以方便地對文件進(jìn)行查詢和管理。GridFSGridFSfiles和chunksfiles集合包含元數(shù)據(jù)對象(如文件的名稱、上傳的時(shí)間等),chunks集合包含其他一些相關(guān)信息的二進(jìn)制塊,組成如圖所示。03項(xiàng)目實(shí)踐:上傳下載pdf文件上傳素材中l(wèi)ogo.pdf文件到pdf_gridfs數(shù)據(jù)庫中。查看上傳的文件下載logo.pdf文件到本地010203要求MapReduce實(shí)現(xiàn)原理1GridFS存儲(chǔ)文件2小結(jié)練習(xí)使用MapReduce統(tǒng)計(jì)出每個(gè)學(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

溫馨提示

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

評論

0/150

提交評論