?

寧夏氣象資料自動歸檔管理系統設計與實現

2023-12-11 01:15徐曉慶卓鳳艷王添男
中低緯山地氣象 2023年5期
關鍵詞:日志結構化寧夏

徐曉慶,張 智,卓鳳艷,王添男

(1.中國氣象局旱區特色農業氣象災害監測預警與風險管理重點實驗室,寧夏 銀川 750002;2.寧夏氣象防災減災重點實驗室,寧夏 銀川 750002)

0 引言

氣象資料是天氣氣候預測和規律研究的重要依據。隨著我國氣象探測設備現代化程度的不斷提高,氣象探測資料的種類和數量快速增長,信息化氣象資料的存儲及歸檔工作也越來越受到各級氣象部門的重視。沈文海等[1]設計了國家級氣象資料存儲檢索系統,實現了結構化和非結構化氣象資料的收集、存儲、檢索和備份等多項功能;王恕等[2]、閆蕎蕎等[3]設計了省級氣象資料歸檔管理檢索系統,以磁盤陣列、移動硬盤和DVD光盤為主要存儲介質,實現了結構化和非結構化氣象資料的自動存儲與歸檔;滕水昌等[4]設計了市級地面資料數據管理系統,實現了地面結構化氣象資料的存儲與管理;虎文珺等[5]利用VB編程實現了天氣雷達觀測數據的自動歸檔,免除了人工整理、壓縮、存儲各類雷達觀測資料的繁重低效工作;張恩紅等[6]建立了氣象數據光盤歸檔系統,以藍光光盤為存儲介質,實現了省級氣象資料的不定時歸檔。

受存儲條件的限制,早期寧夏實時氣象探測資料主要存儲在各類服務器中,其中非結構化氣象資料只存儲3—6個月。寧夏氣象檔案館僅能歸檔存儲各類月、年報表等結構化數據文件,無法考慮實時報文等結構化、雷達等非結構化氣象資料的歸檔存儲問題。2020年寧夏氣象信息中心建成1PB容量的存儲服務器(簡稱NAS),為寧夏非結構化氣象資料的歸檔提供了存儲條件。

本文在分析寧夏氣象資料歸檔流程的基礎上,設計開發了“寧夏氣象資料自動歸檔管理系統”(簡稱“歸檔系統”),能夠實現氣象資料自動歸檔、網頁查詢下載、歸檔率統計等功能,提高了氣象資料業務的工作效率。

1 歸檔資料范圍

按照《氣象資料分類與編碼》[7]中氣象資料分類規定,歸檔系統將寧夏行政區域內地面、高空、輻射、農氣、大氣成分、雷達等氣象觀測數據列入自動歸檔范圍;經征詢省級天氣氣候業務單位需求,選定天氣預報核心業務系統所需基礎數值模式產品、天氣圖等資料也列入自動歸檔范圍,共計7個大類、22種(表1)。

表1 自動歸檔氣象資料種類表Tab.1 Automatic archiving of meteorological data type table

2 系統設計

2.1 總體架構

歸檔系統以數據收發業務監控系統(簡稱CTS)和氣象信息綜合分析處理系統(簡稱MICAPS)為數據源,以虛擬化服務器為硬件支撐,采用B /S體系架構,Web網站采用Windows+IIS+ASP.NET架構,資料歸檔程序采用Linux+Shell的結構,數據庫采用Linux+MySQL數據庫語言,服務器端包括Web 服務器、歸檔服務器和數據庫服務器,客戶端基于Web可視化技術采用瀏覽器方式實現歸檔氣象資料查詢下載和資料歸檔率統計結果展示[8,9]。

歸檔系統總體架構在數據資源標準化體系的規范下和基礎設施的支持下設計,采用3層體系架構:服務層、處理層和數據層[10,11](圖1)。其中服務層為標準的Web 客戶端,負責與用戶交互,并通過Bootstrap表格方式實現各類歸檔氣象資料的查詢展示;處理層通過定時任務、節目表實現氣象資料的自動歸檔和日志信息入本地數據庫;數據層是數據的來源,包括CTS和MICAPS。

圖1 總體架構圖Fig.1 Overall structure picture

2.2 功能設計

歸檔系統功能設計主要包括處理層的氣象資料自動歸檔和服務層的歸檔氣象資料查詢2大模塊,其中氣象資料自動歸檔模塊包括實時氣象資料歸檔、預報業務資料歸檔、歸檔資料日志入庫、歸檔資料日志信息統計等4個子模塊;歸檔氣象資料查詢模塊包括歸檔氣象資料查詢下載、資料歸檔率統計等2個子模塊。

2.2.1 自動歸檔模塊設計 自動歸檔策略(圖2):實時氣象資料的歸檔程序根據配置信息每日定時從CTS下載前1 d的氣象資料存入NAS盤陣;預報業務資料的歸檔程序根據配置信息每日定時從MICAPS數據庫下載前1 d的預報資料存入NAS盤陣;歸檔資料日志入庫程序遍歷NAS盤陣的歸檔目錄,并將歸檔信息存入歸檔文件日志表。歸檔資料日志信息統計程序每日定時生成當日節目表,根據歸檔文件日志表統計前1 d歸檔資料入庫信息,并存入歸檔文件信息統計表。具體功能設計如下:

圖2 歸檔策略Fig.2 Archive policy

(1)實時氣象資料歸檔。歸檔系統從CTS系統獲取各類實時氣象資料。CTS系統具備資料推送功能,但推送失敗并達到一定程度會影響業務運行。為減少對CTS系統的影響,歸檔系統采用Shell腳本編寫自動歸檔程序,定時從CTS系統通過FTP方式采集氣象資料。自動歸檔程序部署在Linux系統中,該計算機掛載氣象資料歸檔存儲的NAS盤陣,通過基于Linux計劃任務(crontab)實現數據的自動下載。

(2)預報業務資料歸檔。用于MICAPS[12]產品數據文件的冷備份業務,也可用于近實時預報業務資料的備份業務。預報業務資料歸檔程序部署在Windows計算機中。該計算機掛載氣象資料歸檔存儲的NAS盤陣,采用每日定時備份方式從MICAPS分布式數據庫系統中獲取歐洲中心模式產品(ECMWF)、地面天氣圖和高空天氣圖數據存儲至NAS盤陣。

(3)歸檔資料日志入庫。用于實現從歸檔氣象資料存儲NAS盤陣中列出歸檔資料,生成歸檔文件日志并寫入歸檔文件日志表。歸檔氣象資料日志入庫程序遍歷歸檔氣象資料存儲NAS盤陣,列出已歸檔文件,并根據歸檔資料配置信息表獲取歸檔文件日志信息,寫入歸檔文件日志表。歸檔氣象資料日志入庫程序采用Shell腳本編寫,部署在Linux系統中。該計算機掛載氣象資料歸檔存儲的NAS盤陣,通過計劃任務(crontab)實現每日定時歸檔資料日志入庫。

(4)歸檔資料日志信息統計。用于實現生成每日應歸檔氣象資料數量,統計每日實際歸檔氣象資料數量。歸檔日志信息統計程序根據傳輸監控系統監控節目表或本地配置信息生成每日應歸檔氣象資料節目表,并從歸檔文件日志表中統計實際歸檔氣象資料數量,寫入歸檔文件信息統計表。

2.2.2 查詢下載模塊設計 目前寧夏氣象部門結構化數據在大數據云平臺入庫后可長時間存儲并提供數據服務,而非結構化數據在大數據云平臺一般存儲3~6個月。因此歸檔系統的歸檔氣象資料查詢下載只針對非結構化數據,主要包括模式產品(ECMWF、WRF)、雷達(全仰角、逐仰角、PUP產品)和天氣圖(地面、高空)等3大類。模式預報和天氣圖資料按時次查詢,雷達資料按時次、站號查詢,查詢后以表格形式顯示,并可從遠程服務器實現歸檔氣象資料下載。

資料查詢的設計:選擇查詢條件后,利用ajax方法將查詢條件傳入后臺,從MySQL數據庫歸檔文件日志表中查詢資料的文件名、路徑、文件大小、觀測時間等信息,通過json串將查詢的數據傳入網頁,并通過Bootstrap表格的形式展示。

資料下載的設計:根據從MySQL數據庫歸檔文件日志表中查詢資料的文件名、路徑,通過ftp方式從遠程服務器上逐個下載文件,判斷遠程服務器上是否存在下載的文件,若存在則將文件依次下載至程序所在共享目錄share下,若不存在則繼續循環判斷下個文件是否存在。判斷下載的資料是否為ECMWF資料,若是則統計下載的文件大小sum值,判斷sum值是否大于2G,若是對下載的文件進行打包壓縮;若下載的資料非ECMWF資料,則直接打包壓縮。將下載的文件名和路徑組成json串傳回至前臺,前臺根據文件名和路徑從共享目錄下載資料。下載歸檔資料流程圖見圖3。

圖3 下載歸檔資料流程圖Fig.3 Download archived data flow chart

資料歸檔率統計。根據實際歸檔業務需求,實現7大類、22種歸檔氣象資料按不同時間段進行歸檔率統計。查詢條件中的資料類型,資料種類,市、縣、站信息均來自MySQL數據庫歸檔文件信息統計表,根據該數據庫的表信息的變動可以自動變動查詢條件,并以表格的形式顯示歸檔率統計情況。

3 關鍵技術

3.1 MySQL數據庫技術

MySQL作為一種關系型數據庫管理系統,所使用的 SQL 語言是用于訪問數據庫的最常用標準化語言,支持多個開發語言,特別是開放源碼,被許多開發選擇[13,14]。本歸檔系統亦選用MySQL作為數據庫管理軟件。

歸檔系統數據庫數據表包括:歸檔文件配置信息表、歸檔文件日志表、歸檔文件信息統計表、站號與行政編碼信息對照表。其中歸檔文件配置信息表(ARCHIVE_TYPE_INFO)用于存儲歸檔系統配置信息,包括資料類型、是否下載、下載路徑、歸檔路徑等;歸檔文件日志表(ARCHIVE_FILE_LOG_YYYY)用于存儲歸檔文件信息,包括文件名、文件大小、文件路徑等;歸檔文件信息統計表(ARCHIVE_FILE_STAT)用于存儲歸檔文件統計信息,包括資料類型、應歸檔文件/站點數、實際歸檔文件/站點數等;站號與行政編碼信息對照表(ARCHIVE_FILE_PROGRAM)用于存儲歸檔系統站號、行政編碼對應關系,包括資料類型、應歸檔文件/站點數、實際歸檔文件/站點數等。

3.2 Shell腳本技術

Shell是一個命令行解釋器,采用C語言編寫,遵循一定的語法將輸入命令加以解釋并傳給系統,是用戶使用Linux的橋梁。Linux服務器部署Shell腳本,結合crontab可實現腳本的定時高效執行,提高了運維工作效率[15]。

歸檔系統實時氣象資料歸檔程序和歸檔資料日志入庫程序均采用Shell腳本編寫,通過crontab定時執行腳本,實現資料定時下載和歸檔資料寫入數據庫。

3.3 NAS網絡存儲技術

NAS全稱為Network Attached Storage(網絡附屬存儲),是通過網絡訪問一臺存儲服務器,其最大的特點是存儲空間共享,并可根據存儲容量需求進行擴展。

2020年寧夏氣象信息中心建成1PB容量的NAS存儲,目前NAS資料存儲情況(表2),還有約910 TB空間可使用。歸檔氣象資料存儲空間需求大,不僅有結構化資料,還有非結構化資料,如模式預報1 a存儲量約10 TB?;贜AS的大容量和存儲空間共享的優點,歸檔系統選用NAS作為存儲設備,并可隨時擴展歸檔存儲空間。

表2 NAS資料存儲情況表Tab.2 NAS data storage table

3.4 基于Bootstrap氣象數據可視化技術

Bootstrap是基于HTML、CSS、JavaScript 開發的前端開發框架,提供了窗體、字體排印、導航、按鈕等其它組件,使得 Web 開發更加快捷[16]。

基于Bootstrap功能,歸檔系統采用基于Bootstrap的B/S開發技術,通過瀏覽器實現基于應用層 http 協議提供的 Web 服務,用戶通過瀏覽器即可查看Bootstrap表格形式的歸檔氣象資料。

4 應用實現

歸檔系統于2022年1月開始進行業務試運行,各模塊均運行正常。

4.1 自動歸檔

選取2022年2—4月,統計自動歸檔程序歸檔氣象資料的運行情況(表3)。氣象資料自動歸檔約800萬個數據文件、2.9 TB存儲量,其中雷達資料數量最多約580萬個,模式預報資料存儲量最大約2.8 TB。只有地面資料和輻射資料的歸檔率未達到100%,其中地面資料是因逐小時資料中有個別站上傳報文缺報導致,輻射資料是因1個站軟件故障一直未上傳報文導致。從歸檔率整體情況看,自動歸檔模塊能夠及時、完整地自動歸檔氣象資料。

4.2 查詢下載

以前氣象資料一般利用FTP從服務器共享目錄內獲取,極大地限制了氣象資料的共享性。歸檔系統基于C#、jQuery、Bootstrap和json等技術[17-19]開發歸檔氣象資料查詢下載頁面,通過瀏覽器即可在線查詢下載歸檔氣象資料。

根據界面選定的查詢條件,可將氣象資料查詢、資料歸檔率統計以Bootstrap表格格式顯示,使用表格右上角的搜索框可以快速查找用戶需要的資料。如需下載,可自動將查詢到的歸檔氣象資料下載到本地谷歌瀏覽器的默認路徑。

5 結論

根據寧夏現有氣象探測資料的種類和天氣預報核心業務系統所需基礎預報資料,制定符合氣象行業標準和省級氣象資料存儲管理規定的自動歸檔策略,設計開發“寧夏氣象資料自動歸檔管理系統”,實現了寧夏氣象資料自動歸檔、Web查詢下載和自動歸檔資料統計等功能,不僅為天氣預報業務提供基礎預報資料,還可為各級業務管理部門了解掌握屬地氣象探測資料的歸檔情況提供查詢工具。同時系統具有可擴展性和可維護性,能適應今后新增氣象資料的自動歸檔業務需求。

猜你喜歡
日志結構化寧夏
一名老黨員的工作日志
促進知識結構化的主題式復習初探
扶貧日志
結構化面試方法在研究生復試中的應用
寧夏
游學日志
寧夏煤電博弈
寧夏
基于圖模型的通用半結構化數據檢索
寧夏:首辦立法論辯會
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合