前言:想要寫出一篇引人入勝的文章?我們特意為您整理了大數據下水資源管理系統設計淺析范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:針對現有水資源管理方式存在的數據孤島、數據質量低、利用率不高等問題和互聯網+的時代要求,基于大數據、云計算等技術,設計和實現了一個水資源管理系統。通過從異構的數據源采集各類水資源數據,在大數據中心進行數據的清洗、轉換、整合、分析和統計,然后利用柱狀圖、折線圖等多種圖形從不同的維度對水資源數據進行可視化展示,并通過五大系統模塊實現了對水資源的精細化管理,有助于構建資源節約型和環境友好型社會,具有良好的推廣價值和意義。
關鍵詞:大數據;云計算;水資源;可視化
1引言
我國一直是水利工程建設大國,在近年的高速發展過程中我國的水資源用水量一直處于高位,截至2020年,我國的總用水量總體維持在6,100億立方米左右。隨著時代的進步和技術的發展,傳統的水資源管理模式已嚴重滯后,不利于我國水資源領域的可持續發展。當今社會互聯網+、大數據技術正影響著各行各業的管理與建設[1-2],水資源領域急需使用大數據、云計算等新興技術,提高我國水資源管理的能力,借助便利的互聯網技術與云計算技術,提高水資源的利用率和各項管理業務操作的效率。
2水資源管理中存在的問題
在水資源管理領域,水資源相關的數據非常繁雜,數據管理長時間滯后,往往不能及時、直觀地反映當前水資源的實際情況[3],具體表現在:(1)水資源數據地理位置的差異性。水資源監測站點往往設置在不同位置,取樣位置的不同使得數據也會有較大差異性,用傳統人工方式處理較為繁重,難以整合[4]。(2)水資源數據的時效性。使用傳統的人工方式一般需要若干個星期才能完成數據的統計分析,往往錯過利用數據及時發現問題的最佳時間[5]。(3)水資源數據煩瑣且不直觀。水資源數據量龐大且數據格式比較靈活多樣[6],傳統的數據表格統計方式難以直觀地反映水資源的使用情況,不利于管理者在處理突發事件時的決策與判斷。
3水資源管理解決方案
基于以上問題,針對水資源數據煩瑣且不直觀的問題,本文使用水資源大數據可視化方案,將各個水資源監控設備的采樣數據進行整合,即基于大數據分析,將諸如歷史用水量、計劃用水量、設備狀態等各項信息加以整合,利用地圖、餅狀圖、折線圖等多種圖表在應用層設計簡潔的界面,實現了水資源數據的可視化展示,通過合理的精度顯示以實現對水資源管理系統復雜數據的實時展示。該方法的優點具體表現在:(1)直觀展現水資源監測點的空間與時間分布。能夠在地圖中直觀實時地展現對應監測點的具體位置,并且及時反映監測點當前的監控狀態。(2)展現變化趨勢。利用折線圖展現對應的數據變化,能夠直觀反映數據變化趨勢,利于管理者對當前用水形勢做出及時的判斷。(3)高效管理數據。利用大數據分析,將各個水資源監測設備收集的數據進行合理高效的增刪改查,方便從業者管理存儲的大量數據。(4)界面簡潔,用戶使用體驗良好。簡潔的UI設計與便捷的操作能夠大幅提升用戶的使用體驗感,提升操作對應功能的流暢性。
4水資源管理系統架構設計與應用
水資源管理系統架構設計分為四個方面:用于存放和管理數據的數據層、進行數據收發的后端架構、用戶進行操作的前端架構、進行數據庫管理的管理軟件。其中,前端架構是用戶操作與顯示的核心,后端架構是數據處理與大數據管理的關鍵。為便于模塊化開發,系統使用SpringBoot+Vue的前后端分離開發模式。
4.1數據層
水資源系統的數據源具有異構多樣性,系統能夠利用互聯網技術遠程獲取水資源監測設備收集到的信息,也可以采用手工導入方式,如手動輸入相應水資源信息,利用Excel表格導入表格信息等,還能夠利用其他設備諸如手機APP、小程序等提供信息,通過溫度檢測、水平面變化檢測等方式,收集對應地區的用水量、用水設備的溫度、該區域的水平面、設備運行狀態等各項數據。獲取的大量數據經過后端的清洗、整理、計算、分析歸納,利用開源的Mybatisplus,通過數據持久層的操作,根據數據之間的關系將所需數據整理保存到傳統的關系型數據庫(如MySQL、WindowsServer等)中。若要處理的數據量大于單個系統的處理極限時,可通過開源工具Sqoop,將傳統關系型數據庫中的內容提取、轉換、加載,并將數據進行相應格式的封裝,轉儲至MongoDB等對應的NoSQL數據庫中,并且根據系統實際使用的需要進行分布式系統的開發,以減輕主服務器的負擔[7]。數據層與后端架構的關系如圖1所示。由于水資源系統用戶多種多樣,需有效快捷地利用用戶登錄狀態獲取符合其角色的數據,因此需要運用比傳統關系型數據庫查詢速度更快地獲取用戶登錄鑰匙token的工具。利用NoSQL數據庫Redis對用戶登錄token進行key與value的鍵值比對查詢可實現高效的跨域校驗,利用基于Redis的矢量時空查詢算法,相比傳統的Oracle,查詢效率提高近4.5倍,使用戶在獲取數據時獲得良好的交互體驗[8]。
4.2后端架構
后端架構基于Spring框架,如圖2所示,根據功能設計分為實體層、服務層、映射層、控制層、攔截層與針對前端的HTTP接口。各層的作用與關系如下:(1)實體層通過創建對應的水資源設備主體,如機井、計量設備、統計數據設備等模塊,將其作為容器用于保存對應實體的相關信息,并在實體層保留訪問接口,用于訪問實體內部對應的內容。具體實現可以借助Spring框架與Mybatisplus,在Spring中定義相對應的水資源設備實體,然后利用Mybatisplus對數據庫進行訪問存儲至數據持久層中,再通過定義好的主體進行Bean注入,即可完成實體的構建。當需要獲取對應數據時,調用實體層對應接口即可。通過實體層既能夠保證數據的安全性,又能夠在后續的開發中保證容器之間的獨立性,互不干擾。(2)服務層利用實體層已有的實體信息,調用實體層已有的接口,對實體進行操作后將修改反映到數據庫當中,以實現對應的功能服務。具體實現為利用Mybatisplus將需要對數據庫進行修改的對應SQL語句封裝在Mapper對象中,以執行對象中SQL語句的方式完成對數據庫的CRUD和事務提交,進而實現數據不外泄和安全保障。(3)映射層將對應實體的業務操作進行一一映射。根據業務需要調用服務層接口提供的相應功能服務,實現對應的業務操作,保證業務的直接關聯性。(4)控制層將每個功能模塊所需的業務操作集成到一起,根據需要調用對應業務操作,并作為定時任務關聯相應模塊,在設定的時刻調用水資源業務需要的功能。(5)水資源數據十分重要且需要保證其訪問安全,因訪問用戶眾多也需滿足用戶查詢時的便利性,因此攔截層需要實現跨域校檢、登錄態校檢與權限校檢三大模塊。用戶在登錄后要獲取數據,需服務端分配登錄態憑證返回給客戶端。本文的實現方式為生成token返回給客戶端,并將生成的token存儲至內存中的Redis數據庫中。用戶后續需要訪問服務端時,僅僅需要將每次請求頭中附帶上此token,即可通過登錄態校檢。權限校檢模塊根據用戶名與密碼獲取對應用戶的訪問權限,并且將其能夠訪問的菜單頁面路由返回給客戶端,按照用戶的權限顯示對應的功能模塊。(6)與前端交互前必須設置針對前端的HTTP接口,保留開發接口接收前端頁面的請求,完成請求的功能業務。可使用Spring框架中的控制層進行接口實現,將后端運行環境構建成統一的自動化協調的運行環境,以服務的形式提供給用戶,簡化應用的部署和運行等。
4.3前端架構
前端架構使用項目化開發,可以使用面向數據的前端開發框架。本文采用Vue3.0作為前端框架進行開發,利用Vuex進行全局狀態管理,采用Vue-Router進行路由管理,進而構建整體的框架設計,具體如圖3所示。系統利用Vite的冷啟動進行快速的狀態開發,并將其打包成項目部署文件部署到前端項目服務器中。水資源管理系統由用于管理水資源設備和水資源使用等的下層業務和管理用戶、地址、使用權限等的上層業務構成,結合利用大數據與云計算提高管理效率這一目標,開發了五大模塊。(1)全局模塊。全局模塊包括用戶信息、控制信息、清洗控件等功能。由于系統用戶登錄人數眾多,用戶類別各不相同,系統需記錄當前用戶的登錄狀態與用戶權限,因此需要開發對應的用戶模塊,將用戶登錄獲得的登錄狀態信息存放在全局模塊中,并且將其放入以后的請求頭中以獲取服務端的信息,并根據獲取的權限來展示用戶可操作的模塊。具體實現為利用Vuex的全局狀態管理,將用戶登錄獲得的token存入當前用戶module的state中,并將其放入請求文件的header中用于獲取后端數據,然后將獲取的用戶權限與Vue-Router中的路由文件相匹配,若存在對應模塊則顯示。(2)上層業務模塊。上層業務模塊包括用戶管理、權限管理、菜單管理、地址管理、接口管理、數據清洗等功能。將登錄系統的用戶信息、權限管理、系統顯示的菜單、水資源檢測設備的地址、與服務端對接的接口等會影響到下層用戶使用的功能整合為上層業務模塊,一般由管理員或開發人員管理該模塊。地址模塊用于定義全局的一級、二級和三級地址,用于下層業務模塊的地址選擇;接口模塊用于開發人員了解新增接口的樣式、相關細節,便于后續開發人員進行系統的維護工作;用戶模塊用于管理對應用戶的賬號權限,并能根據客戶需求改變菜單顯示優先級,以保證最佳的用戶體驗。(3)下層業務模塊。下層業務模塊包括水資源監測設備的基本信息與詳細內容、用戶用水配額的設置、用戶用水統計、所有業務的統計報表和水資源監測設備的報警情況等功能,用于實現用戶對水資源監測設備的直接管理,并且根據用戶的用水情況分配用水配額,將所有業務的統計報表進行總結顯示,方便使用者有效快速地管理業務。其中水資源報警能夠通過深度學習,通過水資源監測設備的相關數值自動判斷該設備是否處于報警狀態,并將報警情況反映到可視化模塊中。(4)可視化模塊。可視化模塊通過柱狀圖、折線圖等對數據進行可視化,直觀顯示數據的真實變化情況。系統獲得服務端的數據,調用圖像接口,顯示水資源的用水量和水資源設備的情況等數據,直觀反映數據變化。可利用Vue與element-plus相結合,將獲得的數據導入element接口中,定義顯示DOM的weight與height,采用Echarts將數據以柱狀圖和折線圖等形式顯示到對應業務模塊,可從區縣、鄉鎮、路段和年、月、星期、日及單位實體等多種不同維度對水資源數據進行可視化展示。用戶用水情況的部分圖例如圖4所示。(5)頁面模塊。系統需要有顯示全局功能和系統圖標等的頂欄模塊,顯示用戶能夠操作模塊功能的菜單模塊,還需要有顯示功能頁面的內容模塊。頂欄模塊借助全局模塊提供的功能,能夠選擇登入、登出和用戶信息修改等全局變量改變的功能;菜單模塊根據用戶具有的權限,顯示對應的上層業務模塊(若為管理員)與下層業務模塊;內容模塊則調用選擇的業務模塊頁面,將其按照給定的頁面比例進行顯示。水資源數據經過大數據后端處理后,針對水資源管理系統五個模塊進行水資源大數據分析、數據挖掘,完成大數據的可視化。由于所開發的水資源系統部署在云端,所有用戶都能基于互聯網在任何時間、任何地點方便快捷地使用此系統,大幅提高了管理效率。
5系統實現
系統前端部分采用Vite構建工具搭建,配合Yarn對使用的軟件包進行管理。后端部分采用Maven管理工具包,采用MVC結構。其中,后端系統在每天晚上對各類水資源數據進行自動統計,存入每日數據表;在每個月底再自動更新一次月度用水統計情況,其自動執行部分代碼如下:
6結論
利用信息化、大數據的手段,對水資源進行精細化管理是促進我國水利事業發展的重要手段。本文針對當前水資源管理中存在的問題,基于大數據、云計算等技術,充分整合各類信息資源,初步搭建了自動、智能、綜合、高效的水資源大數據監管平臺。系統以國家水資源智慧監控的需求為牽引,開發了基于水資源大數據的典型應用,能夠有效節約水資源,助力構建資源節約型和環境友好型社會,具有較好的推廣價值和意義。
作者:彭浩宇 周軍海 張峻宇 張舜宇 徐靜茹 單位:湖南大學信息科學與工程學院