非關(guān)系空間數(shù)據(jù)管理技術(shù)關(guān)雪峰v.pptx
《非關(guān)系空間數(shù)據(jù)管理技術(shù)關(guān)雪峰v.pptx》由會(huì)員分享,可在線閱讀,更多相關(guān)《非關(guān)系空間數(shù)據(jù)管理技術(shù)關(guān)雪峰v.pptx(60頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
非關(guān)系空間數(shù)據(jù)管理技術(shù) 關(guān)雪峰武漢大學(xué)測(cè)繪遙感信息工程國家重點(diǎn)實(shí)驗(yàn)室2012年11月28日 地理信息前沿技術(shù)培訓(xùn)班2012年11月27日 30日 武漢 內(nèi)容 1 NoSQL基礎(chǔ)2 MongoDB介紹3 空間數(shù)據(jù)存取實(shí)例4 分布式空間數(shù)據(jù)庫管理系統(tǒng) 大數(shù)據(jù)問題 隨著空間數(shù)據(jù)采集能力的增強(qiáng) 積累的空間數(shù)據(jù)呈爆炸式增長 GIS進(jìn)入了大數(shù)據(jù)時(shí)代 BigData 大數(shù)據(jù)問題 大數(shù)據(jù)的特征3V Volume 海量 Variety 多樣 Velocity 實(shí)時(shí) 海量 數(shù)據(jù)量巨大 對(duì)TB PB數(shù)據(jù)級(jí)的處理 已經(jīng)成為基本配置多樣 處理多樣性的數(shù)據(jù)類型 結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù) 能處理Web數(shù)據(jù) 能處理語音數(shù)據(jù)甚至是圖像 視頻數(shù)據(jù)實(shí)時(shí) 城市部署的大量傳感器構(gòu)建成傳感網(wǎng) 實(shí)時(shí)采集的數(shù)據(jù)需要實(shí)時(shí)的接入 更新 融合 為決策制定服務(wù) 大數(shù)據(jù)問題 大數(shù)據(jù)時(shí)代下的系統(tǒng)需求HighPerformance 高并發(fā)讀寫的需求 高并發(fā) 實(shí)時(shí)動(dòng)態(tài)獲取和更新數(shù)據(jù)HugeStorage 海量數(shù)據(jù)的高效率存儲(chǔ)和訪問的需求 類似SNS網(wǎng)站 海量用戶信息的高效率實(shí)時(shí)存儲(chǔ)和查詢HighScalability HighAvailability 高可擴(kuò)展性和高可用性的需求 需要擁有快速橫向擴(kuò)展能力 提供7 24小時(shí)不間斷服務(wù) 關(guān)系數(shù)據(jù)庫的瓶頸 關(guān)系數(shù)據(jù)庫如何應(yīng)對(duì)大數(shù)據(jù)HighPerformance 高并發(fā)讀寫的需求問題 數(shù)據(jù)庫讀寫壓力巨大硬盤IO無法承受解決方案 Master Slave 主從分離分庫 分表 緩解寫壓力 增強(qiáng)讀庫的可擴(kuò)展性 關(guān)系數(shù)據(jù)庫的瓶頸 關(guān)系數(shù)據(jù)庫如何應(yīng)對(duì)大數(shù)據(jù)HugeStorage 海量數(shù)據(jù)的高效率存儲(chǔ)和訪問的需求問題 存儲(chǔ)記錄數(shù)量有限SQL查詢效率極低解決方案 分庫 分表 緩解數(shù)據(jù)增長壓力 關(guān)系數(shù)據(jù)庫的瓶頸 關(guān)系數(shù)據(jù)庫如何應(yīng)對(duì)大數(shù)據(jù)HighScalability HighAvailability 高可擴(kuò)展性和高可用性的需求問題 橫向擴(kuò)展艱難 無法通過快速增加服務(wù)器節(jié)點(diǎn)實(shí)現(xiàn)系統(tǒng)升級(jí)和維護(hù)造成服務(wù)不可用解決方案 Master Slave 增強(qiáng)讀庫的可擴(kuò)展性MMM Master MasterReplicationManagerforMySQL 關(guān)系數(shù)據(jù)庫的瓶頸 解決方案的問題1 分庫分表缺點(diǎn) 受業(yè)務(wù)規(guī)則影響 需求變動(dòng)導(dǎo)致分庫分表的維護(hù)復(fù)雜系統(tǒng)數(shù)據(jù)訪問層代碼需要修改2 Master Slave缺點(diǎn)Slave實(shí)時(shí)性的保障 對(duì)于實(shí)時(shí)性很高的場(chǎng)合可能需要做一些處理高可用性問題 Master就是那個(gè)致命點(diǎn) 容易產(chǎn)生單點(diǎn)故障3 MMM缺點(diǎn)本身擴(kuò)展性差 一次只能一個(gè)Master可以寫入 只能解決有限數(shù)據(jù)量下的可用性 WhatisNoSQL NoSQL NotOnlySQLNoSQL是NotOnlySQL的縮寫 而不是NotSQL 它不一定遵循傳統(tǒng)數(shù)據(jù)庫的一些基本要求 比如說遵循SQL標(biāo)準(zhǔn) ACID屬性 表結(jié)構(gòu)等等 相比傳統(tǒng)數(shù)據(jù)庫 叫它分布式數(shù)據(jù)管理系統(tǒng)更貼切 數(shù)據(jù)存儲(chǔ)被簡化更靈活 重點(diǎn)被放在了分布式數(shù)據(jù)管理上 NoSQL數(shù)據(jù)庫 非關(guān)系型的 分布式的 開源的 可以線性擴(kuò)展的 Schema自由的據(jù)庫 NoSQL的優(yōu)勢(shì) 易擴(kuò)展NoSQL數(shù)據(jù)庫種類繁多 但是一個(gè)共同的特點(diǎn)都是去掉關(guān)系數(shù)據(jù)庫的關(guān)系型特性 數(shù)據(jù)之間無關(guān)系 這樣就非常容易擴(kuò)展 無形之間 在架構(gòu)的層面上帶來了可擴(kuò)展的能力 靈活的數(shù)據(jù)模型NoSQL無需事先為要存儲(chǔ)的數(shù)據(jù)建立字段 隨時(shí)可以存儲(chǔ)自定義的數(shù)據(jù)格式 而在關(guān)系數(shù)據(jù)庫里 增刪字段是一件非常麻煩的事情 如果是非常大數(shù)據(jù)量的表 增加字段簡直就是一個(gè)噩夢(mèng) NoSQL的優(yōu)勢(shì) 高可用NoSQL在不太影響性能的情況 就可以方便的實(shí)現(xiàn)高可用的架構(gòu) 比如Cassandra HBase模型 通過復(fù)制模型也能實(shí)現(xiàn)高可用 大數(shù)據(jù)量 高性能NoSQL數(shù)據(jù)庫都具有非常高的讀寫性能 尤其在大數(shù)據(jù)量下 同樣表現(xiàn)優(yōu)秀 這得益于它的無關(guān)系性 數(shù)據(jù)庫的結(jié)構(gòu)簡單 CAPTheorem 分布式數(shù)據(jù)系統(tǒng)的CAP原理的三要素 一致性 Consistency 可用性 Availability 分區(qū)容忍性 Partitiontolerance CAP原理 在分布式系統(tǒng)中 這三個(gè)要素最多只能同時(shí)實(shí)現(xiàn)兩點(diǎn) 不可能三者兼顧對(duì)于分布式數(shù)據(jù)系統(tǒng) 分區(qū)容忍性是基本要求對(duì)于大多數(shù)web應(yīng)用 犧牲一致性而換取高可用性 是目前多數(shù)分布式數(shù)據(jù)庫產(chǎn)品的方向 BASE模型 BasicallyAvailable 基本可用 支持分區(qū)失敗Soft state 軟狀態(tài) 狀態(tài)可以有一段時(shí)間不同步Eventuallyconsistent 最終一致 最終數(shù)據(jù)是一致的 NoSQL分類 內(nèi)容 1 NoSQL基礎(chǔ)2 MongoDB介紹3 空間數(shù)據(jù)存取實(shí)例4 分布式空間數(shù)據(jù)庫管理系統(tǒng) MongoDB MongoDB名稱來源于humongousMongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫 由C 語言編寫 旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案 它介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品 是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富 最像關(guān)系數(shù)據(jù)庫的 MongoDB特性 面向文檔存儲(chǔ) json格式的文檔易讀 高效模式自由 支持動(dòng)態(tài)查詢 完全索引 無模式高效的數(shù)據(jù)存儲(chǔ) 效率提高支持復(fù)制和故障恢復(fù)伸縮性強(qiáng) 支持水平的數(shù)據(jù)庫集群 可動(dòng)態(tài)添加額外的服務(wù)器 MongoDB支持語言 MongoDB現(xiàn)有用戶 MongoDB存儲(chǔ)模式 傳統(tǒng)的關(guān)系數(shù)據(jù)庫一般由數(shù)據(jù)庫 database 表 table 記錄 record 三個(gè)層次概念組成 MongoDB同樣也是由數(shù)據(jù)庫 database 集合 collection 文檔對(duì)象 document 三個(gè)層次組成 MongoDB數(shù)據(jù)類型 null布爾 ture false整數(shù) 123浮點(diǎn) 12 3字符串 helloworld 對(duì)象ID 用newObjectId 來申明 日期 用newDate 來申明數(shù)組 apple blanan pear 內(nèi)嵌文檔 username jone age 13 contact home 123 moblie 456 RegExp 正則表達(dá)式 a z id 1234author name BobDavis email b post InthesetroubledtimesIliketo date date 2010 07 1213 23UTC location 121 2322 42 1223222 rating 2 2 comments user jgs32 upVotes 22 downVotes 14 text Greatpoint Iagree user holly davidson upVotes 421 downVotes 22 text Youareamoron MongoDBDocument示例 MongoDB部署架構(gòu) 源安裝 from10gen vi etc yum repos d mongo repo 輸入下面的語句 10gen name 10genRepositorybaseurl http downloads mongodb org distros centos 5 4 os x86 64 gpgcheck 0yuminstallmongo stablemongo stable server代碼安裝 下載wgethttp fastdl mongodb org linux mongodb linux i686 1 8 2 tgz2 解壓tarzxfmongodb linux i686 1 8 2 tgz MongoDB安裝 啟動(dòng)及停止 啟動(dòng)服務(wù)端 mongod dbpath data db port27017登錄Shell命令行 mongohostname 端口 databasename停止服務(wù)端 1 殺掉進(jìn)程2 命令方式useadmin db shutdownServer 基本操作 數(shù)據(jù)庫查看 查看幫助mongod help查看mongod幫助db help 數(shù)據(jù)庫方法幫助db foo help 數(shù)據(jù)集方法幫助Shell查看數(shù)據(jù)庫showdbs 查看collection的狀態(tài)use dbname 切換數(shù)據(jù)庫db cloneDatabase fromhost 克隆數(shù)據(jù)db copyDatabase fromdb todb fromhost 復(fù)制數(shù)據(jù)庫db dropDatabase 銷毀數(shù)據(jù)庫db repairDatabase 基本操作 集合文檔 新建集合db createCollection user 增加文檔db user insert uid 1 username Falcon C age 25 j name mongo db things save j for vari 1 i 10 i db tables save x 4 j i 基本操作 更新刪除 更新Updatedb users update condition newone Upsert 如果本來不存在 就新建一個(gè)并保存使用修改器 set inc unset push pushAll addToSet each db people update name Joe inc n 1 刪除db foo remove query 刪除 基本操作 查找 Find查找varcursor db things find while cursor hasNext print tojson cursor next db user findOne 查詢db user findOne name p author 帶參數(shù)查詢db user find age 0 返回除了age字段外的所有字段db user find userid 16 name 1 返回userid 16的name字段db user find age gt 12 gt大于db user find age lt 12 lt小于db user find age gte 12 大于等于db user find age gte 12 小于等于db user find id ne 0 不等于db user find id gt 5 lte 10 區(qū)間查詢 基本操作 索引 常用索引接口db persons ensureIndex name 1 建立索引db things ensureIndex address city 1 嵌入式索引 也可以是一個(gè)子文檔db things ensureIndex j 1 name 1 組合索引db things ensureIndex firstname 1 lastname 1 unique true 唯一索引db persons getIndexes 查看索引db collection dropIndexes 刪除所有索引db collection dropIndex x 1 y 1 刪除單個(gè)索引db myCollection reIndex 重建索引 基本操作 空間索引 空間索引及查詢db places ensureIndex loc 2d db places find loc near 50 50 limit 10 db places find loc within box 40 40 60 60 db places find loc within center 40 40 10 基本操作 用戶及認(rèn)證 用戶管理及權(quán)限認(rèn)證db addUser theadmin anadminpassword 添加用戶db addUser guest passwordForGuest true 添加只讀用戶db auth theadmin anadminpassword 添加認(rèn)證db system users find 查看用戶db removeUser username 刪除用戶db system users remove user username 同上 MongoDB圖形化管理工具 MongoVUE 一個(gè)windows下的客戶端管理工具M(jìn)ongoHUB Mac下的MongoDB客戶端 ServerDensity 是一個(gè)商業(yè)的監(jiān)控服務(wù)提供商rock mongo PHP寫的一個(gè)web工具 MongoDB導(dǎo)出集合 MongoDB提供了mongoexport工具 可以把一個(gè)collection導(dǎo)出成json格式或csv格式的文件 可以指定導(dǎo)出哪些數(shù)據(jù)項(xiàng) 也可以根據(jù)給定的條件導(dǎo)出數(shù)據(jù) h host u username argusername p password argpassword d db argdatabasetouse c collection argcollectiontouse somecommands f fields 如 fname age q query argqueryfilter asaJSONstring csvexporttocsvinsteadofjson o out argoutputfile mongoexport h dfoo ct1 o data t1 json MongoDB導(dǎo)入集合 mongoimport工具 可以把一個(gè)特定格式文件中的內(nèi)容導(dǎo)入到某張collection中 h host argmongohosttoconnectto s1 s2forsets u username argusername p password argpassword d db argdatabasetouse c collection argcollectiontouse somecommands f fields mongoimport dfoo ct1 data t1 json MongoDB導(dǎo)入導(dǎo)出數(shù)據(jù)庫 導(dǎo)出數(shù)據(jù)庫dbdirectory為備份的文件夾 mongodump hdbhost ddbname odbdirectory導(dǎo)入數(shù)據(jù)庫從文件夾dbdirectory mongorestore hlocalhost depg directoryperdbdbdirectory 復(fù)制Replication 主從模式 支持多主多從 主主 互為主從等模式主配置 mongod port10001 dbpath data m master 從配置 mongod port20001 dbpath data s slave uselocaldb sources insert host localhost 10001 復(fù)制Replication 復(fù)本集 互為主從 mongod pairwithlocalhost 10001 dbpathdata p1 port10002 mongod pairwithlocalhost 10002 dbpathdata p2 port10001 分片部署 分片部署 MongoDB的自動(dòng)分片啟動(dòng)配置服務(wù)器 mongod dbpath data config port10000啟動(dòng)Mongos mongos port20000 configdbconfighostname 10000啟動(dòng)片 mongod port30000 將上面啟動(dòng)的片加入到Mongos mongohostname 20000 admin db runCommand addshard hostname 30000 內(nèi)容 1 NoSQL基礎(chǔ)2 MongoDB介紹3 空間數(shù)據(jù)存取實(shí)例4 分布式空間數(shù)據(jù)庫管理系統(tǒng) ongoDB實(shí)例 配置分片服務(wù)器群 環(huán)境 五臺(tái)服務(wù)器152服務(wù)器 配置服務(wù)器 mongos 安裝mongodb pymongo驅(qū)動(dòng) GDAL 運(yùn)行配置服務(wù)器 運(yùn)行mongos161 164服務(wù)器 片服務(wù)器 數(shù)據(jù)的實(shí)際存儲(chǔ)地方 安裝mongodb 運(yùn)行片服務(wù)器 mongod實(shí)例 configServer ongoDB實(shí)例 配置分片服務(wù)器群 啟動(dòng)配置服務(wù)器 192 168 0 152 mongod dbpath data config port20000啟動(dòng)mongos 192 168 0 152 mongos port30000 configdb192 168 0 152 20000 ongoDB實(shí)例 配置分片服務(wù)器群 啟動(dòng)片服務(wù)器161 162 163 164 mongod dbpath data db port10000 ongoDB實(shí)例 配置分片服務(wù)器群 連接mongos 并加入上面四個(gè)片片服務(wù)器 mongo192 168 0 152 30000 admindb runCommand addshard 192 168 0 161 10000 db runCommand addshard 192 168 0 162 10000 db runCommand addshard 192 168 0 163 10000 db runCommand addshard 192 168 0 164 10000 ongoDB實(shí)例 往MongoDB中導(dǎo)入Shapefile文件 192 168 0 152 配置服務(wù)器與mongos所在的電腦利用MongoDB的python驅(qū)動(dòng) pymongo 去訪問MongoDB的數(shù)據(jù)利用GDAL的API去讀取Shapefile文件 ongoDB實(shí)例 往MongoDB中導(dǎo)入Shapefile文件 第一步 把Shapefile文件導(dǎo)入到MongoDB中 由GDAL獲得Shapefile驅(qū)動(dòng) Shapefile驅(qū)動(dòng)打開Shapefile文件 Shapefile文件得到Shapefile圖層 利用pymongo連接到mongod 連接到某個(gè)數(shù)據(jù)庫 連接到某個(gè)集合 遍歷圖層中的每一個(gè)要素 并為之創(chuàng)建一個(gè)Document 將要素中的空間數(shù)據(jù) 屬性數(shù)據(jù)以key value形式寫入document中 將document插入集合中 ongoDB實(shí)例 往MongoDB中導(dǎo)入Shapefile文件 第二步 從MongoDB中導(dǎo)出Shapefile文件 由GDAL獲得Shapefile驅(qū)動(dòng) Shapefile驅(qū)動(dòng)創(chuàng)建Shapefile文件 Shapefile文件創(chuàng)建Shapefile圖層 利用pymongo連接到mongod 連接到某個(gè)數(shù)據(jù)庫 連接到某個(gè)集合 遍歷集合中的第一個(gè)Document 并由此新建一個(gè)要素 將Document中的每一對(duì)key value當(dāng)作一個(gè)屬性寫入要素中 將創(chuàng)建的要素加入圖層 ongoDB實(shí)例 往MongoDB中導(dǎo)入Shapefile文件 在192 168 0 152上運(yùn)行程序 數(shù)據(jù)最終會(huì)存放到161 162 163 164等四臺(tái)服務(wù)器上 視數(shù)據(jù)量的大小和分片設(shè)置而定 ongoDB實(shí)例 往MongoDB中導(dǎo)入Shapefile文件 查看數(shù)據(jù)被存放在192 168 0 161 內(nèi)容 1 NoSQL基礎(chǔ)2 MongoDB介紹3 空間數(shù)據(jù)存取實(shí)例4 分布式空間數(shù)據(jù)庫管理系統(tǒng) 分布式空間數(shù)據(jù)庫管理系統(tǒng) 系統(tǒng)架構(gòu) 以開源Rockmongo為基礎(chǔ) NewBSDLicense 系統(tǒng)架構(gòu)采用B S模式 開發(fā)語言為PHP5 3 運(yùn)行環(huán)境Linux Windows 分布式空間數(shù)據(jù)庫管理系統(tǒng) 功能模塊 系統(tǒng)管理用戶管理 關(guān)閉和重啟集群節(jié)點(diǎn)服務(wù)器管理節(jié)點(diǎn)服務(wù)器的狀態(tài) 增加和刪除片服務(wù)器 增加和刪除replSet的節(jié)點(diǎn) replSet的狀態(tài) 重新選舉replSet的primary節(jié)點(diǎn)數(shù)據(jù)庫管理數(shù)據(jù)庫的創(chuàng)建和刪除 數(shù)據(jù)庫的分片和數(shù)據(jù)層的分片 數(shù)據(jù)庫primary片服務(wù)器的更改 數(shù)據(jù)層的刪除 數(shù)據(jù)層的更名 數(shù)據(jù)的備份和恢復(fù)WMTS服務(wù)管理服務(wù)管理 服務(wù)更新 分布式空間數(shù)據(jù)庫管理系統(tǒng) 系統(tǒng)管理功能 分布式空間數(shù)據(jù)庫管理系統(tǒng) 節(jié)點(diǎn)服務(wù)器管理 分布式空間數(shù)據(jù)庫管理系統(tǒng) 節(jié)點(diǎn)服務(wù)器管理 分布式空間數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)庫管理 分布式空間數(shù)據(jù)庫管理系統(tǒng) WMTS服務(wù)管理 謝謝guanxuefeng- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 關(guān)系 空間 數(shù)據(jù)管理 技術(shù) 雪峰
鏈接地址:http://m.appdesigncorp.com/p-5432400.html