江 蕾,馬艷軍,邱 玲
(1.高原與盆地暴雨旱澇災(zāi)害四川省重點實驗室,成都 610072;2.四川省氣象探測數(shù)據(jù)中心,成都 610072)
四川省基于全國綜合氣象信息共享平臺(CIMISS)—區(qū)域中心級系統(tǒng),實現(xiàn)了實時歷史資料一體化的存儲管理,建立了資料收集、處理、存儲管理和運行監(jiān)視的業(yè)務(wù)系統(tǒng)及流程[1,2]。目前CIMISS已管理存儲了地面、高空、衛(wèi)星、天氣雷達、數(shù)值預(yù)報等氣象數(shù)據(jù),地面資料還實現(xiàn)了實時歷史一體化存儲[3-5]。同時,基于現(xiàn)代預(yù)報技術(shù)方法與現(xiàn)代信息技術(shù)相結(jié)合的MICAPS(Meteorology Information Comprehensive Analysis Process System)第4版系統(tǒng)(簡稱MICAPS4)已經(jīng)在四川省穩(wěn)定運行了2 a以上,MICAPS4系統(tǒng)由MICAPS3的集中式文件庫模式轉(zhuǎn)換為非結(jié)構(gòu)化分布式數(shù)據(jù)庫模式,相比MICAPS3,MICAPS4系統(tǒng)容納了海量的實時氣象數(shù)據(jù),同時數(shù)據(jù)讀取性能優(yōu)異,并且其服務(wù)器集群面向數(shù)百并發(fā)用戶[6-8]。
目前西南區(qū)域機場用戶大部分主要使用MICAPS3客戶端為預(yù)報提供支撐與服務(wù),但是在省氣象探測數(shù)據(jù)中心MICAPS3系統(tǒng)已經(jīng)基本停止運維。全省氣象內(nèi)網(wǎng)用戶已經(jīng)轉(zhuǎn)到MICAPS4系統(tǒng),但是基于網(wǎng)絡(luò)和數(shù)據(jù)安全的考慮,核心區(qū)MICAPS4系統(tǒng)未向其他行業(yè)用戶(西南區(qū)域機場、飛行學(xué)院等)提供服務(wù)[9]。同時隨著氣象數(shù)據(jù)和產(chǎn)品種類的增加,新增氣象數(shù)據(jù)都會在MICAPS4系統(tǒng)中更新應(yīng)用,因此機場等行業(yè)氣象用戶的數(shù)據(jù)服務(wù)首先基于MICAPS客戶端的需求,同時需要滿足對數(shù)據(jù)內(nèi)容和格式的定制應(yīng)用[10]。
標準的數(shù)據(jù)服務(wù)流程,包括數(shù)據(jù)收集或采集、數(shù)據(jù)處理與分析、數(shù)據(jù)應(yīng)用與可視化等環(huán)節(jié),數(shù)據(jù)質(zhì)量貫穿于整個流程,每一個環(huán)節(jié)都會對數(shù)據(jù)服務(wù)質(zhì)量產(chǎn)生影響[11-13]。
省級數(shù)據(jù)環(huán)境集成了ORACLE數(shù)據(jù)庫(結(jié)構(gòu)化)、虛谷分布式數(shù)據(jù)庫(結(jié)構(gòu)化)和Cassandra分布式數(shù)據(jù)庫(非結(jié)構(gòu)化,MICAPS4分布式數(shù)據(jù)環(huán)境),并且實現(xiàn)了氣象數(shù)據(jù)的冗余備份,其中地面高空數(shù)據(jù)的要素結(jié)構(gòu)化數(shù)據(jù)和數(shù)值預(yù)報產(chǎn)品、衛(wèi)星、雷達資料、服務(wù)產(chǎn)品的文件索引信息存儲在ORACLE和虛谷分布式結(jié)構(gòu)化數(shù)據(jù)庫上,Cassandra分布式數(shù)據(jù)庫上存儲的數(shù)據(jù)為直接對接氣象業(yè)務(wù)應(yīng)用的非結(jié)構(gòu)化二進制文件數(shù)據(jù),包括了地面、高空、數(shù)值預(yù)報產(chǎn)品(包括集合預(yù)報產(chǎn)品)、衛(wèi)星、雷達、服務(wù)產(chǎn)品和SWAN產(chǎn)品等[14-16]。對比以上3種數(shù)據(jù)庫,性能由高到低排序依次是Cassandra數(shù)據(jù)庫、虛谷數(shù)據(jù)庫、ORACLE數(shù)據(jù)庫;存儲氣象數(shù)據(jù)的完整程度排序依次是Cassandra數(shù)據(jù)庫、ORACLE數(shù)據(jù)庫、虛谷數(shù)據(jù)庫,同時鑒于用戶使用數(shù)據(jù)的習慣一般是在文件方面,因此綜合考慮采用Cassandra數(shù)據(jù)庫作為數(shù)據(jù)采集來源[17]。
數(shù)據(jù)采集源頭確定后,其次為數(shù)據(jù)源采集方式。MICAPS4分布式數(shù)據(jù)環(huán)境的服務(wù)端利用分布式存儲與分布式計算技術(shù)構(gòu)建了海量氣象數(shù)據(jù)環(huán)境MDFS,提供了數(shù)百并發(fā)級的數(shù)據(jù)應(yīng)用,MICAPS4的分布式數(shù)據(jù)庫Cassandra存儲的數(shù)據(jù)已經(jīng)基本囊括了整個氣象應(yīng)用所有的業(yè)務(wù)數(shù)據(jù),這些氣象數(shù)據(jù)來源于兩部分,一部分來源于CIMISS的MUSIC接口(地面高空等結(jié)構(gòu)化站點數(shù)據(jù));另一部分來源于CMACAST下發(fā)和其他應(yīng)用服務(wù)器的推送(模式產(chǎn)品、衛(wèi)星雷達資料、服務(wù)產(chǎn)品等非結(jié)構(gòu)化文件產(chǎn)品)[18,19]。而且MICAPS4系統(tǒng)服務(wù)端的GDS(Global Data Sharing全局數(shù)據(jù)共享,以下簡稱GDS)代理下載服務(wù),為科研業(yè)務(wù)應(yīng)用提供了數(shù)據(jù)接口支撐與服務(wù),提供了從MICAPS4分布式數(shù)據(jù)庫Cassandra提取所有氣象業(yè)務(wù)數(shù)據(jù)的接口服務(wù),除此,GDS還提供了對用戶權(quán)限的控制,因此使用GDS作為行業(yè)用戶數(shù)據(jù)服務(wù)的數(shù)據(jù)源應(yīng)用[20]。
GDS代理下載服務(wù)的流程是首先用戶或者客戶端采用查詢參數(shù)(請求的查詢方式、氣象數(shù)據(jù)類型、時次、物理量等信息)綁定HTTP請求的方式發(fā)送指令到GDS服務(wù)器,然后GDS服務(wù)器在分布式數(shù)據(jù)環(huán)境內(nèi)啟動多線程計算并將Cassandra存儲的結(jié)果數(shù)據(jù)(非結(jié)構(gòu)化二進制文件)返回給用戶或者客戶端[21-23]。
數(shù)據(jù)的源頭借助MICAPS4分布式數(shù)據(jù)環(huán)境,GDS接口可以實現(xiàn)隨取隨用,數(shù)據(jù)服務(wù)按照氣象數(shù)據(jù)業(yè)務(wù)時間控制系統(tǒng)定時發(fā)送請求到GDS服務(wù),服務(wù)請求內(nèi)容為數(shù)據(jù)類型、物理量或者要素類型、物理量或者要素的層次或者高度、物理量或者要素時間、物理量或者要素預(yù)報時效等。
從數(shù)據(jù)采集來源處發(fā)送請求后GDS返回的原始數(shù)據(jù)結(jié)果為數(shù)據(jù)文件或者要素場,其中數(shù)據(jù)文件為二進制文件,物理量的要素場數(shù)據(jù)是類似于JSON風格(經(jīng)緯度點:氣象要素值形式)的數(shù)據(jù),這些原始數(shù)據(jù)的可讀性以及可應(yīng)用性差,因此需要對二進制數(shù)據(jù)或者要素場數(shù)據(jù)進行解碼、組裝與應(yīng)用才能對外提供數(shù)據(jù)服務(wù)。
對于地面高空數(shù)據(jù),GDS提供的接口服務(wù)下載到的數(shù)據(jù)為二進制數(shù)據(jù),參照MICAPS網(wǎng)絡(luò)存儲的數(shù)據(jù)格式和網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)格式,使用PYTHON對二進制數(shù)據(jù)進行解碼或者組裝成標準格式數(shù)據(jù)(MICAPS的diamond文本數(shù)據(jù)格式)。目前基于數(shù)據(jù)中心網(wǎng)絡(luò)核心區(qū)安全考慮,西南區(qū)域氣象行業(yè)用戶(西南區(qū)域機場、飛行學(xué)院等)仍在使用MICAPS3文件庫模式的客戶端,因此數(shù)據(jù)解碼和組裝數(shù)據(jù)的標準格式來源于MICAPS3數(shù)據(jù)文件標準格式。目前對外服務(wù)的產(chǎn)品,主要是地面數(shù)據(jù)和數(shù)值模式數(shù)據(jù),第3類數(shù)據(jù)格式(地面)、第4類數(shù)據(jù)格式(格點產(chǎn)品數(shù)據(jù))、第11類數(shù)據(jù)格式(格點矢量數(shù)據(jù),主要是風場等)是常用的MICAPS3數(shù)據(jù)格式。
應(yīng)用系統(tǒng)之間的數(shù)據(jù)交互方式(數(shù)據(jù)傳輸)有3個要素:傳輸方式、傳輸協(xié)議、傳輸格式。傳輸方式主要有:SOCKET方式、ftp/文件共享服務(wù)器方式、數(shù)據(jù)庫共享數(shù)據(jù)方式和消息方式。
文章有關(guān)數(shù)據(jù)推送方面的需求就是通過內(nèi)網(wǎng)隔離的行業(yè)區(qū)網(wǎng)絡(luò),實現(xiàn)大量標準格式氣象數(shù)據(jù)文件產(chǎn)品推送,并且數(shù)據(jù)推送具有時間不確定性以及數(shù)據(jù)種類繁多、數(shù)據(jù)即推即走、多進程運行、歷史記錄可查、斷點續(xù)傳等特點。
基于以上的數(shù)據(jù)推送要求,遴選各種ftp工具,最后采用lftp實現(xiàn)標準格式數(shù)據(jù)的推送服務(wù),lftp是在LINUX和WINDOWS操作系統(tǒng)下應(yīng)用的FTP工具(也被稱為FTP客戶端),并且它是一個基于命令行的文件傳輸軟件,除了FTP協(xié)議外,它還支持FTPS,HTTP,HTTPS,HFTP,F(xiàn)ISH和SFTP等協(xié)議。該程序還支持FXP,允許數(shù)據(jù)繞過客戶端直接在兩個FTP服務(wù)器之間傳輸,這是選擇lftp作為數(shù)據(jù)推送客戶端的主要原因。
系統(tǒng)按照配置文件配置具體數(shù)據(jù)的資料時間啟動應(yīng)用,組裝查詢參數(shù)(包括氣象數(shù)據(jù)類型代碼、物理要素代碼、年月日小時等時間參數(shù)),然后將HTTP(get)請求到MICAPS4海量氣象數(shù)據(jù)環(huán)境中,利用GDS代理下載服務(wù)首先查詢數(shù)據(jù)文件列表,如果列表數(shù)據(jù)不為空則依據(jù)MICAPS4網(wǎng)絡(luò)數(shù)據(jù)存儲與傳輸格式中定義的有關(guān)標量和矢量數(shù)據(jù)的編碼規(guī)范對文件列表最新的文件(二進制文件)進行protocol反序列化解碼重組形成可讀的MICAPS3格式數(shù)據(jù),最后利用lftp的鏡像、斷點續(xù)傳、多進程傳輸功能將輸出結(jié)果文件推送到目的地址完成此類氣象資料的數(shù)據(jù)服務(wù)。
目前存儲的氣象數(shù)據(jù)除雷達衛(wèi)星數(shù)據(jù)外大部分都可以使用上述流程實現(xiàn)數(shù)據(jù)服務(wù),雷達衛(wèi)星數(shù)據(jù)采用的是省級氣象系統(tǒng)直接推送或者用戶通過工具下載的方式實現(xiàn)數(shù)據(jù)服務(wù)。
從系統(tǒng)的配置出發(fā),數(shù)據(jù)服務(wù)的內(nèi)容包括配置存儲產(chǎn)品的數(shù)據(jù)類型、數(shù)據(jù)頻次、標準數(shù)據(jù)文件格式、在分布式數(shù)據(jù)庫的目錄路徑、推送分發(fā)地址、推送用戶名密碼、推送路徑等信息,以上信息在存儲中是唯一的,只要數(shù)據(jù)存在,數(shù)據(jù)即可服務(wù),最后配置文件加載到內(nèi)存里定時運行即可實現(xiàn)實時數(shù)據(jù)服務(wù)。
1)對比目前的多源省級氣象數(shù)據(jù)環(huán)境,采用MICAPS4系統(tǒng)的分布式海量數(shù)據(jù)存儲作為底層數(shù)據(jù)源對外提供數(shù)據(jù)服務(wù),不僅可以增加MICAPS4分布式數(shù)據(jù)庫的有效利用而且底層數(shù)據(jù)源高并發(fā)性以及讀取高性能使數(shù)據(jù)服務(wù)的效率有了很大的提升;
2) 利用MICAPS4分布式海量氣象數(shù)據(jù)環(huán)境提供的GDS查詢服務(wù)接口,基于HTTP協(xié)議實現(xiàn)的數(shù)據(jù)采集應(yīng)用可實現(xiàn)MICAPS4分布式數(shù)據(jù)庫中所有氣象數(shù)據(jù)的多線程下載;
3)利用LFTP的命令補全、歷史記錄、多個后臺任務(wù)執(zhí)行、書簽、排隊、鏡像、斷點續(xù)傳、多進程下載等功能,實現(xiàn)多種類、多時次、多維度氣象數(shù)據(jù)的推送服務(wù);
4) 隨著氣象數(shù)據(jù)和產(chǎn)品種類的增加以及MICAPS4系統(tǒng)數(shù)據(jù)的更新,基于MICAPS4系統(tǒng)的氣象行業(yè)用戶服務(wù)隨時可以基于配置更新達到氣象數(shù)據(jù)即到即服務(wù)的效果。