999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

分布式下MongoDB對激光點云的存儲和處理研究

2017-02-27 10:58:46徐旭東文瑞潔
計算機應用與軟件 2017年2期
關鍵詞:數據庫

徐旭東 郭 瑞 文瑞潔

(北京工業大學計算機學院 北京 100124)

分布式下MongoDB對激光點云的存儲和處理研究

徐旭東 郭 瑞 文瑞潔

(北京工業大學計算機學院 北京 100124)

近年來,激光點云數據的應用急劇增加,如何對其進行高效存儲和快速處理成為當前的一個重要研究方向。點云數據包含著豐富的地理信息,屬于空間數據范疇。傳統的關系型數據庫對海量空間數據的存儲和處理相對薄弱,分布式環境下非關系型數據庫的應用為此提供了一個新的研究視角。Sharding技術是數據庫水平擴展的一種解決方案,在分布式環境下搭建MongoDB的Sharding集群,通過范圍分片和哈希分片對大量激光點云數據進行分布式存儲、空間查詢和MapReduce運算測試,充分體現了分布式下MongoDB在空間數據的存儲和處理方面的巨大優勢。

分布式 MongoDB 激光點云 Sharding集群 范圍分片 哈希分片

0 引 言

隨著信息技術的發展,數字城市的建設已成為一個勢不可擋的趨勢,GIS(Geographic Information System)在各行業的應用越來越廣泛。近幾年,激光點云數據飛速增長,通過機載、車載及地面激光掃描系統所獲取的點云數據已達到了TB,甚至PB級[1],如何對其進行高效安全存儲和快速簡單處理已成為當前的一個重要研究方向。

激光點云數據包含著豐富的地理信息,如三維坐標、顏色、反射強度等,屬于空間數據范疇。傳統關系型數據庫的優勢表現在解決數據的完整性和一致性問題上,但其對空間數據的存儲和處理相對薄弱[2]。而非關系型數據庫能夠在分布式環境下處理大量半結構化和非結構化數據,并在空間數據的存儲和處理方面表現出巨大優勢[3]。

MongoDB作為一種典型的非關系型數據庫,是一個高性能、開源、模式自由的文檔型數據庫,它支持的數據結構是Bson,一種類似Json的二進制存儲格式[4]。MongoDB的查詢語言十分強大,幾乎可以實現類似關系型數據庫單表查詢的所有功能,還對數據提供了完整的索引支持,對空間索引的原生支持使其在處理地理位置信息方面具有顯著優勢[5]。另外,MongoDB還提供了數據冗余、故障轉移、自動分片等功能。所以,本文通過范圍分片和哈希分片的Sharding集群對大量激光點云數據進行分布式存儲、空間查詢和MapReduce運算測試,充分體現了分布式環境下MongoDB在空間數據的存儲和處理方面的巨大優勢。

1 MongoDB的Sharding集群

Sharding可以將數據水平切分到不同的物理節點,突破單節點服務器的I/O能力限制,是數據庫水平擴展的解決方案[6]。MongoDB擁有強大的自動分片功能,可以動態增加刪除節點、平衡負載,并且提供故障轉移功能[7]。MongoDB的Sharding集群主要包括三部分:Shard節點、config節點和mongos節點,每種類型的節點都可以由一個或多個計算機組成。

Shard節點用來存儲實際數據,可以是單個的mongod實例,也可以是一個Replica Set(副本集配置)[8]。config節點中存放元數據,包括集群配置信息以及數據的位置。mongos節點的主要作用是數據路由,本身不保存任何數據和元數據,可以使用客戶端和驅動進行訪問。為了確保Sharding集群具有數據備份、自動故障轉移和恢復能力,本文中的每個Shard節點都是一個Replica Set。Replica Set+Sharding的環境架構如圖1所示。

圖1 Replica Set+Sharding的環境架構

2 Sharding集群的性能測試

由于實驗條件限制,本文借助虛擬機(Vmware Workstation 11 )搭建Sharding集群,三臺服務器(Server A、Server B、Server C)統一配置,內存為1 GB,硬盤為20 GB,操作系統為Ubuntu14.04,數據庫為mongodb-linux-x86_64-2.4.6。使用Shell命令和JavaScript腳本語言分別進行范圍分片和哈希分片對大量激光點云數據的存儲和處理性能測試。

2.1 激光點云數據的分布式存儲

Sharding集群是在集合(Collection)層面進行分布存儲數據的,為將一個集合的數據進行分片,首先需要選擇一個合適的片鍵(Shard Key)[9],然后使用范圍分片或哈希分片將數據切分成多個數據塊(Chunk)并分布在Shard節點上,MongoDB2.4以上的版本支持基于哈希的分片。激光點云數據的格式如下:

{

″_id″ : ObjectId(″56a9dc5676d3f3b90a1cf6f4″),

″X″ : 292730.639,

″Y″ : 180802.526,

″Z″ : 19.655,

″R″ : 36,

″G″ : 74,

″B″ : 145,

″Loc″ : [

178.78388,

55.05072

]

}

_id是MongoDB自動生成的,每個集合都有唯一的_id值,來確保集合里面每個文檔都能被唯一標識。X、Y、Z和R、G、B分別是點云數據的三維坐標和顏色信息,Loc是由精度和緯度組成的數組對象,表示點云數據的地理位置信息。本文分別對1、5、10、50、100 萬條激光點云數據進行分布式存儲,選擇_id字段作為片鍵,設置數據塊大小為1 MB,范圍和哈希分片的數據分布情況如圖2所示。

圖2 范圍和哈希的數據分布情況

由圖2可知,范圍分片導致數據分布不均,在數據量較小的情況下,會出現某個節點不存儲數據的情況。哈希分片可以保證數據在各個節點分布基本均勻,雖然每個節點的數據量不是完全相同,但其差距始終控制在一定范圍內。哈希分片也是基于范圍的,只是將指定的片鍵散列成一個長整型作為最終的片鍵。

2.2 激光點云數據的空間查詢

近幾年移動終端迅速普及,基于地理位置的服務LBS(Location Based Service)應用越來越廣泛,比如查找附近的人或物(餐廳、酒店、電影院、KTV等),如何處理LBS應用中的地理位置信息成為關鍵的技術問題[10]。MongoDB原生地支持空間索引,可直接用于位置距離的計算和查詢,在地理位置信息處理方面具有明顯優勢。

MongoDB的地理空間索引包括2d和2dsphere索引,分別用于查詢平面和球面上的點[11]。本文使用2d索引,分別對1、5、10、50、100 萬條激光點云數據進行空間查詢,通過geoNear函數查詢距離集合中第一個點最近的10個點。范圍和哈希分片的geoNear查詢時間對比情況如圖3所示。

圖3 范圍和哈希的geoNear查詢時間對比

由圖3可知,Sharding集群可以在幾秒內對百萬條激光點云數據進行空間查詢,說明MongoDB在地理位置信息處理方面具有明顯優勢。MongoDB通過Geohash算法將經緯度信息轉換成可排序、可比較的字符串編碼[12],使用常見的B+ Tree索引結構來提高空間查詢效率。空間查詢效率與激光點云數據在各個節點的分布情況密切相關。哈希分片中數據分布比較均勻,隨著數據量的增長,其查詢時間呈穩定增長趨勢,范圍分片中數據分布不均,導致10 萬條數據查詢時間比5 萬條多的情況發生。在數據量較大的情況下,范圍分片的查詢效率比哈希分片高。

2.3 激光點云數據的MapReduce運算

MapReduce是一種便于分布式處理的計算模型,將輸入的大量數據分解后,通過多臺服務器進行并行運算,從而提高數據處理的效率[13]。MongoDB提供的MapReduce框架是一種強大的數據聚合工具,相當于關系型數據庫中的Group By,需要實現Map和Reduce函數。本文分別對1、5、10、50、100 萬條激光點云數據進行MapReduce運算,統計R屬性在區間[0, 255]中的單一整數對應的數據量。JavaScript腳本語言如下:

db.runCommand(

{mapreduce: ″p10000″,

map: function () { emit(this.R, 1); },

reduce: function (key, values) { return Array.sum(values); },

out: ″mrp10000″ ,

sort:{R:1}

}

)

參數mapreduce和out的值分別代表要操作的目標集合和統計結果存放的集合。map函數調用emit(key, value)來遍歷集合中的所有記錄,將輸出的key與value傳遞給reduce函數進行處理。參數sort表示對目標記錄進行排序,是否進行排序對運算效率有一定的影響。哈希分片中對激光點云數據的MapReduce運算時間對比如圖4所示。

圖4 是否排序的MapReduce運算時間對比

由圖4可知,Sharding集群在十幾秒內實現了對百萬條激光點云數據的MapReduce運算,說明分布式環境下MongoDB可以對大量激光點云數據進行高效處理。對點云數據進行排序可以在一定程度上提高MapReduce的運算效率,優化數據分析的性能。如果處理未排序的輸入數據,MR引擎幾乎沒有機會在RAM中進行reduce運算,它只能通過一個臨時的集合將數據寫回磁盤,然后順序讀取并進行reduce運算。

3 結 語

激光點云數據包含著豐富的地理信息,屬于空間數據范疇。分布式環境下非關系型數據庫的應用為海量空間數據的高效存儲和快速處理提供了解決方案。本文通過范圍分片和哈希分片的Sharding集群對大量激光點云數據進行分布式存儲、空間查詢和MapReduce運算測試,充分體現了分布式環境下MongoDB在空間數據的存儲和處理方面的巨大優勢。下一步工作將通過機器學習算法,結合MongoDB的高效存儲優勢和Hadoop強大的并行計算能力來挖掘海量激光點云數據的實用價值和社會價值。

[1] 張蕊,李廣云,王力,等.基于HDFS的海量激光點云數據分塊存儲方法研究[J].測繪通報,2014(3):21-24.

[2] 陳錦偉.基于MySQL的空間數據庫關鍵技術研究[D].江蘇:南京郵電大學,2013.

[3] 盧冬海,何先波.淺析NoSQL數據庫[J].中國西部科技,2011,10(2):14-16.

[4] 王光磊.MongoDB數據庫的應用研究和方案優化[J].中國科技信息,2011(20):93-96.

[5] 張恩,張廣弟,蘭磊.基于MongoDB的海量空間數據存儲和并行[J].地理空間信息,2014,12(1):46-49.

[6] 馮大輝.開源數據庫Sharding技術[J].程序員,2008(7):92-93.

[7] 周煒.云環境下提升MongoDB自動分片性能研究[J].科技創新導報,2013(29):22-23.

[8] 梁海.MongoDB數據庫中Sharding技術應用研究[J].計算機技術與發展,2014,24(7):60-67.

[9] 姚林,張永庫.NoSQL的分布式存儲與擴展解決方法[J].計算機工程,2012,38(6):40-42.

[10] 莊逸眾.基于LBS移動服務框架設計與實現[D].北京:北京郵電大學,2013.

[11] 張廣弟.分布式環境下海量空間數據的存儲和并行查詢技術研究[D].江西:江西理工大學,2012.

[12] 金安,程承旗,宋樹華,等.基于Geohash的面數據區域查詢[J].地理與地理信息科學,2013,29(5):31-35.

[13] 李成華,張新訪,金海,等.MapReduce:新型的分布式并行計算編程模型[J].計算機工程與科學,2011,33(3):129-135.

RESEARCH ON STORAGE AND PROCESSING OF MONGODB FOR LASER POINT CLOUD UNDER DISTRIBUTED ENVIRONMENT

Xu Xudong Guo Rui Wen Ruijie

(CollegeofComputerScience,BeijingUniversityofTechnology,Beijing100124,China)

In recent years, the application of laser point cloud data has increased drastically. How to efficiently store and fast process the data becomes an important research direction at present. Point cloud data contains a wealth of geographic information, belonging to the spatial data category. Since traditional relational databases are relatively weak in storage and processing of massive spatial data, the application of non-relational databases provides a new perspective of study. Sharding technology is a solution for database level extension. In this paper, Sharding cluster for MongoDB is established under distributed environment, while distributed storage, spatial query and MapReduce operation test for numerous laser point cloud data will be implemented through range-based sharding and Hash-based sharding. The results completely reflect huge advantages of MongoDB under distributed environment in storage and processing for spatial data.

Distribution MongoDB Laser point cloud Sharding cluster Range-based sharding Hash-based sharding

2016-02-20。國家自然科學基金項目(41371434)。徐旭東,副教授,主研領域:數據挖掘,大數據的組織和處理。郭瑞,碩士生。文瑞潔,碩士生。

TP3

A

10.3969/j.issn.1000-386x.2017.02.012

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 蜜桃臀无码内射一区二区三区 | 免费高清毛片| 国产亚洲视频播放9000| 国产v精品成人免费视频71pao | 亚洲日韩欧美在线观看| 国产中文一区二区苍井空| 国产精品午夜电影| 久久综合色88| 国产91高跟丝袜| 国产激情影院| 在线观看国产小视频| 99久久亚洲精品影院| 啪啪啪亚洲无码| 欧美成人日韩| 91在线激情在线观看| 欧洲成人免费视频| 国产精品大白天新婚身材| 永久免费精品视频| 九九九精品成人免费视频7| 国产青榴视频| 伊人久久大香线蕉成人综合网| 伊人婷婷色香五月综合缴缴情| 国产成人一区二区| 欧美综合成人| 欧美日韩资源| 国产福利微拍精品一区二区| 东京热av无码电影一区二区| 免费a在线观看播放| 天堂成人av| 91福利国产成人精品导航| 99re这里只有国产中文精品国产精品| 2022国产91精品久久久久久| 国产精品人莉莉成在线播放| 99视频国产精品| 在线观看国产黄色| 久久精品人人做人人综合试看| 欧美人在线一区二区三区| 亚洲无码精品在线播放| 国产一线在线| 亚洲AV无码一区二区三区牲色| 嫩草在线视频| 欧美精品二区| 国产传媒一区二区三区四区五区| 99偷拍视频精品一区二区| 亚洲第一成年人网站| 国产性生大片免费观看性欧美| 亚洲成人在线免费观看| 亚洲日韩高清在线亚洲专区| 国产精品永久在线| 国产成人综合亚洲网址| 国产成人禁片在线观看| 91破解版在线亚洲| 老司机aⅴ在线精品导航| 免费A∨中文乱码专区| 亚洲第一中文字幕| 亚洲AV永久无码精品古装片| 免费高清毛片| 亚洲乱伦视频| 国产乱子伦无码精品小说| 91www在线观看| 国产毛片高清一级国语| 中文字幕永久视频| 国产午夜精品一区二区三区软件| 国产欧美性爱网| 婷婷中文在线| 一级毛片在线播放免费观看| www欧美在线观看| 一级毛片中文字幕| 97视频免费在线观看| 国产真实乱了在线播放| 亚洲综合色区在线播放2019| 欧美综合中文字幕久久| 午夜精品福利影院| …亚洲 欧洲 另类 春色| 国产三级国产精品国产普男人 | 中文字幕在线看视频一区二区三区| 亚洲,国产,日韩,综合一区 | 亚洲精品手机在线| 国产成人乱无码视频| 99免费在线观看视频| 亚洲国产精品日韩欧美一区| a级毛片免费看|