趙黎明,王海剛,王英玨
(吉林市光大分析技術(shù)有限責(zé)任公司,吉林 132021)
近十幾年來,隨著科學(xué)技術(shù)的迅速發(fā)展,水質(zhì)監(jiān)測領(lǐng)域積累了大量數(shù)據(jù),大數(shù)據(jù)的概念也隨之引起重視。大數(shù)據(jù)是信息時代迅猛發(fā)展的新生產(chǎn)物,是指通過對大量種類和來源復(fù)雜的數(shù)據(jù)進(jìn)行高速地獲取、傳輸、存儲和分析,用比較經(jīng)濟(jì)的方法提取其價(jià)值的技術(shù)體系或技術(shù)架構(gòu),它以一種前所未有的方式,通過對海量數(shù)據(jù)進(jìn)行分析,獲得有巨大價(jià)值的產(chǎn)品和服務(wù),或深刻的洞見[1]。與傳統(tǒng)的數(shù)據(jù)相比,除了大容量等表象特點(diǎn),大數(shù)據(jù)還具有一些獨(dú)特的特點(diǎn),例如大數(shù)據(jù)通常是無結(jié)構(gòu)的,并且需要實(shí)時監(jiān)測,實(shí)時分析。所以,廣義上講,大數(shù)據(jù)不僅是指大數(shù)據(jù)所涉及的數(shù)據(jù),還包含了對這些數(shù)據(jù)進(jìn)行處理和分析的理論、方法和技術(shù)。
隨著水工業(yè)行業(yè)的發(fā)展以及水環(huán)境監(jiān)測要求的提高,大數(shù)據(jù)、自動化、精準(zhǔn)度、實(shí)時監(jiān)控,成為了水質(zhì)監(jiān)測的新問題。在分析大數(shù)據(jù)、云計(jì)算、在線分析三者關(guān)系的基礎(chǔ)上,給出具有通用性的大數(shù)據(jù)水質(zhì)監(jiān)測總體架構(gòu),并從水質(zhì)大數(shù)據(jù)的集成管理技術(shù)、數(shù)據(jù)分析技術(shù)、數(shù)據(jù)處理技術(shù)、數(shù)據(jù)展現(xiàn)技術(shù)4個方面深入探討符合水質(zhì)在線分析發(fā)展需求的大數(shù)據(jù)關(guān)鍵技術(shù)的選擇。本文就計(jì)算機(jī)技術(shù)如何提升、建設(shè)水質(zhì)監(jiān)測數(shù)據(jù)平臺等方面進(jìn)行了研究。
PHP是一種廣泛應(yīng)用于創(chuàng)建動態(tài)交互型數(shù)據(jù)平臺的服務(wù)器端開源腳本語言,PHP幾乎兼容各種服務(wù)器,可運(yùn)行在各種操作平臺,支持多種數(shù)據(jù)庫,運(yùn)行效率高效,是現(xiàn)代化服務(wù)器腳本語言的首選。本系統(tǒng)運(yùn)用了PHP中thinkphp的開發(fā)框架,該框架更快速、兼容、簡單、輕量。使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu)和mvc模式。其自身包含了底層結(jié)構(gòu)、基類庫、模板引擎、角色認(rèn)證緩存機(jī)制等組件。使用方便,功能齊全。
數(shù)據(jù)庫接收各地儀表上傳的數(shù)據(jù)。PHP實(shí)現(xiàn)數(shù)據(jù)庫增刪改查等基礎(chǔ)功能,創(chuàng)建數(shù)據(jù)庫表,通過對上傳數(shù)據(jù)的字段將數(shù)據(jù)按分類寫入各數(shù)據(jù)表中。因?yàn)樗|(zhì)監(jiān)測系統(tǒng)數(shù)據(jù)為實(shí)時性的,數(shù)據(jù)會不間斷地上傳到服務(wù)器中,用PHP構(gòu)造一次插入多條,并多次以for插入,將一組一組的數(shù)據(jù)插入到數(shù)據(jù)庫中。因?yàn)閿?shù)據(jù)上傳到數(shù)據(jù)匯聚都是通過PHP構(gòu)造函數(shù)實(shí)現(xiàn),所以理論上不存在數(shù)據(jù)傳輸過程中出現(xiàn)數(shù)據(jù)偏差,能夠確保數(shù)據(jù)的準(zhǔn)確性。
數(shù)據(jù)過大就會造成性能降低,因此如何合理優(yōu)化數(shù)據(jù)庫性能,是大數(shù)據(jù)實(shí)現(xiàn)的前提。選擇最適合的數(shù)據(jù)字段、使用(JOIN)連接來取代子查詢(Sub-Queries)、使用聯(lián)合(UNION)來代替手動創(chuàng)建的臨時表、使用索引來檢索特定的行等都是優(yōu)化數(shù)據(jù)庫的方法[2]。
云計(jì)算能夠在整個水質(zhì)在線系統(tǒng)內(nèi)部計(jì)算處理和存儲資源,提高水質(zhì)監(jiān)測處理和交互能力,成為水質(zhì)監(jiān)測的重要組成部分;業(yè)務(wù)服務(wù)需求是大數(shù)據(jù)的出發(fā)點(diǎn),以云計(jì)算為根基;水質(zhì)在線監(jiān)測可以抽象地看成是大數(shù)據(jù)這個概念在水質(zhì)監(jiān)測中的應(yīng)用。以上三者是相互交互的關(guān)系。
圖1為水質(zhì)在線監(jiān)測、云計(jì)算、大數(shù)據(jù)三者之間的關(guān)系,從更深層次來剖析,是水質(zhì)監(jiān)測系統(tǒng)發(fā)展到不同時期的成果。
圖1 大數(shù)據(jù)、云計(jì)算、水質(zhì)在線監(jiān)測三者的關(guān)系
大數(shù)據(jù)水質(zhì)在線監(jiān)測是信息技術(shù)、計(jì)算機(jī)技術(shù)、單片機(jī)技術(shù)等在傳統(tǒng)水質(zhì)監(jiān)測上的沉淀累積的成果,滿足水質(zhì)監(jiān)測信息化、智能化、輕量化等高層次的運(yùn)營和管理需求,既是對傳統(tǒng)水質(zhì)監(jiān)測的繼承,也是對傳統(tǒng)水質(zhì)監(jiān)測的發(fā)揚(yáng),所以其發(fā)展一定會與新興技術(shù)同步。源于計(jì)算機(jī)與信息技術(shù)領(lǐng)域最前沿的大數(shù)據(jù)技術(shù)與云計(jì)算技術(shù),正是其發(fā)展階段應(yīng)用層次與技術(shù)層次兩個具有時代意義的新技術(shù)。云計(jì)算技術(shù)的分布式存儲結(jié)構(gòu)與并行計(jì)算,滿足了水質(zhì)監(jiān)測過程中產(chǎn)生的海量數(shù)據(jù)的計(jì)算與存儲需求,因此在水質(zhì)監(jiān)測系統(tǒng)中的應(yīng)用也逐漸發(fā)展起來。
大數(shù)據(jù)技術(shù)一方面是傳統(tǒng)數(shù)據(jù)分析技術(shù)與挖掘技術(shù)的延續(xù),另一方面也是當(dāng)數(shù)據(jù)量級增長到一定程度時資源挖掘與業(yè)務(wù)應(yīng)用需要的必然產(chǎn)物,因此大數(shù)據(jù)技術(shù)的主要應(yīng)用都以云計(jì)算技術(shù)或與云計(jì)算類似的處理技術(shù)和分布式存儲為基礎(chǔ)。大數(shù)據(jù)水質(zhì)在線監(jiān)測的發(fā)展,也是云計(jì)算技術(shù)在水質(zhì)監(jiān)測中的高級應(yīng)用需求的實(shí)現(xiàn)過程。
當(dāng)后端已經(jīng)完成了數(shù)據(jù)庫的操作,數(shù)據(jù)將由前端腳本語言javascript實(shí)現(xiàn)用瀏覽器內(nèi)核渲染到平臺界面。通過ajax技術(shù)動態(tài)的在后臺與服務(wù)器進(jìn)行數(shù)據(jù)交換,使數(shù)據(jù)實(shí)現(xiàn)異步更新,ajax技術(shù)能夠向服務(wù)器請求額外的數(shù)據(jù)而無需卸載頁面[3]。在不更新整個網(wǎng)頁數(shù)據(jù)的情況下,僅對頁面做局部加載,以減少實(shí)時更新情況下占用后臺過多的數(shù)據(jù)庫資源。以json格式傳輸數(shù)據(jù),json格式足夠輕量級,對于數(shù)據(jù)傳輸而言格式的輕重與否是其首要參考的特性。
數(shù)據(jù)平臺的渲染是由javascript腳本語言實(shí)現(xiàn)的。引用了jquery庫和framework7框架。在圖表渲染上選擇了echarts這種數(shù)據(jù)可視化圖表插件。Jquery是輕量級的,具有強(qiáng)大的選擇器、出色的dom操作與封裝、可靠的事件處理機(jī)制、完善的Ajax、隱式迭代等優(yōu)點(diǎn)[4]。
水質(zhì)監(jiān)測中會有很多專業(yè)參數(shù),如pH、高錳酸鹽、溶解氧、BOD、COD等。這些數(shù)據(jù)都具有同一儀器不同時段的數(shù)據(jù)間有某種關(guān)系的特定。這種信息在各種圖表中會為職業(yè)工作者提供直觀的數(shù)據(jù)展示以及準(zhǔn)確無誤差的數(shù)據(jù)分析。
圖2 數(shù)據(jù)匯總
圖2 為具體案例,數(shù)據(jù)匯總應(yīng)用中包括了具體數(shù)值的展示、一段時間數(shù)據(jù)走向的峰值和平均值,以及通過指標(biāo)判斷各類水質(zhì)劃分。例如,某水庫2017年8月4日12時至9日4時的時段,pH參數(shù)最高值為8.6,最低值為7.22,平均值為7.75。經(jīng)平臺智能判斷,符合一類水pH標(biāo)準(zhǔn)范疇。數(shù)據(jù)匯總中包括測量值、開關(guān)量、狀態(tài)量、狀態(tài)測量值這4種類型。
數(shù)據(jù)的實(shí)時性會產(chǎn)生大量數(shù)據(jù),這十分考驗(yàn)前端渲染的性能,考慮到用戶在使用時的實(shí)時更新會產(chǎn)生大量流量,因此使用服務(wù)器按時段生成數(shù)據(jù)緩存的方案,這樣就可以減少當(dāng)前端向服務(wù)器獲取數(shù)據(jù)時,服務(wù)器按照特定需求需要二次獲取數(shù)據(jù)而花費(fèi)前端獲取數(shù)據(jù)時的大量時間。當(dāng)工作人員需要此時的數(shù)據(jù),清理緩存后就可以訪問最新的監(jiān)測數(shù)據(jù)[5]。
數(shù)據(jù)平臺不僅可以遠(yuǎn)程對水質(zhì)監(jiān)測數(shù)據(jù)進(jìn)行監(jiān)控,也可通過數(shù)據(jù)的實(shí)時動態(tài)分析來捕獲監(jiān)測異常情況。圖3為數(shù)據(jù)平臺中的告警系統(tǒng),通過智能計(jì)算,準(zhǔn)確判斷異常、捕獲異常,通過推送系統(tǒng)將告警信息推送到手機(jī)提示。實(shí)例中某水廠的測量溫度監(jiān)測到非法值,不在規(guī)定正常值范圍內(nèi),故由系統(tǒng)判斷為異常并顯示。其中包括時間、日期、地點(diǎn)、儀表類型、非法值等詳細(xì)信息。以關(guān)注后推送的方式實(shí)時提醒。
另有站點(diǎn)告警排行,可直觀到頻發(fā)異常站點(diǎn)及固定時段告警的次數(shù),從而給管理者以科學(xué)的數(shù)據(jù)報(bào)告,有利于采取合理措施。
大數(shù)據(jù)在線水質(zhì)監(jiān)測平臺結(jié)合水質(zhì)檢測技術(shù)和計(jì)算機(jī)技術(shù),經(jīng)過大數(shù)據(jù)的擴(kuò)展,實(shí)現(xiàn)了對傳統(tǒng)水質(zhì)監(jiān)測的延伸與提升,為大數(shù)據(jù)在線水質(zhì)數(shù)據(jù)監(jiān)測研究提供了新思路。
圖3 告警中心
[1] Viktor Mayer-Schonberger,Big Data:A Revolution That Will Transform How We Live,Work,and Think,2013 : 17-18.
[2] W.Jason Gilmore,W.J,Beginning PHP and MySQL,3rd Edition,2009:229-230.
[3] Nicholas C.Zakas. Professional JavaScript for Web Developers,2006:571-595.
[4] 單東林,張曉菲,魏然.鋒利的jQuery[J].2009(6):4-5.
[5] ClareChurcher,Beginning Database Design: From Novice to Professional,2007 : 145-151.