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