国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于geomesa的GDELT事件數(shù)據(jù)的存儲與檢索方法研究

2019-05-22 10:27李聰仁
電腦知識與技術(shù) 2019年6期

李聰仁

摘要:GDELT每時每刻監(jiān)控著每個國家?guī)缀趺總€角落100多種語言的新聞媒體推動全球的社會事件,GDELT為全球提供了一個自由開放的計算平臺,這也成為了分析地理信息的一個組成部分。針對大量實時更新的事件數(shù)據(jù),如何對事件數(shù)據(jù)進(jìn)行快速的存儲、檢索、可視化,提出了一種基于geomesa地理大數(shù)據(jù)框架分布式查詢與檢索方案。該方法首先采用Map-Reduce導(dǎo)入GDELT事件數(shù)據(jù),采用時空索引(Z3/XZ3)將事件數(shù)據(jù)沿著Z曲線存儲在Accumulo分布式數(shù)據(jù)庫中,通過leaflet或Geoserver顯示出來,最后通過時空檢索將數(shù)據(jù)查找出來。并通過實驗驗證該方案的有效性。

關(guān)鍵詞: Geomesa; HBase; GSELT事件數(shù)據(jù);Spark; Accumulo

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2019)06-0006-03

1 引言

隨著全球事件的快速發(fā)展,每時每刻將產(chǎn)生大量的新聞事件數(shù)據(jù),GDELT以來自世界各地的100多種語言監(jiān)控印刷,廣播和網(wǎng)絡(luò)新聞媒體,以不斷更新地球上任何地方的突破性發(fā)展,每15分鐘更新一次。每個事件捕獲近60個屬性,包括識別人員、位置、組織、數(shù)量、主題、數(shù)據(jù)源、情緒、圖片等信息。GDELT將文章及言論解析成具備角色、來源及時空特性的事件,通過事件感知動向、挖掘關(guān)聯(lián)、預(yù)測態(tài)勢、洞悉世界[1]。面對這如此龐大的全球事件數(shù)據(jù),如何高效地存儲組織、管理分析、可視化,已成為現(xiàn)在迫切需要解決的問題。

對于事件數(shù)據(jù),它屬于矢量數(shù)據(jù)中的點狀數(shù)據(jù),點狀數(shù)據(jù)中帶有時間序列,geomesa可以在Accumulo,HBase,Cassandra和Kafka中大規(guī)模存儲,索引,查詢和轉(zhuǎn)換時空數(shù)據(jù),這將為存儲和管理事件數(shù)據(jù)提供了新的思路和解決方案。

方鵬[2]設(shè)計了海量海量媒體數(shù)據(jù)分析平臺,它是基于Python的Django框架,采用的是MVC設(shè)計模式,應(yīng)用JQuery,Echart,CartoDB,百度地圖API等技術(shù)實現(xiàn)了各個功能模塊界面的可視化。范建永[3]設(shè)計了基于HBase的矢量空間數(shù)據(jù)存儲模型和一種基于MapReduce的并行構(gòu)建網(wǎng)格空間索引方法。祝若鑫[4]設(shè)計了基于Hadoop 的矢量數(shù)據(jù)并行管理方法,它采用了四叉樹層次剖分技術(shù)設(shè)計了多級格網(wǎng)索引對矢量數(shù)據(jù)進(jìn)行查詢檢索。韓驊宇[5]提出了針對整型時序數(shù)據(jù)的TSDAC算法。該算法通過直接取址編碼,實現(xiàn)了整型數(shù)據(jù)的變長高效編碼壓縮和直接訪問,TSDAC算法還通過相異數(shù)存儲策略有效減少連續(xù)冗余數(shù)據(jù)的存儲。杜忠暉[6]利用Hadoop的并行計算框架Map Reduce進(jìn)行數(shù)據(jù)同構(gòu)化處理;在非結(jié)構(gòu)化文檔數(shù)據(jù)檢索優(yōu)化技術(shù)方面,利用Elastic Search特有的過濾器機(jī)制結(jié)合互聯(lián)網(wǎng)身份信息數(shù)據(jù)特點,提出了基于過濾器的檢索過程優(yōu)化方法。章超[7]針對海量數(shù)據(jù)檢索延遲高,設(shè)計了自稱為Solr分Core算法和時間緊縮算法,實現(xiàn)了千億數(shù)據(jù)秒級檢索,并設(shè)計了翻頁緩存功能提升客戶端翻頁體驗。吳廣君、王樹鵬[8]采用集中分布式B+Tree索引和局部索引相結(jié)合的方法提高檢索效率.在此基礎(chǔ)上討論復(fù)雜查詢條件的任務(wù)分解機(jī)制,支持大數(shù)據(jù)的多屬性檢索、模糊檢索以及統(tǒng)計分析等查詢功能。

由上文可以看出,現(xiàn)有存儲模型大都針對矢量數(shù)據(jù)的非結(jié)構(gòu)化數(shù)據(jù),而實際不僅限于此,GDELT通常是海量的、實時更新的,對于大中型數(shù)據(jù)中心還需要對GDELT事件數(shù)據(jù)及矢量數(shù)據(jù)等數(shù)據(jù)進(jìn)行存儲和分發(fā)。另外,在分布式環(huán)境下,為了保證數(shù)據(jù)的快速存取并最大化地發(fā)揮分布式存儲的優(yōu)勢,現(xiàn)有的模型不能很好地兼容時空數(shù)據(jù),對時空數(shù)據(jù)的檢索太慢,不能適應(yīng)大規(guī)模集群的高效存儲與檢索。

因此,本文采用GeoMesa地理數(shù)據(jù)框架對事件數(shù)據(jù)進(jìn)行查詢檢索,它兼容時序索引,它很好的存儲大量的點線面數(shù)據(jù),還可以通過流式處理,可以實現(xiàn)對事件數(shù)據(jù)的大規(guī)模存儲與分析。

2 GeoMesa簡介

GeoMesa是一個開源工具套件,可在分布式計算系統(tǒng)上進(jìn)行大規(guī)模地理空間查詢和分析。GeoMesa在Accumulo,HBase,Google Bigtable和Cassandra數(shù)據(jù)庫之上提供時空索引,用于大量存儲點,線和多邊形數(shù)據(jù)。GeoMesa還通過在Apache Kafka之上分層空間語義來提供時空數(shù)據(jù)的近實時流處理。通過GeoServer,GeoMesa可以通過標(biāo)準(zhǔn)OGC(開放地理空間聯(lián)盟)API和協(xié)議(如WFS和WMS)促進(jìn)與各種現(xiàn)有映射客戶端的集成。GeoMesa支持Apache Spark以進(jìn)行自定義分布式地理空間分析。

GeoMesa的GeoServer插件讓GeoServer可以處理使用GeoMesa表存儲的數(shù)據(jù)。該插件將與數(shù)據(jù)源關(guān)聯(lián)的GeoServer功能映射到GeoMesa格式化表,并提供了許多優(yōu)化以支持特定實例。為了展示地理空間數(shù)據(jù),GeoMesa實現(xiàn)了GeoTools接口,提供對Open Geospatial Consortium標(biāo)準(zhǔn)的HTTP訪問。

GeoMesa索引的基本原理是用三維空間填充曲線表示經(jīng)度,緯度和時間的三個維度,使用沿該曲線的點的值作為關(guān)鍵。這使得它可以將記錄存儲在鍵值存儲中,其中的鍵表示我們最常用于查詢的三個數(shù)據(jù)維度。

GDELT事件數(shù)據(jù)是針對時空進(jìn)行索引的,它包括事件數(shù)據(jù)的點信息和日期信息,還包括不同ID信息、屬性信息。因為事件數(shù)據(jù)的ID號不容易編碼,屬性信息的種類繁多,索引采用時空指數(shù)索引。

3 基于Geomesa的GDELT事件數(shù)據(jù)的存儲與展示

3.1 GDELT事件數(shù)據(jù)的導(dǎo)入

GeoMesa使用附帶的命令行工具,您可以啟動map/reduce作業(yè),以便以最小的配置以分布式方式提取數(shù)據(jù)。該GDELT事件數(shù)據(jù)庫提供了全面的時間和廣播,打印報告的事件的位置索引歸檔,以及全球從1979年到今天的網(wǎng)絡(luò)新聞媒體。

多個框架可用于流式傳輸和批量導(dǎo)入數(shù)據(jù)。其中包括GeoMesa命令行工具,Apache Hadoop的map-reduce作業(yè)以及在Apache Storm上運行的實時導(dǎo)入。

然后將下載的數(shù)據(jù)轉(zhuǎn)存到HDFS中,使用命令行工具啟動讀取。由于目標(biāo)文件位于HDFS中,因此作業(yè)將自動作為分布式map/reduce運行。最后使用GeoMesa附帶的GDELT定義,通過名稱調(diào)用它們。在下面檢查SimpleFeatureType和轉(zhuǎn)換器定義conf/sfts/gdelt/。將事件數(shù)據(jù)存儲到Hbase數(shù)據(jù)庫中。

3.2 GeoMesa索引構(gòu)建

SimpleFeatureType定義GeoTools模式,由一系列眾所周知的屬性組成。GeoMesa支持所有標(biāo)準(zhǔn)GeoTools屬性類型,以及一些其他屬性類型。SimpleFeatureType在GeoMesa中創(chuàng)建使用時,請務(wù)必使用提供的類,而不是標(biāo)準(zhǔn)的GeoTools DataUtilities。SimpleFeatureType可以支持幾何類型、容器類型、列表類型等數(shù)據(jù)類型。

每一個Schema表示導(dǎo)入數(shù)據(jù)的樣式集合的解決方案,通過設(shè)置固定字段的屬性值來對應(yīng)的導(dǎo)入相應(yīng)的數(shù)據(jù),SimpleFeature就是導(dǎo)入數(shù)據(jù)類型的框架,SimpleFeatureType必須在調(diào)用時設(shè)置靜態(tài)屬性,createSchema之后不能更改。大多數(shù)屬性都是通過用戶數(shù)據(jù)值控制的,可以SimpleFeatureType 是特定屬性,也可以是特定屬性。設(shè)置用戶數(shù)據(jù)可以通過多種方式完成。在圖3中,通過創(chuàng)建SimpleFeatureType,構(gòu)建相應(yīng)的屬性值及其類型來創(chuàng)建Schema,檢索事件數(shù)據(jù)的最好方式是將日期作為關(guān)鍵字,能更好地反映事件數(shù)據(jù)的時序特征。對于包含日期屬性的模式,GeoMesa將使用該屬性作為主Z3 / XZ3索引的一部分。如果架構(gòu)包含多個日期屬性,則可以通過用戶數(shù)據(jù)鍵指定要使用的屬性geomesa.index.dtg。

3.3 GDELT數(shù)據(jù)存儲

GeoMesa支持多種可擴(kuò)展的基于云的數(shù)據(jù)存儲技術(shù),包括Apache Accumulo,Apache HBase和HDFS等,它們可以以編程的方式和GeoServer中存儲事件數(shù)據(jù)。

3.3.1以編程方式進(jìn)行事件數(shù)據(jù)存儲

假設(shè)GeoMesa代碼在類路徑上,可以通過常規(guī)GeoTools發(fā)現(xiàn)方法獲取Accumulo數(shù)據(jù)存儲的實例,再通過配置不同的參數(shù)來實現(xiàn)數(shù)據(jù)的存儲。

3.3.2在GeoServer中對事件數(shù)據(jù)進(jìn)行存儲

對GeoMesa數(shù)據(jù)渲染,操作和管理存儲直接方法是使用GeoServer,它是一種用于共享地理空間數(shù)據(jù)的開源服務(wù)器。GeoMesa實現(xiàn)了與 GeoTools兼容的數(shù)據(jù)存儲。這使得可以將GeoMesa Accumulo用作GeoServer中的數(shù)據(jù)存儲。將Geomesa模塊中的Accumulo部分的GeoServer插件分發(fā)到Geoserver中,就可以實現(xiàn)事件數(shù)據(jù)的存儲。

3.3.3使用Leaflet可視化快速啟動數(shù)據(jù)

首先要安裝Geomesa_accumulo組件,使用Geomesa_accumulo命令行的export命令對事件數(shù)據(jù)進(jìn)行導(dǎo)出到leaflet地圖,選擇的數(shù)據(jù)目錄是Accumulo的命名空間下的數(shù)據(jù)表,使用Leadlet輸出類型在地圖上顯示如圖4所示。

4 基于Geomesa的GDELT事件數(shù)據(jù)的快速檢索

對GDELT事件數(shù)據(jù)檢索主要針對事件數(shù)據(jù)的ID、事件數(shù)據(jù)發(fā)生的時間、事件數(shù)據(jù)的范圍。GeoMesa通過GeoTools查詢提示提供高級查詢功能??梢允褂眠@些提示來控制查詢處理的各個方面,或觸發(fā)分布式分析處理。將GeoTools Query轉(zhuǎn)換為特定后端的掃描和過濾器的過程。

本文采用了事件數(shù)據(jù)的ID、事件數(shù)據(jù)發(fā)生的時間、事件數(shù)據(jù)的范圍三者結(jié)合的事件檢索方式,首先必須確定時間的范圍和空間的范圍和具體的ID,對于范圍檢索,要建立一個經(jīng)緯度范圍的索引框,確定經(jīng)緯度具體的范圍;對于時間范圍,設(shè)置一個時間范圍的類型,將時間范圍的值加入過濾器中進(jìn)行檢索。

5 實現(xiàn)結(jié)果分析對比

本實驗采用了不同的分布式數(shù)據(jù)庫對GDELT事件數(shù)據(jù)進(jìn)行存儲。本文采用了GDELT事件數(shù)據(jù)的2018年10月15日的CSV數(shù)據(jù),通過導(dǎo)入到Accumulo、Hbase、Cassandra、HDFS不同的數(shù)據(jù)庫中進(jìn)行存儲檢索,對比一下事件數(shù)據(jù)不同的入庫效率,結(jié)果如下:

通過以上的數(shù)據(jù)結(jié)果,可以看出導(dǎo)入不同數(shù)據(jù)庫的時間效率,對于單條的事件數(shù)據(jù)而言,HDFS的入庫效率更高,HDFS主要是針對小文件存儲,SQL性能更好,入庫時間最快,Cassandra數(shù)據(jù)庫類似于HDFS,入庫效率次之,對于Accumulo和Hbase數(shù)據(jù)庫,它們都具有強(qiáng)一致性的特點,都是針對列式存儲,所以它們的效率相差無幾。

本實驗采用了不同的索引進(jìn)行對GDELT事件數(shù)據(jù)進(jìn)行檢索,因為事件數(shù)據(jù)是點狀數(shù)據(jù),索引不適用與XZ2和XZ3數(shù)據(jù)索引,因此只有四種索引方式進(jìn)行檢索,分別是Z2、Z3、ID和屬性方式,如表4所示:

由表4可以看出空間索引的索引時間比時空數(shù)據(jù)的速度要快,主要是因為空間幾何和時間聯(lián)合查找,所費時間要多,而對于ID和屬性數(shù)據(jù),它們是精確檢索,所費時間要多,ID更快,因為ID是唯一的。

通過以上試驗可以看出,將GeoMesa應(yīng)用于GDELT事件數(shù)據(jù)的存儲與檢索,可以提高空間數(shù)據(jù)的存儲和管理效率,并可以通過擴(kuò)充節(jié)點獲得較大的存儲空間和較高的空間分析計算效率。

參考文獻(xiàn):

[1] http://www.gdelt.cn/homePage.html

[2] 方鵬. 基于Django的海量媒體數(shù)據(jù)分析平臺的設(shè)計與實現(xiàn)[D]. 南寧: 廣西大學(xué), 2017.

[3] 范建永,龍明,熊偉. 基于HBase的矢量空間數(shù)據(jù)分布式存儲研究[J]. 地理與地理信息科學(xué), 2012, 28(5): 39-43.

[4] 祝若鑫. 云計算環(huán)境下的空間矢量數(shù)據(jù)存儲與管理[D]. 鄭州: 信息工程大學(xué), 2015.

[5] 韓驊宇. 時序數(shù)據(jù)的高效存儲與檢索[D]. 北京: 北京交通大學(xué), 2014.

[6] 杜忠暉. 非結(jié)構(gòu)化文檔數(shù)據(jù)一體化存儲檢索技術(shù)研究[D]. 哈爾濱: 哈爾濱工業(yè)大學(xué), 2015.

[7] 章超. 千億級智能交通大數(shù)據(jù)存儲與檢索系統(tǒng)的研究[D]. 杭州: 杭州電子科技大學(xué), 2017.

[8] 吳廣君、王樹鵬. 海量結(jié)構(gòu)化數(shù)據(jù)存儲檢索系統(tǒng)[J]. 計算機(jī)研究與發(fā)展, 2012, 49(5): 1-5.

【通聯(lián)編輯:代影】