






摘要:2020年初,新冠肺炎大爆發,各地防疫形式嚴峻,對新冠肺炎的趨勢實時監控,對于疫情發展的態勢,成為公眾所迫切關心的話題。針對新冠疫情的實時數據匯總統計并以動態化形式展示數據信息設計一種可視化數據管理系統,通過對新冠肺炎數據進行可視分析,以直觀的圖表形式展示疫情動態變化趨勢。針對新冠疫情數據進行數據采集、數據結構化、數據處理等設計一個可視化模型,以Heroku新冠疫情網站發布數據進行數據統計,形成每日新冠肺炎新增、死亡、治愈數量狀態,并以地圖的形式動態循環展現每日變化圖,從而實現基于新冠疫情的可視化數據管理系統。
關鍵詞:可視化;數據管理;新冠肺炎;疫情監控
0 引言
2020年初,新型冠狀病毒感染的肺炎(COVID-19)的爆發,引起了全世界的關注。疫情的實時動態數據也倍受公眾關注,通過肺炎確診數量、地區的變化來加強對地區的管控程度并作出及時調整至關重要。因此,基于COVID-19的可視化數據管理系統將成為一種解決方法。基于新冠病毒的實時動態的可視化數據管理系統將實現對新冠病毒數據的采集、結構化、存儲、清洗、統計、最后展示。
1 系統需求分析
本系統的設計旨在開發一個可視化數據管理系統,針對數據模型定義,數據采集,數據處理,數據可視化均為可視化操作,實現對新冠肺炎病毒的采集與顯示功能,并以地圖的形式動態循環展現每日變化圖。該系統主要根據Heroku發布的全球新冠肺炎數據進行實時采集,對采集數據進行清洗轉換,再對整理好的數據進行統計,最后使用動態數據圖進行展示。
2 系統設計
本系統共有4個模塊,分別是:數據模型、數據采集、數據處理、數據可視化。每個模塊對應不同的功能。功能模塊設計圖如下:
2.1數據模型
數據模型的實質是數據元素和實體的定義,可以理解為元數據管理,為新冠肺炎數據提供元數據定義,負責新冠肺炎數據數據的存取。
在當下大數據時代,集群化的數據存儲方案將會是理想的選擇。
本系統的在數據模型中本系統采用集成HDFS,HBase,MongoDB三大數據存儲系統的方式,目的在于支持不同類型的數據存儲,包括文件存儲(HDFS)、結構化數據存儲(HBase)、鍵值對存儲(MongoDB)。HBase本身就運行在HDFS之上,使用列族數據庫存儲,對提高存儲訪問效率有所提高。
數據采集的數據數據模型,首先應當區分國別(country),對于不同的國家還應該定義國家代碼(country_code),其次是不同省市(province)。新冠病毒的確診數據(confirmed)、死亡數據(deaths)、康復數據(recovered)是衡量新冠病毒動態的必要指標。如下圖所示為新冠肺炎的數據模型定義:
由于在后續過程中還會涉及統計的內容,因此對于統計的數據模型也應當預先定義完成。統計模型包括國別(country)、國家代碼(country_code)、確診數(confrimed)、死亡數(deaths)、康復數(recovered)。如下圖所示為新冠肺炎匯總的數據模型定義:
2.2數據采集
數據采集又稱為“數據獲取”或“數據收集”。數據采集有多種多樣的方式可以實現,例如文件解析采集、數據錄入、數據庫采集、網絡爬蟲等等。每種采集方式的針對性都非常強,對于不同的場景,采集方式的使用可能會有較大差異。
2.2.1網絡爬蟲
對于新冠肺炎數據的采集,本系統以采集公共互聯網的網頁信息的形式進行。網頁采集的形式大多數都是基于網絡爬蟲。網絡爬蟲是按照一定規則,自動地不抓取互聯網信息的一種程序或者腳本。網絡爬蟲工作時是從初始的地址開始,找到這些初始網頁上鏈接到其他網頁的地址列表,將它們存入待爬的地址表中,然后對地址表中的每個地址根據一定策略逐個搜索,從網頁上下載、保存網頁信息,分析并獲取網頁中符合條件的新的網頁地址鏈接。
基于網絡爬蟲的原理,我們可以自定義爬蟲爬取的網頁地址、爬取深度、爬取內容等。
2.2.2數據源
本系統以及模型所需數據來源于
https://coronavirus-tracker-api.herokuapp.com/#/網站,通過網站可查詢獲取到全球新冠肺炎確診總人數、死亡人數、康復人數、以及獲取最新的已確診病例,死亡和康復總數、還可通過地區獲取數據等。
網站給出了獲取數據的路徑,并且對返回的數據結構進行的解釋,對于新冠肺炎數據的采集,采集獲取到的數據均為Json數據格式。如圖所示為數據返回樣例和數據結構:
對于上圖所示數據結構,分為三個數據解析部分,一為確診(confirmed),二為死亡(deaths),三為康復(recovered)。針對三類數據進行解析,可得到一個對象數組,對于每一個對象,其鍵值對指明了對應數據字段含義以及數據。如下圖為對象數據內容:
2.2.3數據采集
為了保證數據的時效性,本系統定義了數據采集周期(定時器組件)、網絡爬蟲源(數據源組件)、數據解析腳本(js腳本)、以及數據存儲位置(數據源組件)等四部分。
1)定時器,設置采集任務啟動方式,可以設置定時(02:00)啟動,或間隔周期啟動(3600秒)。
2)數據源:網站,設置數據源網站信息,數據接口鏈接。
3)網絡爬蟲,設置爬蟲屬性,結果輸出變量。
4)JS腳本,解析爬取的數據,結構化,預處理。
5)目的表,設置數據存儲的目的表信息。
如圖6所示為數據采集的流程設計圖:
2.3數據處理
2.3.1計算框架
在數據處理,選擇一個合適的計算框架尤為重要。MapReduce分而治之的解決方式非常適合分布式系統架構,MapReduce從HDFS中讀出數據,進行分割后執行Map任務,將Map結果進行分區、排序、整理后傳入Reduce任務,Reduce任務將最后的結果處理后再寫入到HDFS中。
在數據處理中緩存的作用也尤其重要,Memcached高速緩存服務器在此的作用也就顯得不可或缺,對于全球省份的數據計算匯總,通過緩存數據庫查詢結果,減少數據庫訪問次數,提高動態Web應用的速度、提高可擴展性。
需要說明的是,大數據計算任務能被分割的前提條件是,待處理的數據集可以被分割成許多小的數據集,而且每個小的數據集又可以被并行處理計算,在新冠肺炎數據中,雖然我們只定義了兩個數據模型,但對于單條數據的異步執行也可將數據分割為更小的單位進行處理計算。
但在批量處理中,雖是按照事先設定的時間來啟動處理程序,但數據的產生速度也有較大的差異,如果讓數據處理系統持續的工作,服務器可能在某一時刻忙得不可開交,在另一個時刻可能又一直處于空閑。如何根據需要來通知MapReduce計算呢?
常用的方法是采用消息機制,消息可以理解為是一個數據結構,包含消息源、消息名、消息數據。消息系統的產品多種多樣,本文使用ActiveMQ來提供消息服務。
ActiveMQ是Apache開源系統,是依照JMS標準開發的。ActiveMQ的主要目標是在盡可能多的跨平臺和跨語言上提供一個統一的、標準的消息驅動的應用集成。雖然與其他系統相比其效率并不算高,但其高可靠性和可擴充性依然讓它稱為非常流行的消息服務系統。
2.3.2數據計算
基于新冠肺炎數據,數據采集部分已經得到數據質量相當純凈的數據,因此數據并不需要做清洗和轉換,但由于數據過于集中(此處理解為數據均為匯總數據),所以在數據庫中的數據并無法展示動態變化量。因此,要想在數據可視化階段做到對每日新增數據等數據的展示,采集的數據顯然是不能滿足的。
數據處理的目的在于對匯總數據進行計算,得出每日新增數據。由于數據采集部分的工作,存儲在數據庫中的數據均為匯總數據,通過對各個地區的每日數據分為確診、死亡、康復三類數據進行累加即可計算出全球數據變換趨勢。如下圖所示為數據處理設計流程圖:
在此設計流程中,同樣的定義了計時器,用于設計腳本執行周期,同時定義了源數據表(新冠肺炎數據表)以及目的表(新冠肺炎匯總表),對于數據獲取方式(迭代器)設置為增量,通過輪訓整個表數據,最后腳本將計算出相應數據并存儲至目的表中。
1)定時器,設置清洗任務啟動方式,可以是定時(02:00)啟動,或間隔周期啟動(3600秒)。2)源數據表,設置需要清洗數據的源數據表。3)迭代器,設置數據讀取方式,可以是全表或增量方式,設置迭代器的速度等。4)數據匯總,對迭代器讀取的每一條數據進行匯總處理,并數據匯總數據。5)目的數據表,匯總數據存儲表。
整個流程可以看作是數據倉庫的ETL過程,對數據表數據進行抽取,然后對數據進行轉換(統計過程),最后將數據加載回目的數據庫中。
綜上可根據不同用戶的需求,對數據進行不同的處理,可針對某一個地區,某一個時間,對不同的數據進行數據的清洗、轉換,靈活的得到用戶需求的數據。
2.4數據可視化
此系統使用ECharts進行可視化動圖開發,ECharts依賴于輕量級的ZRender類庫,通過其內部MVC封裝,實現圖形顯示、視圖渲染、動畫擴展和交互控制等,從而為用戶提供直觀、生動、可交互、可高度個性化定制的數據可視化圖表。
最終效果可供用戶在瀏覽器中進行動態閱覽,可視動圖將通過動畫形式讓用戶觀看,動圖日期變化的同時對應全球新冠肺炎的地區顏色也將發生變化,不同顏色代表疫情嚴重程度。
3 結語
本文基于大數據技術設計開發了一款COVID-19動態可視化數據管理系統,對COVID-19的動態監控具有較為重要的現實意義,一方面對新冠的變化趨勢進行展示,另一方面有利于對疫情的監管提供了一定價值的參考意義。在此基礎上,本系統還可針對其他數據進行類似的采集、處理、可視化展示。需要指出的是,該系統仍有很多不足之處,有待后續的完善。
參考文獻
[1]周中元,王菁.大數據挖掘技術與應用[M].北京:電子工業出版社,2019:9 -12,37.(ZHOU Z Y,WANG J. Big data mining technology and application [M].Beijing: Publishing House of Electronics Industry, 2019:9-12,37.)
[2]劉軍.Hadoop大數據處理[M].北京:人民郵電出版社,2013:66-70,123, 128-129,138.(LIU J.Hadoop Big Data Processing[M].Beijing:Posts & Telecom Press,2013:66-70,123,128-129,138.)
[3]劉鵬,張燕,何光威.大數據可視化[M].北京:電子工業出版社,2018:166- 169.(LIU P,ZHANG Y,HE G W. Big data visualization[M].Beijing: Publishing House of Electronics Industry,2018:166-169)
[4]黑馬程序員.數據清洗[M].北京:清華大學出版社,2020:68-92,179 -192.(HEI M C X Y. Data cleaning[M].Beijing:Tsinghua University Press,2020: 68-92,179-192.)
[5]楊凡,孫力群.面向第三方支付的校園消費大數據系統及其數據采集與預處理設計[J].電腦知識與技術,2020:2.(YANG F,SUN L Q. Design of campus consumption big data system for third-party payment and its data collection and preprocessing[J].Computer Knowledge and Technology, 2020:2.)
[6]聞雅,高志遠,王吉富,蔡雨軒,高晟珍,李瑞改.基于航班數據可視化系統的設計與實現[J].智能計算機與應用,2019(3):3-4.(WEN Y,GAO Z Y,WANG J F,CAI Y X,GAO S Z,LI R G. Design and Implementation of a Visualization System Based on Flight Data[J]. Intelligent Computer and Applications,2019: 3-4.)
[7]王兆益,周愛平.基于ECharts的數據可視化系統設計[J].計算機與網絡,2020:2.(WANG Z Y,ZHOU A P. Design on Data Visualization System Based on ECharts[J]. Computer and network,2020:2.)
作者簡介
蔣新,男,漢,1999年8月生,重慶榮昌人,本科,研究方向:大數據管理、數據可視化。