文/田江濤
近年來,急劇增長的地理空間大數(shù)據(jù)已經(jīng)成為海量數(shù)據(jù)處理的重要部分。地理空間大數(shù)據(jù)具有空間位置、非結(jié)構(gòu)化、空間關(guān)系、分類編碼、海量數(shù)據(jù)等特征,應(yīng)用前景多樣,因此我省無論是非實時數(shù)據(jù)支撐,還是實時的應(yīng)用探索,地理空間大數(shù)據(jù)的應(yīng)用都扮演著至關(guān)重要的角色。
地理空間大數(shù)據(jù)是指帶有地理坐標(biāo)的數(shù)據(jù),包括資源、環(huán)境、經(jīng)濟(jì)和社會等領(lǐng)域的一切帶有地理坐標(biāo)的數(shù)據(jù),是地理實體的空間特征和屬性特征的數(shù)字描述。具體到電信行業(yè)實際使用中就是帶有用戶信息及經(jīng)維度的信令等其它信息的數(shù)據(jù)。
主要借助地圖網(wǎng)格以及顏色渲染進(jìn)行業(yè)務(wù)展示,即需要通過經(jīng)緯度計算將用戶的位置數(shù)據(jù)進(jìn)行網(wǎng)格化,并通過位置關(guān)系計算確定數(shù)據(jù)點(diǎn)是否落在網(wǎng)格內(nèi),并通過地圖方式來進(jìn)行業(yè)務(wù)展示。海量的數(shù)據(jù)需要進(jìn)行非實時按日粒度快速處理,數(shù)據(jù)往往達(dá)到十億/天。
在電信行業(yè)家庭寬帶業(yè)務(wù)的發(fā)展過程中,需要確定基站與家庭寬帶物理小區(qū)的覆蓋關(guān)系,其中涉及家庭寬帶物理小區(qū)中心經(jīng)緯度與基站小區(qū)的位置關(guān)系的計算,只有建立關(guān)系后才能將家庭寬帶潛在用戶信息歸屬到相應(yīng)的物理小區(qū)進(jìn)行營銷發(fā)展。
在電信行業(yè)中,需要定位潛在發(fā)展用戶是否在4G網(wǎng)絡(luò)的覆蓋范圍之內(nèi)。需要大批量計算用戶常駐位置與周邊4G基站的位置關(guān)系作為觸發(fā)業(yè)務(wù)推薦的前提條件,且需要按日粒度更新,因此快速的用戶位置關(guān)系處理顯得日趨重要。
用戶位置軌跡計算:
電信應(yīng)用中,比如公安,旅游,人流密度需要實時判斷用戶位置軌跡與當(dāng)前網(wǎng)格/重點(diǎn)區(qū)域的位置關(guān)系確定當(dāng)前位置的人員密度情況。匯總粒度需要到分鐘或者是小時。
傳統(tǒng)的通過編寫SQL實現(xiàn)經(jīng)緯度間的計算相對復(fù)雜,代碼可讀性差,可移植性差。計算執(zhí)行效率低,用常規(guī)的方法計算經(jīng)緯度間距需要用ROUND, ASIN, SIN, COS等多重函數(shù)嵌套,相對而言計算規(guī)模大,效率低,在實時場景下遠(yuǎn)遠(yuǎn)達(dá)不到要求,對日常作業(yè)更新帶來很大困難。數(shù)據(jù)精度較低,傳統(tǒng)方法計算經(jīng)緯度不支持空間投影,在一些地方需要進(jìn)行DECIMAL截取操作,還有對π的支持,在使用PostGIS之前計算距離是截取的14位π值,傳統(tǒng)計算方式數(shù)據(jù)精度相對較低。
PostGIS是對象關(guān)系型數(shù)據(jù)庫系統(tǒng)PostgreSQL的一個擴(kuò)展,PostGIS提供如下空間信息服務(wù)功能:空間對象、空間索引、空間操作函數(shù)和空間操作符。同時,PostGIS遵循OpenGIS的規(guī)范,PostGIS的版權(quán)已被納入到GNU的GPL中,由于其源代碼的公開性,任何人可以對其做研究和改進(jìn)。
Greenplum(以下簡稱GP)是一種MPP數(shù)據(jù)庫,常用于建立企業(yè)級數(shù)據(jù)倉庫。GP數(shù)據(jù)庫的是基于PostgreSQL8.2開發(fā)的,所以GP跟PostGIS有天然的聯(lián)系,經(jīng)過驗證可以把PostGIS部署在現(xiàn)有GP版本上。
PostGIS支持的主要函數(shù):
點(diǎn)對點(diǎn)距離計算:ST_distance_sphere(a.geom,b.geom)
執(zhí)行效率:10億條數(shù)據(jù),運(yùn)行處理點(diǎn)對點(diǎn)的SQL,使用常規(guī)的三角函數(shù)計算方式執(zhí)行開始時間為“10:34:38”,結(jié)束時間為“12:28:52”,周期為1小時54分鐘,使用PostGIS提供的方式執(zhí)行開始時間“10:21:53”,結(jié)束時間為“10:29:14”,周期約8分鐘,執(zhí)行效率大大提高。
便捷與應(yīng)用:顯而易見,使用PostGIS方式計算距離的代碼的可讀性,簡易性遠(yuǎn)遠(yuǎn)高于常規(guī)的經(jīng)緯度計算SQL。可應(yīng)用于家庭寬帶物理小區(qū)與基站小區(qū)映射、4G網(wǎng)絡(luò)覆蓋等地圖上點(diǎn)與點(diǎn)之間的距離計算。
點(diǎn)對面計算:ST_Contains(a.geom,b.geom)
執(zhí)行效率:當(dāng)處理點(diǎn)對面的SQL時,常規(guī)的方式執(zhí)行時間為1小時22分鐘,使用PostGIS提供的方式執(zhí)行時間約為1分鐘,執(zhí)行效率同樣提升很大。
便捷與應(yīng)用: 點(diǎn)與面的計算可廣泛應(yīng)用于基站與網(wǎng)格間的位置關(guān)系處理。
另外,在精度上,由于MPP數(shù)據(jù)庫本身不支持空間投影,而PostGIS可以使用4326(wgs86)這個坐標(biāo)系統(tǒng),因此在精度上PostGIS所運(yùn)行的結(jié)果也高于通過三角函數(shù)所匯總出來的數(shù)據(jù)
綜上所述,相比使用傳統(tǒng)的SQL方式使用PostGIS具有精度高,速度快,代碼簡化,適用于空間數(shù)據(jù)的實時非實時處理,對于解決海量空間數(shù)據(jù)在電信等各個領(lǐng)域的應(yīng)用有實際意義。