超大規(guī)模時空數(shù)據(jù)的分布式存儲與應(yīng)用
導(dǎo)讀:據(jù)國際數(shù)據(jù)公司(IDC)統(tǒng)計,全球每18個月新增數(shù)據(jù)量為有史以來數(shù)據(jù)總和。預(yù)計到2025年,全球數(shù)據(jù)總量將達(dá)175ZB,其中 80%的數(shù)據(jù)與空間位置相關(guān),時空數(shù)據(jù)規(guī)模增加非常迅速。
與此同時,時空數(shù)據(jù)劇增給傳統(tǒng)GIS帶來了很大挑戰(zhàn)。傳統(tǒng)GIS常用的數(shù)據(jù)管理、空間分析、地圖可視化等方法上都存在一些不足之處,其性能也無法滿足愈發(fā)增加的時空數(shù)據(jù)量的要求。此外,傳統(tǒng)GIS也基本無法管理流式空間大數(shù)據(jù)。
因此,為了更好應(yīng)對時空數(shù)據(jù)量劇增所帶來的難題,我們需要一種新型的數(shù)據(jù)存儲方法,能夠針對超大規(guī)模的時空數(shù)據(jù),提供存量、流式數(shù)據(jù)管理的能力,同時保證上層空間數(shù)據(jù)分析、地圖可視化等應(yīng)用性能,并以簡單易用的方式提供時空數(shù)據(jù)給GIS從業(yè)人員使用。本文將和大家分享下超圖對于超大規(guī)模時空數(shù)據(jù)的分布式存儲與應(yīng)用方案。主要內(nèi)容包括:① 面向時空數(shù)據(jù)的存儲與應(yīng)用;② 面向分布式計算的存儲與應(yīng)用;③ 面向地圖渲染的存儲與應(yīng)用;④ 分布式地理處理建模。
1. 時空數(shù)據(jù)的發(fā)展歷程
首先介紹時空數(shù)據(jù)發(fā)展歷程。

我們知道超大規(guī)模的時空數(shù)據(jù)因飛速發(fā)展的互聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)普及而產(chǎn)生。這些數(shù)據(jù)往往具有多源異構(gòu)的特性,因其結(jié)構(gòu)不同,特性也不同,往往還以不同的數(shù)據(jù)存儲類型存儲,如文件型、數(shù)據(jù)庫等形式。
因此對于這樣的時空大數(shù)據(jù),需要一種一體化的分布式訪問方式將它們統(tǒng)一接入到GIS平臺中,方便后續(xù)的分析和應(yīng)用。
2. 常見的異構(gòu)時空數(shù)據(jù)類型

常見異構(gòu)時空數(shù)據(jù)包括但不限于以下幾種:
以點(diǎn)、線、面數(shù)據(jù)為代表的矢量數(shù)據(jù),通常采用字段屬性或幾何屬性的方式存儲;
柵格數(shù)據(jù),通常以像素形式,較規(guī)律的網(wǎng)格化形式進(jìn)行存儲。
它們是都具有很大差異的數(shù)據(jù)結(jié)構(gòu),因此在數(shù)據(jù)量變得龐大的時候,為保證這些數(shù)據(jù)的分析、管理性能,我們需要根據(jù)其不同特性,存放在不同的分布式數(shù)據(jù)庫中。
3. 各具特色的分布式數(shù)據(jù)存儲

常見的分布式數(shù)據(jù)庫有以下幾種:
分布式關(guān)系型數(shù)據(jù)庫,具有較完整的SQL查詢能力,因此適合查詢大量的矢量數(shù)據(jù)。
MongoDB是一種鍵值數(shù)據(jù)庫,比較適合大規(guī)模的柵格切片。
ES數(shù)據(jù)庫適合存放大規(guī)模的點(diǎn)數(shù)據(jù)。
以HDFS為代表的分布式文件系統(tǒng),適合存儲CVS等格式的文件型數(shù)據(jù)。
以HBase為代表的非關(guān)系型數(shù)據(jù)庫,有非常高的查詢性能,適合存儲需要查詢顯示的海量空間大數(shù)據(jù)。
4. 分布式一體化時空數(shù)據(jù)訪問
① 優(yōu)勢1-通用數(shù)據(jù)讀寫API
對以上幾種數(shù)據(jù)存儲方式,超圖提供了一套通用的數(shù)據(jù)讀寫接口,能夠?qū)@些多源數(shù)據(jù)進(jìn)行讀取和訪問,包括:HDFS時空文件引擎接口;分布式對象存儲引擎接口;關(guān)系型空間數(shù)據(jù)庫引擎接口;NoSQL數(shù)據(jù)庫引擎接口。
② 優(yōu)勢2-參數(shù)標(biāo)識數(shù)據(jù)源類型

使用時只需以參數(shù)的方式,即Parameter,輸入傳入的數(shù)據(jù)源連接信息,就能標(biāo)識出不同的數(shù)據(jù)源類型。這樣做的好處是能確保在應(yīng)用層調(diào)用統(tǒng)一的數(shù)據(jù)訪問接口,從而提升代碼的復(fù)用性。
③ 優(yōu)勢3-按需查詢多源數(shù)據(jù)

此外另一個優(yōu)勢是,如在傳統(tǒng)的方法中,對不同數(shù)據(jù)源進(jìn)行差異化訪問時,在需要數(shù)據(jù)統(tǒng)一查詢時,往往需要先將多源數(shù)據(jù)讀取到內(nèi)存中再進(jìn)行查詢。典型如sparkSQL的能力,這樣在數(shù)據(jù)量較大時很容易造成內(nèi)存溢出的危險。但如果使用一體化的讀取方式,就能在讀取的同時設(shè)置查詢條件。像在剛才的函數(shù)中,輸入query參數(shù),就可以在數(shù)據(jù)庫端直接進(jìn)行查詢,實現(xiàn)數(shù)據(jù)的按需讀取,從而大幅減輕內(nèi)存壓力。
1. 空間數(shù)據(jù)索引

我們知道在磁盤上查詢數(shù)據(jù)時,為避免每查詢一個數(shù)據(jù)就要掃描整個磁盤,我們必須在磁盤上建立索引來提高數(shù)據(jù)查詢的效率。傳統(tǒng)數(shù)據(jù)庫中,往往建立字段索引對特定鍵值進(jìn)行快速訪問,但地理空間數(shù)據(jù)具有更高維度,傳統(tǒng)的字段索引并不能滿足空間數(shù)據(jù)的索引要求,因此需要一種空間索引來滿足空間數(shù)據(jù)的查詢要求。
超圖推出了一種分布式空間文件引擎,也叫做DSF。這種數(shù)據(jù)存儲方式可以對地理空間數(shù)據(jù)進(jìn)行空間索引。通過格網(wǎng)、四叉樹等空間索引方式實現(xiàn)對空間單元的劃分。劃分后的空間單元還可以進(jìn)行多級多尺度的索引,如對每一個空間單元進(jìn)一步構(gòu)建二級索引,以提升精細(xì)數(shù)據(jù)的查詢效率。
2. 基于DSF的分布式計算步驟

基于DSF時空數(shù)據(jù)存儲方式,在計算時首先會通過一體化數(shù)據(jù)訪問接口,將數(shù)據(jù)讀取為彈性分布式時空數(shù)據(jù)集,讀取到內(nèi)存中,然后再將各個分區(qū)發(fā)到分布式計算集群各個計算節(jié)點(diǎn)實現(xiàn)并行計算,從而大幅提升計算性能。
3. 分布式空間文件引擎的應(yīng)用范圍

目前,DSF能夠完全支持分布式與文件式數(shù)據(jù)管理方式,也能支持云存儲,能夠承載矢量、柵格等不同數(shù)據(jù)類型,以統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)向上層提供分布式分析與分布式數(shù)據(jù)管理能力。
4. 基于DSF的應(yīng)用案例1-農(nóng)經(jīng)數(shù)據(jù)建庫

DSF的應(yīng)用之一是與農(nóng)業(yè)農(nóng)村部規(guī)劃設(shè)計研究院一起完成的農(nóng)經(jīng)權(quán)數(shù)據(jù)建庫。
它們具有非常大量且數(shù)據(jù)結(jié)構(gòu)復(fù)雜的土地利用數(shù)據(jù)和地塊期權(quán)數(shù)據(jù),包括點(diǎn)線面數(shù)據(jù)和復(fù)合矢量數(shù)據(jù)。
傳統(tǒng)方法是采用“分而治之”的策略來數(shù)據(jù)入庫和分析的,也就是說要對全國2800個縣拆分后單獨(dú)入庫、分析。這樣的工作流程耗費(fèi)的計算資源、人力、時間都非常龐大。
但嘗試使用分布式的DSF和分布式計算后發(fā)現(xiàn),各個級別的數(shù)據(jù)入庫和計算性能都大大提升:
縣級的千萬級別的數(shù)據(jù)可以在10min左右完成入庫和疊加分析;
省級三千萬級別的數(shù)據(jù)可以在30min左右完成入庫和分析;
國家級億級別的數(shù)據(jù)可以在2h左右完成入庫和分析。
5. 基于DSF的應(yīng)用案例2-四川省土地確權(quán)業(yè)務(wù)

四川省基礎(chǔ)地理信息中心土地確權(quán)業(yè)務(wù)分析需要對四川省全省2000多萬條記錄進(jìn)行疊加面的分析。
傳統(tǒng)工作方式是采用高性能單機(jī)服務(wù)器來完成,雖然機(jī)器性能非常好,但完成一次疊加分析也需要40多分鐘。
嘗試使用一個4節(jié)點(diǎn)的分布式集群去進(jìn)行DSF存儲和分布式計算之后發(fā)現(xiàn),雖然每一臺服務(wù)器的使用資源并不高,但是耗時降低至2min左右,因此性能會有20倍的提升。
6. 基于DSF的應(yīng)用案例3-全球耕地面積統(tǒng)計

DSF的第三個應(yīng)用是農(nóng)業(yè)規(guī)劃設(shè)計研究院的一個研究型項目:全球耕地面積各地區(qū)統(tǒng)計。
采用30m分辨率的耕地分類柵格數(shù)據(jù),數(shù)據(jù)超過400幅。
如果采用傳統(tǒng)單機(jī)方法,按國家拆分后計算,那么面積比較大的國家,比如中國區(qū)域,就需要計算10小時以上。
因此這使用傳統(tǒng)方法并沒有完成對全球的計算。
但當(dāng)嘗試使用一個6節(jié)點(diǎn)的分布式計算集群,并使用DSF的存儲方式進(jìn)行柵格存儲,進(jìn)行耕地面積統(tǒng)計時,發(fā)現(xiàn)一次全球計算只需40min就可以完成。性能提升了50倍,得到了用戶的極大肯定。
以上討論了超大規(guī)模時空數(shù)據(jù)針對空間分析可以有那些優(yōu)化,接下來看看GIS行業(yè)中另一個需求,即地圖可視化,能進(jìn)行哪些分布式方面的改造。
1. 地圖服務(wù)的要求

傳統(tǒng)的時空數(shù)據(jù)大多以文件或關(guān)系型數(shù)據(jù)庫來進(jìn)行存儲。
對于這些數(shù)據(jù),我們進(jìn)行地圖發(fā)布的時候,通常采用構(gòu)建柵格瓦片的形式來進(jìn)行。
但柵格瓦片有一些弊端,如在數(shù)據(jù)量非常大時,大比例尺的柵格瓦片構(gòu)建耗時非常長,地圖的分格一旦發(fā)生改變,柵格瓦片就要重復(fù)構(gòu)建,因此這個工作是一個重復(fù)性的工作。
因此對于大數(shù)據(jù)量的時空數(shù)據(jù)來說,我們就需要一個新型的分布式技術(shù)來實現(xiàn)地圖的即時更新、即時發(fā)布、高效瀏覽的需求。
2. 超圖-高性能分布式動態(tài)渲染技術(shù)體系

超圖整合了分布式存儲、分層綜合和分布式渲染等技術(shù)打造成了高性能分布式動態(tài)渲染的技術(shù)體系。
3. 動態(tài)渲染技術(shù)體系-矢量分層綜合技術(shù)

分布式矢量分層綜合,其本質(zhì)上是一種地圖綜合的技術(shù)。
在數(shù)據(jù)存儲過程中,對數(shù)據(jù)建立多個級別的數(shù)據(jù)集合,使得在地圖顯示時,只需拉取相應(yīng)級別的數(shù)據(jù)進(jìn)行顯示。
這種存儲機(jī)制的好處在于對小比例尺級別的層數(shù)據(jù)可以單獨(dú)進(jìn)行數(shù)據(jù)簡化來降低地理數(shù)據(jù)的復(fù)雜程度,從而在地圖繪制過程中大幅提升小比例尺下的地圖繪制性能。
4. 動態(tài)渲染技術(shù)體系-分布式渲染技術(shù)

分布式渲染指將客戶端請求的矢量瓦片任務(wù)分解,交給多個節(jié)點(diǎn)、多個進(jìn)程同步執(zhí)行,從而提升渲染的并行程度。
利用多個節(jié)點(diǎn)的共同工作來完成地圖服務(wù)各個部分內(nèi)容的渲染,最終在客戶端展現(xiàn)完整的渲染內(nèi)容,從而大幅減少地圖服務(wù)的響應(yīng)時間。
5. 分布式動態(tài)渲染應(yīng)用案例1

如圖所示,這是一個120GB矢量空間數(shù)據(jù)地圖發(fā)布性能對比,可以看到傳統(tǒng)方法中,僅做個柵格切圖就需要240h完成。
而分布式柵格切圖和分布式矢量切圖能夠很大程度上降低疊加的耗時。
我們的動態(tài)渲染過程因為省略了切圖這一步驟,可以進(jìn)一步提升矢量數(shù)據(jù)地圖服務(wù)發(fā)布效率,相較于柵格切圖,其效率可提升數(shù)百倍。
6. 分布式動態(tài)渲染應(yīng)用案例2

高性能動態(tài)渲染應(yīng)用案例——億級道路線數(shù)據(jù)的秒級渲染:
案例中展示的是采用10節(jié)點(diǎn)的HBASE集群,進(jìn)行分層綜合的構(gòu)建和分布式的渲染,最后達(dá)到的全球道路線數(shù)據(jù)的渲染效果圖。
疊加上衛(wèi)星地圖后,渲染效果也是非常好的。
7. 基于分布式存儲的即時分析渲染

上面介紹了采用分布式技術(shù)將數(shù)據(jù)直接顯示的應(yīng)用案例,但當(dāng)數(shù)據(jù)量達(dá)到一定規(guī)模后,若還是像前面案例中符號化展示所有數(shù)據(jù),地圖上就會顯示的非常密集,無法看到數(shù)據(jù)的規(guī)律。
因此對于大規(guī)模密集數(shù)據(jù)來說,更好的可視化辦法是增加一種能體現(xiàn)數(shù)據(jù)規(guī)律的算法函數(shù),讓我們在觀察數(shù)據(jù)的過程中獲取更多的信息,看的更加清晰明白。
8. 流數(shù)據(jù)即時渲染應(yīng)用案例1-直接符號化顯示

案例:存儲在es數(shù)據(jù)庫中的一個一億飛機(jī)點(diǎn)位的實時渲染效果圖。
如圖所示,如采用直接符號化顯示進(jìn)行渲染,渲染結(jié)果將非常復(fù)雜,看不到數(shù)據(jù)規(guī)律,但如果通過格網(wǎng)聚合的效果進(jìn)行動態(tài)渲染,就可以很輕松看到整體分布情況。
9. 流數(shù)據(jù)即時渲染應(yīng)用案例1-密度分析計算顯示

上圖是對剛才的億級的點(diǎn)位數(shù)據(jù)的另一渲染效果。
如采用密度分析進(jìn)行即時計算,可以清楚看到點(diǎn)位數(shù)據(jù)分布和動態(tài)流動情況。
10. 流數(shù)據(jù)即時渲染應(yīng)用案例2

上圖是與阿里云polarDB合作的飛機(jī)點(diǎn)位渲染效果圖。
采用了軌跡分析的即時渲染,25億個飛機(jī)點(diǎn)位疊加上軌跡分析結(jié)果后能夠很清晰的看到各個飛機(jī)的行駛軌跡和實時位置。
對于剛才提到的分布式GIS技術(shù),超圖提供了分布式地理處理建模模塊,可以讓大家很方便的使用這些技術(shù)。
1. 地理處理建模產(chǎn)品架構(gòu)

如圖,這是一個地理處理的產(chǎn)品架構(gòu)圖:
底層通過組件產(chǎn)品提供分布式能力;
上層我們將API封裝成圖形化的工具,推出了一套地理處理模塊。這個模塊目前可以在桌面端產(chǎn)品和服務(wù)器端產(chǎn)品使用。
2. 地理處理建模界面

如圖,這是在兩個端產(chǎn)品上的使用界面情況。
利用圖形化工作界面,進(jìn)行工具編排,可以實現(xiàn)對空間數(shù)據(jù)的管理和分析,以及服務(wù)的發(fā)布。
超圖的分布式地理處理建模特點(diǎn)在于:工具基于分布式架構(gòu)實現(xiàn),能夠?qū)邮褂梅植际酱鎯Φ臄?shù)據(jù)庫和分布式計算集群。這樣可以真正將傳統(tǒng)GIS可視化建模與分布式技術(shù)達(dá)到深度融合,讓GIS從業(yè)人員更加輕松享受到分布式技術(shù)帶來的功能和性能上的提升。
3. 分布式地理處理建模工具介紹

分布式地理處理建模目前提供了600多種預(yù)定義工具:
分布式數(shù)據(jù)管理、分布式時空分析等分布式工具
地圖服務(wù)分布、數(shù)據(jù)挖掘等傳統(tǒng)空間分析工具。
4. 分布式地理處理建模應(yīng)用案例-批量導(dǎo)入1:25萬基礎(chǔ)地理數(shù)據(jù)
① 基礎(chǔ)地理數(shù)據(jù)獲取


基礎(chǔ)地理信息數(shù)據(jù)可以從國家基礎(chǔ)地理信息中心獲取。數(shù)據(jù)組織非常復(fù)雜,含600多個shp數(shù)據(jù),存儲非常零散。我們該如何將這些數(shù)據(jù)分幅導(dǎo)入到數(shù)據(jù)庫中,來進(jìn)行比較好的顯示?
② 批量數(shù)據(jù)導(dǎo)入流程模型

可以借助超圖的分布式地理處理建模模塊,構(gòu)建批量數(shù)據(jù)導(dǎo)入的流程模型:
首先,迭代遍歷多個數(shù)據(jù)的存儲文件夾;
通過過濾的工具來獲取各個圖幅需要的對應(yīng)的數(shù)據(jù)名稱和數(shù)據(jù)集;
最終通過一個迭代的模型,可以實現(xiàn)剛才非常零散的、大規(guī)模的數(shù)據(jù)量的批量入庫的工作。
③ 批量數(shù)據(jù)導(dǎo)入效果展示

如圖,這是西藏地區(qū)基礎(chǔ)地理數(shù)據(jù)的導(dǎo)入效果圖,可以看到圖幅非常多,最終的圖層得到了很好的組織管理。
5. 分布式地理處理建模應(yīng)用案例2-耕地質(zhì)量分析

另一個分布式地理處理建模的應(yīng)用案例:貴州省大數(shù)據(jù)分析平臺上的耕地質(zhì)量分析業(yè)務(wù)。
該業(yè)務(wù)需要使用多個空間分析的算子共同結(jié)合才能算出耕地的質(zhì)量等級。
① 地理處理建模服務(wù)器端搭建耕地質(zhì)量分析模型

我們可以在服務(wù)器端的地理處理建模界面搭建我們需要的耕地質(zhì)量模型,這是當(dāng)時使用到的耕地質(zhì)量模型。
② 搭建模型用于耕地質(zhì)量分析

在前端的主頁利用大數(shù)據(jù)分析平臺中的耕地質(zhì)量分析算法,點(diǎn)擊運(yùn)行后,后臺就會調(diào)用前面提到的復(fù)雜模型。
該模型后臺已經(jīng)構(gòu)建完成,前端人員可以直接使用進(jìn)行分析,從而得到耕地質(zhì)量等級。
1. 解決“兩難兩慢”難題

超圖的分布式存儲能夠解決超大規(guī)模時空數(shù)據(jù)的幾個難題:讀取難;分析慢;可視化慢;分布式技術(shù)使用難。
通過分布式一體化訪問、分布式空間文件引擎、高性能分布式動態(tài)渲染和分布式地理數(shù)據(jù)建模技術(shù),能夠解決超大規(guī)模時空數(shù)據(jù)“兩難兩慢”的問題。
2. 行業(yè)評價

超圖的分布式存儲技術(shù)得到了多位院士專家的評價:整體國際先進(jìn)部分國際領(lǐng)先的科技水平。
除此之外,我們還得到了2020年地理信息科技進(jìn)步的特等獎,排名第一的好成績。
3. 行業(yè)貢獻(xiàn)


最后,我們還撰寫了《大數(shù)據(jù)地理信息系統(tǒng):原理、技術(shù)與應(yīng)用》教材,促進(jìn)了我國大數(shù)據(jù)地理信息產(chǎn)業(yè)發(fā)展,也為儲備人才培養(yǎng)提供了前沿資料。如果大家感興趣,也歡迎大家去訂閱教材或與我們聯(lián)系。
https://www.supermap.com/zh-cn/a/product/10i-tec-2-2020.html
超圖大數(shù)據(jù)產(chǎn)品的網(wǎng)頁連接如上,歡迎大家前去下載超圖的產(chǎn)品,如果有問題可以與我們的技術(shù)人員繼續(xù)溝通~
Q:地理信息的抽象層面是什么?
A:我理解的是我們需要如何去進(jìn)行地理信息的表達(dá)。在GIS行業(yè)中,以點(diǎn)線面符號化的形式去表達(dá)。GIS就是對空間實體的抽象表達(dá),整個GIS數(shù)據(jù)模型都是對地理信息的抽象化的表達(dá)方式。
Q:Spark上做空間數(shù)據(jù)分析是自然的系統(tǒng)還是基于genalspark等開源系統(tǒng)改造的?對spatialjion有哪些特殊優(yōu)化呢?
A:超圖的分布式計算是基于spark框架自研的計算體系??臻g連接算法邏輯是已經(jīng)固定的,在GIS行業(yè)中該如何去計算是已經(jīng)固定的,但我們的API大家感興趣的話,可以去我們的產(chǎn)品當(dāng)中去查看??臻g連接有不同的連接方式,也有非常高的連接性能,也有一些具體的應(yīng)用案例,大家都可以在我們的產(chǎn)品文檔中獲得。
Q:可以抽象為點(diǎn)線面的數(shù)據(jù)都可以用地理信息系統(tǒng)記錄?
A:對的,地理信息系統(tǒng)就是去完成點(diǎn)線面數(shù)據(jù)的管理、分析、可視化的技術(shù)。
