文/陳晴 高婷 楊明 呂梁 孫曉燕
為推進(jìn)氣象工作穩(wěn)步提升與發(fā)展,浙江氣象局以科技創(chuàng)新為核心,已經(jīng)建成涵蓋氣象信息服務(wù)、氣候資源開發(fā)利用、城市環(huán)境氣象服務(wù)、海洋氣象服務(wù)、氣象工程技術(shù)服務(wù)等氣象應(yīng)用開發(fā)研究的眾多信息化系統(tǒng),實(shí)現(xiàn)了氣象工作的信息化和自動(dòng)化。浙江省氣象局經(jīng)過多年的信息化建設(shè),目前由于系統(tǒng)眾多,獨(dú)立部署,各系統(tǒng)的數(shù)據(jù)標(biāo)準(zhǔn)、業(yè)務(wù)規(guī)劃、系統(tǒng)功能盡不相同,相互關(guān)聯(lián)度不夠,造成了氣象工作的精確分析和預(yù)測(cè)的工作瓶頸。為解決上述問題,開展氣象大數(shù)據(jù)云計(jì)算平臺(tái)研究,合理選擇數(shù)據(jù)存儲(chǔ)模型,設(shè)計(jì)云數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)解決平臺(tái)的大數(shù)據(jù)存儲(chǔ)問題,采用分布式應(yīng)用服務(wù)和云計(jì)算技術(shù),構(gòu)建平臺(tái)的總體框架,在統(tǒng)一的框架下,數(shù)據(jù)、業(yè)務(wù)、應(yīng)用服務(wù)分離,形成分布式應(yīng)用服務(wù)框架,采用新的前端展示技術(shù)和預(yù)處理技術(shù)改善平臺(tái)顯示效果,逐步實(shí)現(xiàn)信息化建設(shè)的統(tǒng)一規(guī)劃,提高氣象服務(wù)的社會(huì)效益和經(jīng)濟(jì)效益,為浙江省氣象局自我提升提供有力支撐。
氣象大數(shù)據(jù)平臺(tái)基于SOA 架構(gòu)進(jìn)行設(shè)計(jì),可分為四個(gè)層次基礎(chǔ)層(IaaS)、數(shù)據(jù)層(DaaS)、平臺(tái)層(PaaS),應(yīng)用層(SaaS)。如圖1所示。
通過數(shù)據(jù)中心私有云資源平臺(tái)提供統(tǒng)一、穩(wěn)定的運(yùn)行環(huán)境,為上層的各類服務(wù)提供存儲(chǔ)、計(jì)算和調(diào)度等方面的底層支持,通過對(duì)數(shù)據(jù)資源的統(tǒng)一規(guī)劃,實(shí)現(xiàn)資源的集中存儲(chǔ)、數(shù)據(jù)共享。
將來自單方、多方的數(shù)據(jù)源,通過機(jī)構(gòu)前置機(jī)和業(yè)務(wù)前置機(jī)按需的配置,在數(shù)據(jù)服務(wù)總線中,通過輸入隊(duì)列、計(jì)算隊(duì)列和輸出隊(duì)列的方式完成業(yè)務(wù)數(shù)據(jù)服務(wù),同時(shí)包括調(diào)度管理、計(jì)算中心、審計(jì)管理、安全管理和日志管理等功能。
基于上云中間件和應(yīng)用平臺(tái)服務(wù),采用應(yīng)用SOA 服務(wù)化的核心框架方案,提供高性能的NIO 通訊及多協(xié)議集成、服務(wù)尋址與路由、軟負(fù)載均衡等功能,實(shí)現(xiàn)應(yīng)用間的松耦合,提高服務(wù)的復(fù)用能力。構(gòu)建共享服務(wù)中心,迅速實(shí)現(xiàn)多變的業(yè)務(wù)需求。薄應(yīng)用,厚服務(wù),讓IT 系統(tǒng)沉淀共享資產(chǎn),讓新需求基于共享服務(wù)層快速生長。
基于平臺(tái)層PaaS 的微應(yīng)用共享服務(wù)中心,快速構(gòu)建氣象SaaS 應(yīng)用服務(wù),包括數(shù)據(jù)服務(wù)和應(yīng)用服務(wù)。
2.1.1 制定省級(jí)氣象數(shù)據(jù)資源標(biāo)準(zhǔn)與應(yīng)用規(guī)范在中國氣象局氣象信息化標(biāo)準(zhǔn)體系框架下,以CIMISS 數(shù)據(jù)接口標(biāo)準(zhǔn)為基礎(chǔ),發(fā)展和完善本省特有的共享數(shù)據(jù)服務(wù)接口標(biāo)準(zhǔn),補(bǔ)充制定浙江省省級(jí)面向行業(yè)的統(tǒng)一數(shù)據(jù)格式標(biāo)準(zhǔn)與業(yè)務(wù)應(yīng)用規(guī)范。
2.1.2 梳理數(shù)據(jù)資源
以《氣象要素分類與編碼》標(biāo)準(zhǔn)為基礎(chǔ),對(duì)本省的數(shù)據(jù)資源進(jìn)行梳理,編制本省數(shù)據(jù)共享清單,并提供觀測(cè)、監(jiān)測(cè)、和預(yù)報(bào)服務(wù)數(shù)據(jù)共享。
2.1.3 統(tǒng)一存儲(chǔ)策略
氣象數(shù)據(jù)具有大容量、高速增長、維度高、實(shí)時(shí)性高、存儲(chǔ)時(shí)效長等特點(diǎn)。氣象數(shù)據(jù)的類型多,具有結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的特征。針對(duì)不同的氣象數(shù)據(jù)類型,采用不同的分布式數(shù)據(jù)庫系統(tǒng)存儲(chǔ)分析。
氣象結(jié)構(gòu)化數(shù)據(jù)采用分布式關(guān)系型數(shù)據(jù)庫作為存儲(chǔ)介質(zhì)。氣象探測(cè)數(shù)據(jù)、氣象歷史數(shù)據(jù)、實(shí)時(shí)運(yùn)行數(shù)據(jù)、氣象精細(xì)化站點(diǎn)預(yù)報(bào)數(shù)據(jù)、氣象元數(shù)據(jù)等都屬于結(jié)構(gòu)化數(shù)據(jù)。分布式關(guān)系型數(shù)據(jù)庫通過原來的集中式關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)分散存儲(chǔ)到多個(gè)網(wǎng)絡(luò)連接的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上,獲取大存儲(chǔ)量和高并發(fā)量。
氣象非/半結(jié)構(gòu)化數(shù)據(jù)采用分布式文件系統(tǒng)和NoSQL 數(shù)據(jù)庫兩種方式存儲(chǔ)。
(1)分布式文件系統(tǒng)是實(shí)現(xiàn)非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)和海量結(jié)構(gòu)化歸檔數(shù)據(jù)存儲(chǔ)的主要技術(shù),基于分布式文件系統(tǒng)的存儲(chǔ)框架在保證存儲(chǔ)容量橫向擴(kuò)充的同時(shí),能有效支撐海量非/半結(jié)構(gòu)化數(shù)據(jù)分析的需求。雷達(dá)產(chǎn)品、氣象衛(wèi)星產(chǎn)品、預(yù)報(bào)和服務(wù)產(chǎn)品等非/半結(jié)構(gòu)化數(shù)據(jù)可采用分布式文件系統(tǒng)集中存儲(chǔ)。分布式文件系統(tǒng)是運(yùn)行在通用硬件上的分布式文件系統(tǒng),通過高效的分布式算法,將數(shù)據(jù)的訪問和存儲(chǔ)分布在集群中的各個(gè)服務(wù)器中。
(2)NoSQL 數(shù)據(jù)存儲(chǔ)一般采用面向列的存儲(chǔ)方式,其存儲(chǔ)結(jié)構(gòu)保證了數(shù)據(jù)表的列可擴(kuò)展性和讀寫I/O 的高吞吐性,更加適合氣象云數(shù)據(jù)環(huán)境中數(shù)據(jù)表的字段擴(kuò)充特性和密集型數(shù)據(jù)分析應(yīng)用,避免了后續(xù)表結(jié)構(gòu)改變帶來的維護(hù)壓力,有效提高密集型數(shù)據(jù)分析的吞吐性能。基于NoSQL 的列式數(shù)據(jù)存儲(chǔ),往往把同類型的數(shù)據(jù)放在一起壓縮,由于數(shù)據(jù)有共性,因此可獲得較大的壓縮比。NoSQL 可以采用Key-Value 存儲(chǔ)結(jié)構(gòu),結(jié)構(gòu)化數(shù)據(jù)需要轉(zhuǎn)換成Key-Value 格式進(jìn)行存儲(chǔ),同時(shí)支持壓縮編碼,有效減少I/O 損耗,提高數(shù)據(jù)吞吐量。根據(jù)實(shí)際應(yīng)用需求,還可以為NoSQL 建立次級(jí)索引。NoSQL 數(shù)據(jù)存儲(chǔ)用于存儲(chǔ)從各異構(gòu)數(shù)據(jù)源抽取的海量結(jié)構(gòu)化數(shù)據(jù),采用分布式和多副本的存儲(chǔ)方式,有效減少單點(diǎn)故障影響全局?jǐn)?shù)據(jù)的安全的問題。NoSQL 數(shù)據(jù)存儲(chǔ)的存儲(chǔ)容量擴(kuò)充采用橫向增加存儲(chǔ)節(jié)點(diǎn)的方式,在存儲(chǔ)容量獲得擴(kuò)展的同時(shí),能同時(shí)提高計(jì)算性能。存儲(chǔ)節(jié)點(diǎn)間可自動(dòng)負(fù)載均衡,支持PB 級(jí)的結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。

圖1:氣象大數(shù)據(jù)平臺(tái)整體架構(gòu)

圖2:云上系統(tǒng)架構(gòu)圖
氣象數(shù)據(jù)共享服務(wù)在功能分布上主要有七大模塊:數(shù)據(jù)服務(wù)化、數(shù)據(jù)資源目錄、數(shù)據(jù)匯聚服務(wù)、主數(shù)據(jù)管理、非結(jié)構(gòu)化數(shù)據(jù)、數(shù)據(jù)支撐和大數(shù)據(jù)體系等。
(1)數(shù)據(jù)服務(wù)化,依據(jù)標(biāo)準(zhǔn)的服務(wù)發(fā)布訂閱規(guī)范,將內(nèi)部的數(shù)據(jù)服務(wù)資源對(duì)外發(fā)布數(shù)據(jù)共享服務(wù),供上層應(yīng)用調(diào)用。
(2)數(shù)據(jù)資源目錄,為數(shù)據(jù)服務(wù)資源實(shí)現(xiàn)分類管理,并對(duì)數(shù)據(jù)源、元數(shù)據(jù)等資源實(shí)現(xiàn)標(biāo)準(zhǔn)化管理,為數(shù)據(jù)服務(wù)提供資源庫。
(3)數(shù)據(jù)匯聚服務(wù),云上的大數(shù)據(jù)集成服務(wù)平臺(tái)Base 開發(fā)數(shù)據(jù)ETL 任務(wù),編寫相應(yīng)的數(shù)據(jù)同步、抽取、清洗轉(zhuǎn)換腳本,并對(duì)影響數(shù)據(jù)的質(zhì)量的異常數(shù)據(jù)進(jìn)行集中管理。
(4)主數(shù)據(jù)管理、維護(hù)統(tǒng)一核心業(yè)務(wù)運(yùn)行數(shù)據(jù),可將主數(shù)據(jù)依據(jù)數(shù)據(jù)服務(wù)規(guī)范發(fā)布相應(yīng)的數(shù)據(jù)服務(wù)。數(shù)據(jù)建模,依據(jù)業(yè)務(wù)應(yīng)用需求為數(shù)據(jù)主題建模,并將結(jié)果數(shù)據(jù)回寫到數(shù)據(jù)生產(chǎn)區(qū)和分析區(qū),對(duì)外發(fā)布相應(yīng)的數(shù)據(jù)服務(wù)。
(5)非結(jié)構(gòu)化數(shù)據(jù)、存儲(chǔ)文件源數(shù)據(jù)信息,構(gòu)建文件的全文檢索,對(duì)外提供相應(yīng)的檢索服務(wù)。

圖3:DRDS 的數(shù)據(jù)拆分圖
(6)數(shù)據(jù)支撐、為上層數(shù)據(jù)服務(wù)及協(xié)同提供相關(guān)技術(shù)組件支撐。
(7)大數(shù)據(jù)體系建設(shè):構(gòu)建包括數(shù)據(jù)來源、主題模型、數(shù)據(jù)倉庫、應(yīng)用集市、數(shù)據(jù)管控和數(shù)據(jù)服務(wù)的大數(shù)據(jù)服務(wù)、管理體系。
氣象數(shù)據(jù)可視化分析采用HTML、CSS、JavaScript 等技術(shù),分別負(fù)責(zé)前端網(wǎng)頁的內(nèi)容結(jié)構(gòu)、網(wǎng)頁的布局和網(wǎng)頁行為和功能。WebGIS 負(fù)責(zé)實(shí)現(xiàn)在互聯(lián)網(wǎng)平臺(tái)上進(jìn)行地理信息發(fā)布、交流協(xié)作和數(shù)據(jù)共享,依靠JavaScript 和WebGIS 的結(jié)合,實(shí)現(xiàn)地理信息文件和數(shù)據(jù)庫中數(shù)據(jù)的動(dòng)態(tài)顯示效果,提升顯示速度,加強(qiáng)用戶與平臺(tái)的交互。引入高德地圖改進(jìn)地圖框架、地圖引擎和結(jié)構(gòu),加快地圖顯示速度,極大優(yōu)化地圖的展示效果。利用后臺(tái)分布式云存儲(chǔ)技術(shù)和平臺(tái)顯示的集約化功能,對(duì)數(shù)據(jù)采用預(yù)處理技術(shù),將大批量數(shù)據(jù)的計(jì)算處理從前端轉(zhuǎn)向后臺(tái),減小客戶端壓力。
浙江省氣象探測(cè)系統(tǒng)APP 是構(gòu)建云上靈活開放的體系架構(gòu)、堅(jiān)持滿足原版功能所有需求,實(shí)現(xiàn)該應(yīng)用云上重構(gòu)之后和大數(shù)據(jù)平臺(tái)的無縫連接的成功案例。使用 負(fù)載均衡服務(wù)(SLB)實(shí)現(xiàn)系統(tǒng)的高可用,使用程序或中間件部署在彈性計(jì)算服務(wù)器(ECS)上,數(shù)據(jù)庫服務(wù)放在 分析數(shù)據(jù)庫服務(wù)(RDS)上分擔(dān)讀數(shù)據(jù)的壓力,使用開放存儲(chǔ)服務(wù)(OSS)存儲(chǔ)文本、視頻、圖片等。其云上系統(tǒng)架構(gòu)圖如圖2所示。
根據(jù)浙江省氣象探測(cè)系統(tǒng)APP 數(shù)據(jù)層的特點(diǎn),其改造分兩種情況:OLTP 和OLAP。
3.1.1 OLTP 類關(guān)系數(shù)據(jù)庫架構(gòu)改造
針對(duì)浙江省氣象探測(cè)系統(tǒng)APP 業(yè)務(wù)壓力(數(shù)據(jù)庫訪問壓力)伴隨時(shí)間推移,訪問量不斷增大的特點(diǎn),單個(gè)RDS 的讀寫已經(jīng)無法滿足業(yè)務(wù)訪問請(qǐng)求。基以此,對(duì)OLTP 類關(guān)系數(shù)據(jù)庫架構(gòu)改造,主要從如下三方面考慮:緩存:使用緩存系統(tǒng)(OCS)分?jǐn)傋x壓力,通過緩存熱點(diǎn)數(shù)據(jù)來提供快速訪問;讀寫分離:考慮對(duì)數(shù)據(jù)庫改造成讀寫分離的應(yīng)用架構(gòu),浙江省氣象探測(cè)系統(tǒng)APP 采用RDS 讀寫分離機(jī)制進(jìn)行改造;數(shù)據(jù)拆分:考慮到RDS 容量不超過1T的限制,以及數(shù)據(jù)庫單實(shí)例的性能限制,當(dāng)數(shù)據(jù)庫的單實(shí)例存儲(chǔ)空間無法滿足或?qū)懭氲腡PS接近數(shù)據(jù)庫能力上線時(shí),數(shù)據(jù)庫通常需要做 Scale up 與 Scale out 拆分,實(shí)現(xiàn)根據(jù)不同業(yè)務(wù)拆分到不同庫。利用云平臺(tái)提供的分布式數(shù)據(jù)庫服務(wù)(DRDS)使數(shù)據(jù)庫拆分對(duì)應(yīng)用相對(duì)透明。圖3就是DRDS 的數(shù)據(jù)拆分。
3.1.2 OLAP 類關(guān)系數(shù)據(jù)庫架構(gòu)改造
浙江省氣象探測(cè)系統(tǒng)APP 采用聯(lián)機(jī)分析處理(OLAP)類型系統(tǒng)支持復(fù)雜的分析操作,滿足根據(jù)分析人員的快速、靈活地進(jìn)行大數(shù)據(jù)量的復(fù)雜查詢處理,并直觀地將查詢結(jié)果顯示出來。
浙江省氣象探測(cè)系統(tǒng)APP 屬于中型規(guī)模實(shí)時(shí)分析系統(tǒng),因此OLAP 系統(tǒng)面向數(shù)據(jù)存儲(chǔ)規(guī)模在50TB 級(jí)別,單表記錄數(shù)達(dá)到千億級(jí)別,云平臺(tái)提供分析數(shù)據(jù)庫服務(wù)(ADS),實(shí)現(xiàn)對(duì)海量數(shù)據(jù)實(shí)時(shí)高并發(fā)在線分析(Realtime OLAP)的云計(jì)算服務(wù),實(shí)現(xiàn)數(shù)據(jù)的快速響應(yīng),直接嵌入業(yè)務(wù)系統(tǒng)為浙江氣象局提供服務(wù)。
系統(tǒng)接口請(qǐng)求、響應(yīng),遵循Restful 設(shè)計(jì)改造,其中包括降雨量、溫度、風(fēng)、能見度、天氣、氣壓、濕度、蒸發(fā)、地溫、各層日最低氣溫、自動(dòng)降雪觀測(cè)、降雪加密觀測(cè)、雷電、海洋浮標(biāo)、交通站、分鐘實(shí)時(shí)材料、正點(diǎn)以來統(tǒng)計(jì)值等涉及到的接口。
3.3.1 負(fù)載均衡改造
原浙江省氣象探測(cè)系統(tǒng)APP 中WEB 服務(wù)器、應(yīng)用服務(wù)器搭配硬件設(shè)備F5,實(shí)現(xiàn)后端服務(wù)器負(fù)載均衡。上云時(shí)需要改造為云上負(fù)載均衡服務(wù)(SLB)。云上SLB 服務(wù)支持TCP、HTTP、HTTPS 等三種協(xié)議實(shí)現(xiàn)流量負(fù)載均衡,同時(shí)支持自動(dòng)對(duì)服務(wù)器進(jìn)行健康檢查,自動(dòng)屏蔽異常狀態(tài)的服務(wù)器,在服務(wù)器恢復(fù)正常后自動(dòng)解除屏蔽重新提供服務(wù)。
3.3.2 Web 和應(yīng)用層改造
原浙江自動(dòng)氣象探測(cè)系統(tǒng)應(yīng)用部署在小型機(jī)、PC Server、商業(yè)或開源虛擬化服務(wù)器上,通過直接部署在云上ECS(彈性計(jì)算服務(wù)器)。為保證服務(wù)器的高可用性,采用至少部署在兩臺(tái)ECS 服務(wù)器上,使用SLB 做負(fù)載均衡和服務(wù)容錯(cuò)。
3.3.3 文件存儲(chǔ)改造
原浙江自動(dòng)氣象探測(cè)系統(tǒng)涉及大量文件對(duì)象的存儲(chǔ)和管理,針對(duì)文件對(duì)象存儲(chǔ),采用云平臺(tái)提供開放存儲(chǔ)服務(wù)(OSS),解決應(yīng)用文件、圖片等的存儲(chǔ)問題。
通過開展氣象大數(shù)據(jù)平臺(tái)的研究,合理選擇數(shù)據(jù)存儲(chǔ)模型,實(shí)現(xiàn)氣象數(shù)據(jù)的分布式存儲(chǔ)問題;采用分布式應(yīng)用服務(wù)和云計(jì)算技術(shù),構(gòu)建平臺(tái)的總體框架,在統(tǒng)一的框架下,形成分布式應(yīng)用服務(wù)框架,實(shí)現(xiàn)氣象數(shù)據(jù)的共享服務(wù);采用新的前端展示技術(shù)和預(yù)處理技術(shù)改善平臺(tái)顯示效果,實(shí)現(xiàn)氣象數(shù)據(jù)的可視化。基于氣象大數(shù)據(jù)平臺(tái),將浙江省自動(dòng)氣象探測(cè)信息業(yè)務(wù)服務(wù)(APP 版)成功遷移到云平臺(tái),為其它業(yè)務(wù)應(yīng)用系統(tǒng)上云工作提供經(jīng)驗(yàn)。氣象大數(shù)據(jù)平臺(tái)的研究與應(yīng)用為逐步實(shí)現(xiàn)浙江信息化建設(shè)的統(tǒng)一規(guī)劃提供了一定的借鑒。