劉世龍 王新琪 吳通金 郭雁青 王薊皓
摘要:本文基于MYSQL與Echarts技術,進行了數據可視化系統設計與實現,將通過單片機采集的溫度、濕度、電壓、電流等信號,通過SQL數據庫進行清洗、處理、入庫,利用Echarts技術,將各類型的信號實現了可視化的展示,通過本系統的設計與應用,更好的完成了多源數據的管理監測。
關鍵詞:數據可視化;MYSQL;系統設計
中圖分類號:TP311.52?? 文獻標識碼:A?? 文章編號:1672-9129(2020)04-0034-01
Abstract:this article is based on MYSQL and Echarts technology, data visualization system design and implementation, will be collected by single chip microcomputer, such as temperature, humidity, voltage, current signal, through the SQL database for cleaning, handling, storage, using Echarts technology, will be to implement the visualization of each type of signal display, through the design and application of this system, better to complete the multi-source data management monitoring.
Key words:data visualization;MYSQL;The system design
引言:數據可視化已經成為了信息處理的必要工作。如何將獲取的信息進行更好的展示,是數據可視化研究的重點。本文中對于分布在不同網絡節點上的單片機所采集的各類型觀測數據進行管理和可視化展示,就其中詳細技術進行探討。
1 數據可視化系統設計
系統分為數據采集、存儲、可視化三個主要部分。采集階段,采用單片機獲取溫度、濕度、電壓、電流等節點數據,存儲階段,利用Python解析數據后,入庫MySQL中,通過搭建PHP+mysql的后臺服務進行數據清洗、分析和處理,區分日常記錄和閾值報警。可視化階段,利用Echarts技術開發可視化前端,實現B/S架構的客戶端界面,生成的圖像化報表和報警信息便于值班員監測處理。
2 關鍵技術
2.1數據采集。數據采集是通過單片機完成的。采集的數據包含多源異構類型的數據信息,例如:溫度、濕度、電壓、電流信號強度等。通過單片機采集到信息后,經過串口將數據傳輸至電腦中,存儲在構建的MYSQL數據庫中。同時,單片機預留了后續的擴展接口,對于發現數據異常或設備異常后,管理員可以交互式地通過直接點擊按鈕,操縱單片機上的模塊,進而控制機房或機房的服務器。
2.2數據處理與存儲。數據通過單片機采集完成后,需要進行解析才能入庫,此方面,作者團隊使用python對串口數據進行處理,完成字符串的解析,并將格式規整的數據寫入到MySQL數據庫。
本文中,數據采用開源免費的MYSQL數據庫,單表存儲量可達百萬級別,讀取速率達到毫秒級別,MySQL作為最早的一個數據庫管理系統,使用率和普及率都非常高,鑒于其始終開源的優點,具備很靈活的個性化修改能力。MySQL也是使用結構化查詢語言(SQL)實現數據庫的管理。長期以來,一直以速度、可靠性、適應性而著稱。
本文中數據庫具體的設計思想是:每一個節點接收到的每一條數據都存放在固定數據庫的同一張表上。實際工作中,系統單節點每天的數據量大約為1500多條、年度數據量約為55萬條,這樣的數據量而言,每年數據只需單獨存放一張表即可。這樣按年存放有利于數據的查詢和分析。
2.3數據可視化技術。數據的可視化主要是采用Echarts來展示數據,用到了DOM容器、grid組件、地理地圖組件以及ajax刷新軟件
根據項目實際需求,一個單片機可以同時采集多種類型的信息,僅生成一個圖表是不能滿足的要求的。因此需要想辦法在同一個頁面生成多張圖表。為此,需要準備一個DOM容器,通過參數確定多個圖表的相對位置,用一個setOption方法生成多個圖表,就需要在option中引入grid組件,單個grid內最多可以放置上下兩個X軸,左右兩個Y軸。在ECharts 3中單個 echarts 實例可以存在任意個grid組件,這意味著如果要增加單片機傳送的數據,只需增加grid組件即可,這為項目的擴展提供了可行之處。
單元節點數據可視化展示。每個單片機數據都展示在了同一個頁面。頁面中會詳細展示實時的監控情況,根據監控的數據情況是否符合規定,會出現警告或報警。
多元節點數據展可視化示,也就是多個單片機的總體展示。Echarts展示地圖也是比較方便的,引入相應的地圖插件即可。將單片機采集回來的經緯度信息展示在地圖上,根據節點范圍的大小可以任意放大或縮小地圖,使數據更加地直觀。今后,還將增加信號強度的實時動態展示,用信號強度搭建起一個虛擬的網絡,這也是“自組網”的一個直觀展示。
數據可視化刷新。在用Echarts實現MySQL數據庫的靜態展示之后,還需考慮實時動態刷新數據,這時就可以在頁面中采用Ajax方法。Ajax是一種使用現有標準的新方法,它最大的優點是在不重新加載整個頁面的情況下,可以與服務器交換數據并更新部分網頁內容。所以可以利用Ajax動態地從MySQL數據庫讀取數據加載到頁面中去,再利用setInterval()函數間隔調用Ajax以達到更新數據的目的。
2.4數據分析。進行數據分析。可視化只是數據展示的過程,對于實際應用來說,利用數據去進行分析和預測才是更有用的技術手段。設置數據判定和條件報警,目前初步設置了三種狀態標志,綠點表示節點一切正常、紅點表示存在異常情況。根據報警信息的不同,管理員可以清楚地了解機房的實時情況。
根據歷史數據進行分析預測。根據大數據的思想,研究數據并不能僅限于分析現有的數據,還要根據現有的數據進行趨勢的預測。多個節點多個時間段的數據聯系到一起將會變得非常有用。因此數據庫表至少會保留一年,以用于數據時間上的趨勢分析。
3 結語
隨著接入網絡的數據量的增加,對于數據的可視化展示已經變得非常必要,直觀的數據展示,能夠更好地從整體性上體現出數據信息的分布和發展規律,作為信息分析的必要手段,將更有助于進行決策支持。
參考文獻:
[1]王勇,王松,張紅英.基于B/S構架的網絡結構可視化系統設計與實現[J].計算機工程與應用,2020,56(11):230-237.
[2]張玉龍,丁錳.基于數據處理與可視化的信息分析系統設計[J].現代計算機,2019,(30):49-53.
[3]王志鵬,張麗瑤,陳思逸.面向工業生產的大數據管理與可視化系統設計[J].電子設計工程,2019,27(24):24-28.