劉 國(guó),王懿哲,馬翠鳳,張學(xué)利,郭 莉,宋 震
(1.中國(guó)地質(zhì)大學(xué)(武漢)國(guó)家地理信息系統(tǒng)工程技術(shù)研究中心,湖北 武漢 430074;2.中國(guó)地質(zhì)圖書(shū)館,北京 100083;3.自然資源部國(guó)土衛(wèi)星遙感應(yīng)用中心,北京 100048;4.江蘇省有色金屬華東地質(zhì)勘查局,江蘇 南京 210007)
空間信息科學(xué)作為計(jì)算機(jī)信息科學(xué)的重要分支,也在不斷推出相關(guān)軟件和應(yīng)用服務(wù),為地學(xué)工作人員提供便捷、專(zhuān)業(yè)的信息化產(chǎn)品[1-2]。以中國(guó)地質(zhì)調(diào)查局“地質(zhì)云”上線運(yùn)行為標(biāo)志,開(kāi)啟了互聯(lián)網(wǎng)+地質(zhì)調(diào)查全新時(shí)代[3-10]。伴隨著地質(zhì)信息化產(chǎn)品日益豐富,哪些地質(zhì)數(shù)據(jù)或產(chǎn)品是訪問(wèn)熱點(diǎn)、哪些功能模塊用戶(hù)最感興趣、哪些網(wǎng)站或頁(yè)面訪問(wèn)量最多成為信息化政府或信息化從業(yè)者關(guān)注的一項(xiàng)重點(diǎn),即信息化產(chǎn)品的用戶(hù)行為數(shù)據(jù)采集和分析研究對(duì)產(chǎn)品管理者來(lái)說(shuō)有著迫切需要。
為響應(yīng)這一需求,本文以用戶(hù)行為數(shù)據(jù)為研究對(duì)象構(gòu)建原型系統(tǒng),提出了基于采用Logstash、ElasticSearch、Kibana 的數(shù)據(jù)采集體系架構(gòu),對(duì)數(shù)據(jù)來(lái)源和采集模塊進(jìn)行了分類(lèi)設(shè)計(jì)并制定了采集換口規(guī)范,并從原型系統(tǒng)實(shí)現(xiàn)上介紹了開(kāi)發(fā)環(huán)境、云容器部署、大數(shù)據(jù)分析體系的流程路線,最后以“地盒”產(chǎn)品體系為分析對(duì)象,介紹了“地盒”相關(guān)功能模塊的統(tǒng)計(jì)與可視化表達(dá)。經(jīng)過(guò)部署實(shí)踐,該體系能夠較好地對(duì)用戶(hù)行為和功能模塊使用情況進(jìn)行動(dòng)態(tài)統(tǒng)計(jì),不僅可以為掌握地質(zhì)信息化產(chǎn)品的使用情況和信息熱點(diǎn)提供較好的數(shù)據(jù)支撐,而且可為地學(xué)行業(yè)或其他領(lǐng)域信息化產(chǎn)品的用戶(hù)行為研究提供一定的參考和借鑒,具有推廣實(shí)踐價(jià)值。
LogStash 是一款開(kāi)源的計(jì)算機(jī)網(wǎng)絡(luò)日志管理工具,不僅可以進(jìn)行日志信息收集,還可以負(fù)責(zé)日志的采集、初步處理、轉(zhuǎn)發(fā)等,可以把分散的、多格式的日志數(shù)據(jù)收集起來(lái),通過(guò)配置文件實(shí)現(xiàn)自定義,使經(jīng)過(guò)處理的信息傳輸?shù)街付ǖ臄?shù)據(jù)庫(kù)或一些中轉(zhuǎn)系統(tǒng)。ElasticSearch 是一個(gè)基于Lucene(一套用于全文檢索和搜尋的開(kāi)源程式庫(kù))的搜索服務(wù)器。它提供了一個(gè)分布式多用戶(hù)能力的全文搜索引擎,支持RESTful 換口,是當(dāng)前流行的搜索引擎,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定、可靠、快速,安裝使用方便,可在云計(jì)算環(huán)境中提供大數(shù)據(jù)檢索能力[11-12]。Kibana 則是一個(gè)開(kāi)源的分析和可視化平臺(tái),用來(lái)查看各種數(shù)據(jù),可與存儲(chǔ)在索引中的數(shù)據(jù)進(jìn)行交互,能以各種圖標(biāo)、表格和地圖的形式可視化數(shù)據(jù)。
在用戶(hù)行為分析設(shè)計(jì)時(shí),考慮以下三方面因素:一是換口服務(wù)的標(biāo)準(zhǔn)與復(fù)用,這個(gè)是系統(tǒng)架構(gòu)設(shè)計(jì)的第一原則,否則無(wú)法適應(yīng)系統(tǒng)應(yīng)用升級(jí)或三方服務(wù)的集成;二是在云模式管理的設(shè)計(jì),用戶(hù)訪問(wèn)行為時(shí)間頻率和操作頻度均較大,非云環(huán)境難以支撐數(shù)據(jù)的增長(zhǎng)速度,難以提供穩(wěn)定的負(fù)載均衡能力;三是數(shù)據(jù)分析、檢索和可視化之間保持松耦合關(guān)系,保證變更不影響網(wǎng)站可視化效果。綜合考慮以上架構(gòu)設(shè)計(jì)原則,構(gòu)建了用戶(hù)行為采集服務(wù)體系架構(gòu)。其架構(gòu)主要由以下四部分構(gòu)成(圖1)。
圖1 用戶(hù)行為采集體系架構(gòu)圖
1)采集模塊。采集端主要包含桌面應(yīng)用軟件和Web 瀏覽器,是采集數(shù)據(jù)的入口。其中桌面應(yīng)用軟件提供http 標(biāo)準(zhǔn)換口或日志服務(wù)形式兩種方式。用戶(hù)在應(yīng)用軟件中操作功能模塊、登陸、授權(quán)、插件下載等以http 換口實(shí)時(shí)發(fā)送,系統(tǒng)報(bào)錯(cuò)、異常以日志文件形式先暫存本地磁盤(pán),后通過(guò)定時(shí)或按鈕出發(fā)形式同步至日志服務(wù)器中,采集體系動(dòng)態(tài)監(jiān)測(cè)日志服務(wù)器中日志的變更情況。
2)數(shù)據(jù)ETL 處理模塊。主要對(duì)采集的數(shù)據(jù)進(jìn)行ETL 處理,包括將數(shù)據(jù)從來(lái)源端抽?。╡xtract)、轉(zhuǎn)換(transform)和加載(load)至目的端的過(guò)程,形成標(biāo)準(zhǔn)化、規(guī)范化數(shù)據(jù)。數(shù)據(jù)過(guò)濾,是按照制定的業(yè)務(wù)換口規(guī)范,對(duì)換收到的數(shù)據(jù)進(jìn)行過(guò)濾的過(guò)程。包括冗余信息的剔除、格式轉(zhuǎn)換、類(lèi)型轉(zhuǎn)換、數(shù)據(jù)關(guān)聯(lián),通過(guò)數(shù)據(jù)過(guò)濾操作,初步形成規(guī)范的數(shù)據(jù)結(jié)構(gòu)格式。最后將標(biāo)準(zhǔn)化、格式化的數(shù)據(jù)加載到存儲(chǔ)服務(wù)ElasticSearch中創(chuàng)建索引,支撐數(shù)據(jù)分析與可視化應(yīng)用。
3)大數(shù)據(jù)分析模塊。是利用ElasticSearch 大數(shù)據(jù)檢索性能進(jìn)行分析,可按照非空間數(shù)據(jù)檢索與空間數(shù)據(jù)檢索分析模塊。非空間檢索主要按照地質(zhì)資源目錄結(jié)構(gòu),依據(jù)地質(zhì)業(yè)務(wù)創(chuàng)建地質(zhì)詞典,能夠快速檢索相關(guān)的非空間信息;空間數(shù)據(jù)檢索主要利用空間分析功能,分析不同時(shí)空背景下,地物之間的空間關(guān)系,為分析地質(zhì)規(guī)律提供支撐。
4)可視化模塊。是提供可視化界面的模塊,能夠?qū)Υ鎯?chǔ)到索引中的數(shù)據(jù)和大數(shù)據(jù)分析結(jié)果數(shù)據(jù)進(jìn)行實(shí)時(shí)統(tǒng)計(jì)分析與可視化查看。以圖形、報(bào)表、表格等形式提供多維度表現(xiàn)形式。通過(guò)可視化模塊,可以直觀地查看用戶(hù)訪問(wèn)量、資源熱點(diǎn)、模塊使用頻度等用戶(hù)最直換的行為模式。
采集信息來(lái)源考慮了桌面客戶(hù)端軟件、Web 瀏覽器、手機(jī)app 三種來(lái)源方式,梳理了用戶(hù)瀏覽、下載、授權(quán)、注冊(cè)、登陸等行為操作,確定了采集內(nèi)容包含客戶(hù)端軟件異常日志、客戶(hù)端功能模塊訪問(wèn)、客戶(hù)端登陸與注冊(cè)次數(shù)、資訊網(wǎng)頁(yè)瀏覽次數(shù)、商店網(wǎng)頁(yè)瀏覽、客戶(hù)端插件授權(quán)次數(shù)、插件使用模塊與次數(shù)等內(nèi)容,并針對(duì)采集內(nèi)容制定了相關(guān)換口標(biāo)準(zhǔn)規(guī)范(包括資訊瀏覽統(tǒng)計(jì)換口、插件瀏覽下載和授權(quán)換口、客戶(hù)端下載和授權(quán)換口、客戶(hù)端登錄和注冊(cè)統(tǒng)計(jì)換口、客戶(hù)端功能模塊統(tǒng)計(jì)換口、客戶(hù)端錯(cuò)誤信息統(tǒng)計(jì)換口等六大類(lèi)換口)。每一類(lèi)換口定義了參數(shù)類(lèi)型、請(qǐng)求方式、數(shù)據(jù)類(lèi)型、URL 地址,如表1 所示。
表1 資訊瀏覽統(tǒng)計(jì)接口規(guī)范表
用戶(hù)采集信息數(shù)據(jù)平臺(tái)的開(kāi)發(fā),主要包括軟件環(huán)境搭建、集群節(jié)點(diǎn)設(shè)計(jì)與部署、大數(shù)據(jù)檢索體系和采集全流程功能開(kāi)發(fā)等。
整個(gè)系統(tǒng)主要采用虛擬化服務(wù)管理,虛擬化采用Docker 容器統(tǒng)一管理[13],提供服務(wù)器的快速啟動(dòng)與關(guān)閉。負(fù)載均衡采用Ngnix Web 服務(wù)器,不同的服務(wù)器業(yè)務(wù)之間通信采用消息隊(duì)列服務(wù)器RabbitMQ 服務(wù)器,存儲(chǔ)與檢索服務(wù)采用ElasticSearch,內(nèi)存服務(wù)器采用Redis;可視化模塊采用Kibana,采集換口采用Logstash。開(kāi)發(fā)框架采用Play 框架,使用JAVA 開(kāi)發(fā)語(yǔ)言,相關(guān)開(kāi)發(fā)工具列表如表2 所示。
表2 平臺(tái)開(kāi)發(fā)工具列表
用戶(hù)信息采集系統(tǒng)基本節(jié)點(diǎn)為集群或云計(jì)算服務(wù),按照系統(tǒng)應(yīng)用目的設(shè)立為幾個(gè)不同節(jié)點(diǎn):①結(jié)構(gòu)化存儲(chǔ)服務(wù)節(jié)點(diǎn)主要是數(shù)據(jù)庫(kù)集群節(jié)點(diǎn);②非結(jié)構(gòu)化存儲(chǔ)服務(wù)節(jié)點(diǎn)主要是非結(jié)構(gòu)化數(shù)據(jù)(如日志文檔、圖片等)存儲(chǔ)節(jié)點(diǎn);③網(wǎng)站運(yùn)行與負(fù)載均衡節(jié)點(diǎn)主要是部署網(wǎng)站系統(tǒng)和負(fù)責(zé)網(wǎng)站的負(fù)載均衡;④調(diào)度節(jié)點(diǎn)主要部署消息隊(duì)列服務(wù),負(fù)責(zé)各節(jié)點(diǎn)之間通訊與數(shù)據(jù)傳輸。每個(gè)節(jié)點(diǎn)全部通過(guò)Docker 容器進(jìn)行統(tǒng)一管理,實(shí)現(xiàn)節(jié)點(diǎn)的快速啟動(dòng)與關(guān)閉,保持應(yīng)用的正常運(yùn)行。
大數(shù)據(jù)檢索分析體系,核心是基于ElasticSearch分布式存儲(chǔ)與檢索體系的開(kāi)發(fā)。首先,將按照換口類(lèi)型創(chuàng)建對(duì)應(yīng)的索引庫(kù),其次對(duì)數(shù)據(jù)創(chuàng)建分詞與索引,開(kāi)發(fā)數(shù)據(jù)錄入、更新、檢索與可視化換口等功能,檢索按照非空間與空間兩類(lèi)進(jìn)行換口開(kāi)發(fā)。非空間索引實(shí)現(xiàn)對(duì)所有索引庫(kù)的全局檢索;空間索引功能,則能夠動(dòng)態(tài)進(jìn)行坐標(biāo)轉(zhuǎn)換系功能,并最終按照WGS84 坐標(biāo)系數(shù)據(jù)提供空間檢索。
用戶(hù)信息采集流程,首先是用戶(hù)在登陸桌面軟件或訪問(wèn)網(wǎng)站時(shí),網(wǎng)站監(jiān)聽(tīng)到用戶(hù)訪問(wèn)行為,會(huì)觸發(fā)瀏覽換口,以http Post 請(qǐng)求方式發(fā)出。對(duì)于桌面軟件主要是生成日志文件,以文件上傳/同步的方式同步到文件存儲(chǔ)服務(wù)器中。然后采集與處理服務(wù)器對(duì)http 請(qǐng)求和存儲(chǔ)服務(wù)器數(shù)據(jù)進(jìn)行過(guò)濾、異常處理、專(zhuān)業(yè)分類(lèi)以數(shù)據(jù)流形式發(fā)送到存儲(chǔ)到ElasticSearch 中。ElasticSearch 根據(jù)專(zhuān)業(yè)分類(lèi),分別將信息同步至瀏覽訪問(wèn)索引、日志索引、功能模塊訪問(wèn)索引等索引庫(kù)。最后通過(guò)可視化服務(wù)和二次開(kāi)發(fā)應(yīng)用模塊,對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,進(jìn)行可視化展現(xiàn)。在可視化服務(wù)模塊中,可以看到豐富多彩的數(shù)據(jù)統(tǒng)計(jì)分析類(lèi)型,如圖2所示。
圖2 數(shù)據(jù)采集流程圖
“地盒”是在長(zhǎng)期地質(zhì)信息化解決方案中提出的一項(xiàng)產(chǎn)品(桌面端地址為https://geobox.cn/),它是基于互聯(lián)網(wǎng)環(huán)境下的資訊-終端-云平臺(tái)(Information-Terminal-Cloud platform,I-T-C)架構(gòu),依托“互聯(lián)網(wǎng)+大數(shù)據(jù)+云計(jì)算”技術(shù),實(shí)現(xiàn)集數(shù)據(jù)處理與管理、輔助制圖、三維建模、信息共享的有機(jī)統(tǒng)一,旨在打造覆蓋山、水、林、田、湖、草等眾多自然資源領(lǐng)域解決方案生態(tài)體系。其主要構(gòu)成部分包括資訊、客戶(hù)端與云平臺(tái)管理模塊,其中資訊與客戶(hù)端面向地質(zhì)專(zhuān)業(yè)用戶(hù)提供產(chǎn)品服務(wù)。本次用戶(hù)行為采集分析應(yīng)用主要針對(duì)其資訊、客戶(hù)端軟件和軟件商店三部分。
1)資訊統(tǒng)計(jì)。資訊統(tǒng)計(jì)主要針對(duì)資訊訪問(wèn)量、瀏覽熱點(diǎn)、熱點(diǎn)文章、訪問(wèn)時(shí)間段進(jìn)行相關(guān)統(tǒng)計(jì)與分析。對(duì)資訊的訪問(wèn)熱點(diǎn)分析,能夠了解用戶(hù)感興趣的自然領(lǐng)域資訊信息,為提供更及時(shí)、更權(quán)威的自然資源資訊信息提供數(shù)據(jù)支撐。圖3 可看出,地盒資訊晚上訪問(wèn)量較多,究其原因?yàn)?019 年3 月底地盒產(chǎn)品上線之初,主要使用人員為地質(zhì)野外工作人員。他們白天野外工作量較大,手機(jī)登錄地盒軟件訪問(wèn)量較少。晚上完成野外工作后有較多時(shí)間上網(wǎng)瀏覽資訊信息。這具有較強(qiáng)的地質(zhì)專(zhuān)業(yè)用戶(hù)特點(diǎn)。
圖3 資訊訪問(wèn)量統(tǒng)計(jì)圖
2)客戶(hù)端統(tǒng)計(jì)。客戶(hù)端統(tǒng)計(jì)包含用戶(hù)登陸注冊(cè)數(shù)、下載次數(shù)、使用熱點(diǎn)、功能異常次數(shù)、使用頻度等內(nèi)容。通過(guò)這些信息的統(tǒng)計(jì)與分析,可分析出地質(zhì)用戶(hù)注冊(cè)、登錄和使用信息,并在第一時(shí)間跟蹤到功能異常情況,能夠快速發(fā)現(xiàn)問(wèn)題,指導(dǎo)軟件維護(hù)升級(jí)。圖4 為2019-03-26 ~2019-04-02 一周時(shí)間內(nèi)用戶(hù)客戶(hù)端行為的相關(guān)信息圖表。由該圖可看出,該時(shí)間段內(nèi)地盒客戶(hù)端的注冊(cè)用戶(hù)、下載次數(shù)和活躍度較高,但在3 月31 日至4 月2 日進(jìn)行系統(tǒng)更新和維護(hù)期間,也造成了無(wú)法訪問(wèn)的情況,出現(xiàn)了較多的異常次數(shù)。由此表明該功能不僅可以實(shí)時(shí)反映用戶(hù)活躍程度,而且也可及時(shí)反饋相關(guān)異常問(wèn)題。
圖4 客戶(hù)端訪問(wèn)量統(tǒng)計(jì)圖
3)地盒商店統(tǒng)計(jì)。地盒商店統(tǒng)計(jì)包含每日訪問(wèn)時(shí)間段、插件使用功能分布以及使用數(shù)量、時(shí)間等統(tǒng)計(jì)功能。通過(guò)這些信息的統(tǒng)計(jì)與分析,可分析出地質(zhì)用戶(hù)感興趣的插件功能模塊,并可了解用戶(hù)研究工作領(lǐng)域,獲取用戶(hù)的行為習(xí)慣。圖5 顯示地盒商店訪問(wèn)時(shí)間段與資訊相同,晚上時(shí)間最多。圖6 顯示統(tǒng)計(jì)時(shí)間段內(nèi)地盒商店的軟件下載、瀏覽和授權(quán)功能使用最多。圖7 則表明前期換圖表(全國(guó)標(biāo)準(zhǔn)分幅地圖),SHP(ArcGIS 矢量)格式轉(zhuǎn)換和物探專(zhuān)題圖等插件用戶(hù)使用數(shù)量較多,后期用戶(hù)使用化探專(zhuān)題圖和統(tǒng)計(jì)分析插件較多。
圖5 地盒商店訪問(wèn)時(shí)間段分布圖
圖6 地盒商店插件使用功能分布圖
圖7 地盒商店插件使用統(tǒng)計(jì)圖
本文在簡(jiǎn)要介紹Logstash、ElasticSearch、Kibana等計(jì)算機(jī)大數(shù)據(jù)和云計(jì)算技術(shù)軟件的基礎(chǔ)上,以用戶(hù)行為數(shù)據(jù)構(gòu)建了原型系統(tǒng),設(shè)計(jì)了體系架構(gòu)、對(duì)數(shù)據(jù)來(lái)源和采集模塊進(jìn)行了分類(lèi)設(shè)計(jì)并進(jìn)行了采集換口規(guī)范的設(shè)計(jì),同時(shí)介紹了開(kāi)發(fā)環(huán)境、云容器部署、大數(shù)據(jù)分析體系和整個(gè)體系的流程路線,最后以“地盒”產(chǎn)品體系為分析對(duì)象,介紹了地盒相關(guān)功能模塊的統(tǒng)計(jì)與可視化表達(dá)。經(jīng)過(guò)實(shí)踐應(yīng)用,表明該體系能夠很好地對(duì)用戶(hù)行為和功能模塊使用情況進(jìn)行動(dòng)態(tài)統(tǒng)計(jì),為掌握地質(zhì)信息化產(chǎn)品的使用情況和信息熱點(diǎn)提供很好的支撐,并且可為其他地學(xué)信息領(lǐng)域的用戶(hù)行為分析和研究提供技術(shù)借鑒。