張麗華, 李宏博, 王 健, 張偉民, 李欣欣, 李 娟, 邵國強(qiáng)
(1 大慶師范學(xué)院計算機(jī)科學(xué)與信息技術(shù)學(xué)院, 黑龍江 大慶 163712;2 大慶油田有限責(zé)任公司試油試采分公司, 黑龍江 大慶 163712)
近年來,涉油氣犯罪的發(fā)生以及所帶來的嚴(yán)重后果已經(jīng)在全球范圍內(nèi)引起廣泛關(guān)注,涉油氣犯罪是影響涉油氣企業(yè)生產(chǎn)秩序的最主要危害之一,如何結(jié)合國內(nèi)相關(guān)部門的整治措施,深入分析涉油氣資源犯罪的基本特征,探究其形成機(jī)制已刻不容緩。在此基礎(chǔ)上,如何將“預(yù)防”與“治理”二者緊密結(jié)合,探討和分析涉油氣企業(yè)和國家如何對防控資源進(jìn)行合理有效的配置是十分必要的。 十九大報告明確要求,要加快社會治安防控體系建設(shè),打造共建共享共治社會治理格局,提高防范和抵御安全風(fēng)險能力。 隨著“5G+大數(shù)據(jù)”與“物聯(lián)網(wǎng)+安全防范”的夢幻聯(lián)動,涉油氣行業(yè)應(yīng)用數(shù)據(jù)逐漸呈現(xiàn)出高實時性,對提升處理平臺的耗時及資源請求響應(yīng)速率也提出更高要求。
本文首先對主要技術(shù)進(jìn)行了整體闡述,然后對搭建在Storm 平臺上的Flume-Kafka 高可用數(shù)據(jù)采集緩存方案進(jìn)行設(shè)計,重點討論了熱力點的獲取方法,系統(tǒng)使用Logstash 技術(shù)獲取涉犯罪人數(shù)據(jù)源,并將采集到的涉犯罪人信息傳輸?shù)较到y(tǒng)服務(wù)器的數(shù)據(jù)庫進(jìn)行存儲,最后使用熱力圖技術(shù)實現(xiàn)數(shù)據(jù)可視化。經(jīng)過測試,系統(tǒng)運行正常有效,表明基于Storm 的數(shù)據(jù)實時流數(shù)據(jù)檢測平臺能夠滿足涉油氣企業(yè)的要求,可以對涉油氣犯罪人的防控對策提供有價值的數(shù)據(jù)。
Storm 拓?fù)浣Y(jié)構(gòu)如圖1 所示。 由圖1 可知,主要功能在于可以構(gòu)建一個具有高穩(wěn)定性、高可靠性、分布式的數(shù)據(jù)實時計算系統(tǒng),該系統(tǒng)主要被應(yīng)用于數(shù)據(jù)資源的實時數(shù)據(jù)分析領(lǐng)域。 Storm 結(jié)構(gòu)中數(shù)據(jù)基本都以基元組做單元處理,其在注入Storm 數(shù)據(jù)處理平臺后,須嚴(yán)格按照Tuple 格式重新進(jìn)行組裝,最后形成一條Tuple 數(shù)據(jù)流,進(jìn)入Storm 結(jié)構(gòu)的整個數(shù)據(jù)拓?fù)淠P瓦M(jìn)行處理。 Storm 系統(tǒng)中使用的組件Topology 是由2 個Spout 與2 個Bolt 構(gòu)成。 其中,Spout 負(fù)責(zé)讀取、封裝與處理數(shù)據(jù),再對數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā),Bolt 則用于優(yōu)化后續(xù)的業(yè)務(wù)邏輯。
圖1 Storm 拓?fù)浣Y(jié)構(gòu)圖Fig. 1 Storm topology diagram
熱力圖主要采用的3 種形式分別是基于鼠標(biāo)單擊位置的熱力圖、基于鼠標(biāo)軌跡方向的熱力圖以及基于鼠標(biāo)內(nèi)容的單擊軌跡熱力圖等[1]。 本研究主要基于最后一種形式,通過該形式可實時記錄并顯示當(dāng)前瀏覽用戶的行走軌跡,實時優(yōu)化整個網(wǎng)頁及內(nèi)容布局[2]。 通過利用熱力圖上繪制的3 種顏色來區(qū)分渲染圖的不同覆蓋區(qū)域,與圖里實際的涉犯罪人數(shù)分別相對應(yīng),從而分析算出實際涉犯罪人群密度,再根據(jù)此密度規(guī)劃出涉犯罪人分布的運動移動圖[3]。
Flume 是一種可靠性很高的分布式數(shù)據(jù)采集、傳輸工具, 能將數(shù)據(jù)轉(zhuǎn)化成數(shù)據(jù)流進(jìn)行控制,而Kafka 是一種發(fā)布-訂閱模式的消息系統(tǒng),除了具有高吞吐量外,也支持在線實時和離線的數(shù)據(jù)處理。Kafka 按主題對數(shù)據(jù)進(jìn)行分類存儲,每個主題可擴(kuò)展成多個分區(qū),并能將其部署在集群的各個服務(wù)器上,以確保數(shù)據(jù)安全性。 Kafka 還支持副本模式,能夠設(shè)置分區(qū)的副本數(shù),通過將Flume 收集的模擬數(shù)據(jù)送入已經(jīng)創(chuàng)建的日志主題中,可指定主題分區(qū)數(shù)和副本數(shù)。
系統(tǒng)總體功能架構(gòu)如圖2 所示,按照功能模塊可劃分為數(shù)據(jù)獲取、數(shù)據(jù)分析整理、熱力圖顯示等。
圖2 系統(tǒng)總體功能架構(gòu)圖Fig. 2 Overall functional architecture diagram of the system
數(shù)據(jù)分析整理功能設(shè)計流程如圖3 所示。 圖3中,將獲取的數(shù)據(jù)源信息發(fā)送到Kafka 集群中進(jìn)行緩存,依據(jù)主題Kafka 對數(shù)據(jù)進(jìn)行維護(hù)管理,等待Storm 集群主動拉取數(shù)據(jù)進(jìn)行統(tǒng)計分析,其中,Zookeeper 集群主要負(fù)責(zé)對Storm 集群及Kafka 集群的狀態(tài)進(jìn)行維護(hù)管理。 ZK 中的數(shù)據(jù)要對接Storm集群實時處理框架,Storm 接收到數(shù)據(jù)后通過bolt 來進(jìn)行相應(yīng)的處理,處理后的數(shù)據(jù)寫入數(shù)據(jù)庫、即DB中。
圖3 數(shù)據(jù)分析整理功能設(shè)計流程圖Fig. 3 Flow chart of data analysis and arrangement function design
熱力圖顯示功能設(shè)計流程如圖4 所示。 在圖4中,先對獲取的熱力圖信息進(jìn)行檢測,在獲得數(shù)據(jù)熱力點信息及運動目標(biāo)坐標(biāo)具體位置后繪制熱力圖,再在高德地圖上創(chuàng)建熱力圖顯示,就可以實時查詢區(qū)域內(nèi)的涉犯罪人流量情況[4]。
圖4 熱力圖顯示功能設(shè)計流程圖Fig. 4 Flow chart of thermal map display function design
2.4.1 數(shù)據(jù)庫E-R 圖設(shè)計
E-R 關(guān)系圖如圖5 所示。 MySQL 數(shù)據(jù)庫系統(tǒng)可根據(jù)平臺數(shù)據(jù)信息將數(shù)據(jù)信息進(jìn)行實體劃分,并賦予信息之間相互的聯(lián)系。
圖5 E-R 關(guān)系圖Fig. 5 E-R diagram
2.4.2 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計
主數(shù)據(jù)表見表1。 由E-R 關(guān)系圖,建立與主功能模塊相關(guān)的包括系統(tǒng)登錄數(shù)據(jù)表、數(shù)據(jù)信息抓取數(shù)據(jù)表、數(shù)據(jù)信息整理數(shù)據(jù)表、數(shù)據(jù)推送數(shù)據(jù)表等在內(nèi)的數(shù)據(jù)表。
表1 主數(shù)據(jù)表Tab. 1 Master data table
3.1.1 熱力點坐標(biāo)獲取
Logstash 信息獲取框架如圖6 所示,Logstash 是一個開源的服務(wù)器端數(shù)據(jù)處理管道,可以從不同數(shù)據(jù)源獲取數(shù)據(jù),能進(jìn)行轉(zhuǎn)換并將數(shù)據(jù)發(fā)送到Elasticsearch 中[5]。 數(shù)據(jù)獲取模塊主要是對本系統(tǒng)進(jìn)行人流數(shù)據(jù)信息的獲取,通過Logstash 技術(shù)獲取涉犯罪人數(shù)據(jù)源,再將采集到的涉犯罪人信息傳輸?shù)较到y(tǒng)服務(wù)器的數(shù)據(jù)庫進(jìn)行存儲[6]。
圖6 Logstash 信息獲取框架Fig. 6 Logstash information acquisition framework
3.1.2 熱力點的處理
采集到涉犯罪人信息后,將涉犯罪人信息中的數(shù)據(jù)信息整合到二維坐標(biāo)點x,y。 因數(shù)據(jù)信息變化較大,數(shù)據(jù)間的信息分布并不是很均勻,所以第一時間要對全部熱力點數(shù)據(jù)做預(yù)處理[7],具體如下:
(1)確認(rèn)所要檢測的數(shù)據(jù),以及對應(yīng)的各熱力點區(qū)域信息的具體位置,查看所要檢測數(shù)據(jù)的熱力圖區(qū)域信息數(shù)據(jù)信息與邊界位置是否重合,并檢查導(dǎo)出的數(shù)據(jù)熱力圖邊界位置是否完全覆蓋了此檢測區(qū)域內(nèi)所有熱力點信息。
(2)對那些即將被檢測的目標(biāo)物體進(jìn)行準(zhǔn)確有效的區(qū)分,通過收集熱力點等信息進(jìn)行檢測并制作出熱力圖。
(3)將所需要獲取的數(shù)據(jù)信息發(fā)送到Kafka 集群的緩存主題中,并對其進(jìn)行實時數(shù)據(jù)信息緩存。
3.1.3 熱力點的生成
得到二維坐標(biāo)點x,y相對具體位置信息后,進(jìn)一步運算生成熱力圖。 研究給出的生成方法流程具體如下。
(1)獲取區(qū)域的像元熱力值人群聚集對比分析。 通過Storm 技術(shù)對所需要采集到的連續(xù)熱力圖大數(shù)據(jù)進(jìn)行分析,準(zhǔn)確求得出其平均值[8]。 利用式(1)計算得出每個區(qū)域的熱力均值:
其中,H表示涉油氣區(qū)熱力均值;T表示所統(tǒng)計的時間段;Xt表示不同時間涉油氣區(qū)內(nèi)像元熱力值。
(2)人群聚集密度分析。 人群密度對于進(jìn)行涉油氣犯罪監(jiān)測評價尤為重要,過高的人群密度隨時都可能會誘發(fā)各種風(fēng)險,帶來一系列潛在社會安全隱患。 為了便于涉油氣企業(yè)更精準(zhǔn)分析國內(nèi)涉油氣區(qū)的人群規(guī)模及其熱力點聚集情況,需要計算出不同涉油氣區(qū)的人群熱度指數(shù)分布[9]。 此處需用到的數(shù)學(xué)公式如下:
其中,P表示人群熱度指數(shù);Ht是根據(jù)式(1)計算出的不同時間段的熱力均值;S是涉油氣區(qū)域像元面積;k為計算系數(shù)。
研究開發(fā)環(huán)境具體見表2,本檢測系統(tǒng)主要是依據(jù)Java 開發(fā)語言進(jìn)行各功能的設(shè)計與實現(xiàn)的,是在戴爾i7-8265U CPU,32 GB RAM 處理器搭載Windows10 系統(tǒng)環(huán)境下進(jìn)行的。
表2 開發(fā)環(huán)境配置表Tab. 2 Development environment configuration table
Java 開發(fā)語言具有高簡潔性、高穩(wěn)定性、高安全性、高適應(yīng)性以及多平臺高兼容性等優(yōu)點,是計算機(jī)軟件開發(fā)的首選語言,編程人員可以從系統(tǒng)直接調(diào)用一些常用的語句和函數(shù),減少了軟件編程的復(fù)雜性。
3.3.1 數(shù)據(jù)信息獲取功能
數(shù)據(jù)信息獲取實現(xiàn)如圖7 所示,本系統(tǒng)實現(xiàn)基礎(chǔ)部分就是涉犯罪人數(shù)據(jù)的獲取,該功能可以對本檢測系統(tǒng)進(jìn)行人流數(shù)據(jù)信息的獲取,主要采用Logstash 技術(shù)獲取涉犯罪人數(shù)據(jù)源,再將采集到的信息傳輸?shù)较到y(tǒng)服務(wù)器數(shù)據(jù)庫進(jìn)行存儲[10]。
圖7 數(shù)據(jù)信息獲取功能的實現(xiàn)Fig. 7 The realization of data information acquisition function
3.3.2 數(shù)據(jù)信息存儲功能
數(shù)據(jù)信息存儲實現(xiàn)如圖8 所示,Storm 接收到數(shù)據(jù)后通過Bolt 進(jìn)行相應(yīng)的處理,將處理后的數(shù)據(jù)寫入MySQL 數(shù)據(jù)庫中。
圖8 數(shù)據(jù)信息存儲功能的實現(xiàn)Fig. 8 The realization of data information storage function
3.3.3 數(shù)據(jù)實時分析整理功能
數(shù)據(jù)實時分析整理實現(xiàn)如圖9 所示,此功能主要利用Storm 技術(shù)實現(xiàn)對數(shù)據(jù)信息的實時分析整理。
圖9 數(shù)據(jù)實時分析整理功能的實現(xiàn)Fig. 9 Realization of data real-time analysis and collation function
3.3.4 熱力圖實時顯示功能
熱力圖實時顯示功能主要是根據(jù)所獲得的熱力點信息以及運動目標(biāo)具體位置去繪制熱力圖,然后在高德地圖上創(chuàng)建熱力圖的顯示。
系統(tǒng)測試環(huán)境參見表2,研究選用的測試方案具體如下。
(1)功能模塊測試。 數(shù)據(jù)獲取功能模塊測試見表3,對系統(tǒng)中每個功能單元進(jìn)行詳細(xì)測試,檢測每個需求功能是否能實現(xiàn)。
表3 數(shù)據(jù)獲取功能模塊測試表Tab. 3 Data acquisition functional module test table
(2)集成模塊測試。 數(shù)據(jù)實時分析整理功能模塊測試見表4,將各角色具有的功能單元模塊放在一起,進(jìn)行檢查、測試。
表4 數(shù)據(jù)實時分析整理功能模塊測試表Tab. 4 Functional module test table of data real-time analysis and collation
(3)驗收測試。 熱力圖顯示功能模塊測試見表5,將系統(tǒng)交付測試專業(yè)人員及用戶進(jìn)行共同測試、使用,測試系統(tǒng)整體運行、使用情況。
表5 熱力圖顯示功能模塊測試表Tab. 5 Heat map display functional module test table
本文提出的基于Storm 的涉油氣犯罪實時檢測系統(tǒng)的總體架構(gòu),利用熱力圖大數(shù)據(jù)方法對涉油氣企業(yè)所在區(qū)域范圍內(nèi)的人群分布進(jìn)行研究統(tǒng)計,系統(tǒng)分析了涉油氣企業(yè)所在區(qū)域人群熱度指數(shù)的問題,此人群熱度指數(shù)可以很直觀地反映區(qū)域內(nèi)人群密度的分布情況,實現(xiàn)了熱力值的實時顯示。 經(jīng)系統(tǒng)測試,驗證了此方法有助于提高數(shù)據(jù)處理的準(zhǔn)確率以及效率,加快了系統(tǒng)的運行時間。