高性能分佈式空間文件引擎

在超圖發佈的SuperMap GIS 10i 版本中,大數據GIS 技術又有新進展,今天我們重點介紹分佈式空間文件引擎(DSF,Distributed Spatial File),它更加適合全量空間數據的高性能分佈式計算,能夠進一步強化海量經典空間數據的分佈式存儲和管理能力。

DSF的設計目的

空間數據文件作爲空間數據存儲的載體之一,相比空間數據庫具有佔用資源少,應用便捷和利於歸檔的優勢,在GIS行業應用中一直廣泛使用,並不斷地優化和升級。

最初,空間數據文件是單機存儲,但隨着數據量的增大,單節點存儲已經不能很好地滿足分析時的數據讀取的性能要求。對此,我們引入分佈式存儲,將Shapefile,CSV, GeoJson等文件直接存入HDFS分佈式文件系統中,並接入Spark分佈式計算能力,有效提升了空間大數據的存取和分析性能,但是對於海量經典空間數據的分析性能的提升並不理想。

由於經典空間數據的分析具有很強的空間位置相關性,將空間數據文件直接存入HDFS的簡單分佈式存儲方案無法解決這種海量數據分析慢的問題,爲此, 我們通過基於空間格網建立空間索引的方式,有針對性地優化讀寫存儲在HDFS上的經典空間數據的性能,使得接入Spark分佈式計算的大體量經典空間數據分析性能顯著提升。

“HDFS+空間索引”的空間數據文件存儲模式雖然可以滿足空間分析性能要求,但它不支持對存入HDFS中的空間數據進行追加和更新,也不支持查看數據、查詢數據以及數據製圖等數據管理操作。因此,它不利於大規模空間數據貫穿整個GIS的應用流程,迫切地需要新的技術予以支撐。

圖 1 空間數據文件管理髮展歷程

超圖創造性地研發了分佈式空間文件引擎(Distributed Spatial File,以下簡稱DSF),能夠管理矢量、柵格和影像數據,兼備大體量空間數據的高性能分佈式存取、空間查詢、統計、分佈式分析、空間可視化及數據管理能力,相比“HDFS+CVS/GeoJSON文件”與“HDFS+空間索引”,DSF更勝一籌。

DSF的技術支撐

DSF的誕生並非重新發明輪子,它依舊依託先進和較爲成熟的通用IT大數據技術。

DSF仍將HDFS作爲分佈式存儲系統,HDFS被設計的初衷就是適合運行在通用硬件上的分佈式文件系統,具有高度容錯性,適合部署在廉價機器上,並能提供高吞吐量的數據訪問,也能和Spark分佈式計算進行理想結合,因此,HDFS無疑是大規模數據集存儲載體的首選。

敲定了文件存儲系統,下一步的問題就是如何存空間數據,才能克服“HDFS+空間索引”舊模式的短板。DSF引入了Parguet文件格式作爲矢量數據存儲方案,它是一種面向分析的、通用的列式存儲格式,兼容Spark數據處理框架。使用Parquet存儲數據能夠壓縮數據且不失真,能夠減少IO吞吐量,具有高效的查詢能力,更重要的是Spark能夠高效讀取Parquet中的數據到RDD中,保證分析時的數據讀取效率。與此同時,引入Parquet還能實現大規模矢量數據的單機訪問,使得可視化問題迎刃而解。

爲使DSF結合Spark分佈式計算框架獲得更高的分析性能,超圖本着“大任務化小,小任務並行執行”的思想,基於地理分區構建格網索引,數據按照地理分區索引分文件夾存儲,在分佈式計算時,也將基於格網單元拆分任務爲獨立的子任務,進一步提升分析的並行度;另外,爲使DSF具有更高效的數據可視化能力,超圖提出在一級空間索引的基礎上構建二級索引的技術方案,滿足了海量空間數據在小比例尺下的顯示性能需求以及屬性查詢等數據管理效率需求。

圖 2 DSF矢量數據存儲方案

DSF的能力及應用價值

DSF的重要能力之一是空間數據的分佈式存儲,且同時支持矢量、柵格和影像數據;數據不僅可以存儲在HDFS分佈式文件系統,還可以存儲在普通文件系統和雲儲存中,這使得空間數據文件的共享、分發和歸檔更加便捷。

圖 3 DSF分佈式存儲能力

另外,考慮到在國家級或省級的行業大數據GIS平臺建設中,數據匯交建庫不可能一次完成,DSF還提供了數據的追加以及更新能力。

DSF的另一個重要能力是高性能的空間數據分佈式分析,它提供了超越其他數據存儲的全量數據疊加分析能力。

全量數據疊加分析使得行業應用中的大規模空間數據的存儲和管理不用再採用分庫分表的“分而治之”方案,也使得自然資源管理、城市規劃、城市綜合管理等領域的決策不再單純地依賴粗粒度的抽樣數據進行分析和推測,而有能力基於數據總量獲得更加客觀、科學的分析結果,並且越來越多地綜合用地、人口、就業、公共服務等多源空間大數據進行空間分析、關聯分析、數據挖掘,以數據爲依據,呈現真實世界的運行面貌,更好地服務行業決策乃至國家戰略決策,而DSF的面向分析的高性能優勢能夠保障全量數據分析結果的時效性。

例如,某行業的大數據基礎平臺,需要具備高性能分析能力,項目組經過實測,2802萬地類圖斑與1.2億承包地塊進行疊加分析,若採用傳統模式,將數據拆分後分別進行疊加分析,再將結果合併,多人、多機也要費時數週。而在DSF高性能分佈式分析支撐下,全量數據疊加分析耗時只有64分鐘,並且,分析耗時還能隨着計算節點的增加呈線性減少。除此之外,項目組還進行了其他多組實際應用場景的分析性能測試,充分肯定DSF能夠滿足平臺日常的空間大數據疊加分析效率需求。

圖 4:針對億級數據的疊加分析,傳統計算模式與分佈式計算模式性能對比

圖 5:分析耗時與分析節點數關係

除了矢量數據,柵格數據也是行業空間數據分析的重要數據來源,且柵格數據的體量更大,採用DSF存儲的柵格數據在疊加分析、空間統計方面也具備高性能的特點。在柵格區域統計中,經常要彙總多邊形區域內的多種柵格統計值,例如,某測試場景中,基於全球降雨量指標的柵格數據(329GB數據量),獲得北美不同集水區的匯水情況,在DSF全量數據高性能分析支撐下,分析耗時僅95分鐘。

圖 6:北美匯水量分析性能統計

上述的性能統計數據用客觀事實證明了DSF在大數據量空間分析性能方面的優勢,超圖還提供了百餘種分佈式分析算子,助力GIS應用分析的全面提速。

從上圖還可以窺見DSF在數據入庫方面也具備高效性,DSF能夠基於Spark實現數據的分佈式導入,導入的數據可以來自Oracle Spatial、PostGIS、GoePackage、UDB/UDBX、Shapefile、GDB、Tiff等多種來源,支持多種地理座標系和投影座標系,極大地方便了行業應用中多源空間數據抽取到DSF中。

表格 1 大規模數據導入DSF的耗時情況

數據

Spark集羣環境配置

耗時

全球67年降雨量指標柵格數據,數據量329GB

4 cores,16G*6節點

162分鐘

確權圖斑數據,數據量1億個對象

4 cores,16G*6節點

29分鐘

 

DSF作爲分佈式空間文件引擎,除了超強的分佈式計算性能,還能直接用於地圖可視化,包括在SuperMap iDesktopX中配置各類地圖風格,在SuperMap iServer中發佈爲地圖服務等。

 

                            圖 7:千萬級地類圖斑可視化                                  圖 8:全球30米分辨率DEM山體陰影顯示

 

                          圖 9:億級路網數據可視化                                                       圖 10:數字正射影像顯示

總結

DSF從最根本的數據存儲開始,逐步突破全量空間大數據分析和管理的壁壘,最終實現了全量空間大數據的高性能分佈式存取、高性能分析、高性能顯示以及高效管理,而且已經在行業應用中啓用,並收穫良好口碑。

超圖在10i版本中,優化和升級了大數據GIS操作流程,提供更加便捷的空間大數據(包括DSF)的數據入庫、數據管理、可視化和服務發佈方式,這也有效支撐了DSF的廣泛應用。欲知詳情,請您關注超圖官方微信的後續發佈內容。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章