楊 鵬
(內(nèi)蒙古自治區(qū)氣象信息中心 內(nèi)蒙古 呼和浩特 010051)
經(jīng)過多年發(fā)展,自治區(qū)氣象信息化能力不斷提高,氣象數(shù)據(jù)存儲與服務(wù)能力不斷增強,天氣預(yù)報、氣候預(yù)測和數(shù)值預(yù)報業(yè)務(wù)以及科研系統(tǒng)的基礎(chǔ)資源環(huán)境大幅改善,但面向大數(shù)據(jù)服務(wù)的現(xiàn)實需求,存儲、共享數(shù)據(jù)種類不完整,數(shù)據(jù)供應(yīng)不足,自治區(qū)特色生態(tài)氣象觀測、人工影響天氣觀測及多部門行業(yè)共享數(shù)據(jù)沒有實現(xiàn)快速采集并納入統(tǒng)一規(guī)范化管理,難以發(fā)揮應(yīng)用價值。
2016年氣象部門構(gòu)建了基于全國氣象綜合信息共享平臺(以下簡稱“CIMISS”)的集約化數(shù)據(jù)環(huán)境,標(biāo)準(zhǔn)、統(tǒng)一地支撐氣象核心業(yè)務(wù)系統(tǒng)的氣象數(shù)據(jù)生態(tài)已初步形成,但數(shù)據(jù)采集形式單一,不能滿足行業(yè)、部門數(shù)據(jù)采集匯聚需求;無法支持分布式計算、流式計算、挖掘分析、機器學(xué)習(xí)等新型技術(shù)框架,不能快速響應(yīng)內(nèi)部、行業(yè)和決策用戶的數(shù)據(jù)加工、處理需求;無法滿足長序列歷史數(shù)據(jù)及分鐘級數(shù)據(jù)檢索的性能需求,亟須實現(xiàn)歷史、實時資料一體化在線訪問[1]。因此,內(nèi)蒙古自治區(qū)氣象大數(shù)據(jù)綜合用平臺應(yīng)運而生,它將負(fù)責(zé)解決數(shù)據(jù)集約、業(yè)務(wù)集約問題,有效支撐氣象業(yè)務(wù)系統(tǒng)和各類數(shù)據(jù)應(yīng)用,全面支撐“云+端”生態(tài)運行。
從數(shù)據(jù)形態(tài)來講,氣象數(shù)據(jù)主要分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。結(jié)構(gòu)化數(shù)據(jù)包括氣象臺站的各類觀測要素資料,如地面、高空、輻射、農(nóng)業(yè)氣象、大氣成分等;非結(jié)構(gòu)化數(shù)據(jù)包括數(shù)值預(yù)報、氣象災(zāi)害、雷達(dá)、衛(wèi)星等[2]。
(1)業(yè)務(wù)數(shù)據(jù):基于CIMISS統(tǒng)一數(shù)據(jù)環(huán)境,自治區(qū)每日實時收集來自國內(nèi)外氣象觀測數(shù)據(jù)、加工處理后產(chǎn)品數(shù)據(jù)以及部門間交換數(shù)據(jù)等多種數(shù)據(jù)。數(shù)據(jù)種類包括:地面、高空、輻射、農(nóng)業(yè)氣象和生態(tài)氣象、大氣成分、衛(wèi)星、雷達(dá)、氣象災(zāi)害、數(shù)值預(yù)報產(chǎn)品、氣象服務(wù)產(chǎn)品和其他資料等共11大類[3]?,F(xiàn)有數(shù)據(jù)見表1。
表1 數(shù)據(jù)增量及存儲期限詳情信息表
其中結(jié)構(gòu)化數(shù)據(jù)包含地面、高空、海洋、輻射、農(nóng)業(yè)氣象、大氣成分等種類的數(shù)據(jù),6種數(shù)據(jù)現(xiàn)存數(shù)據(jù)量為8.8 TB。非結(jié)構(gòu)化數(shù)據(jù)包含數(shù)值預(yù)報、氣象災(zāi)害、雷達(dá)、衛(wèi)星、服務(wù)產(chǎn)品等種類的數(shù)據(jù),存數(shù)據(jù)量為141.7 TB。
未來5年的數(shù)據(jù)增量:考慮各個存儲庫的年增長量,未來5年平均年增長率按照20%計算,按照計算公式:S=a1×(1+q)5∑=a1×(1+q)5(a1為第1年數(shù)據(jù)存儲量,q為年增長率)進(jìn)行計算:結(jié)構(gòu)化數(shù)據(jù)未來5年數(shù)據(jù)存儲量為8.8TB×(1+20%)5=22(TB);非結(jié)構(gòu)化數(shù)據(jù)未來5年數(shù)據(jù)存儲量為141.7TB×(1+20%)5=352.59(TB)。
(2)其他數(shù)據(jù):通過歷史資料拯救及數(shù)字化工作,收集整理了全區(qū)各類紙質(zhì)氣象記錄檔案資料、各類氣象記錄檔案數(shù)字化圖像文件、臺站歸檔電子資料、錄入的歷史資料數(shù)據(jù)集、國家氣象局下發(fā)數(shù)據(jù)集、整編數(shù)據(jù)等文本文件;通過定期制作和各臺站匯交的地面、高空、輻射月報和年報資料。累積長序列數(shù)據(jù)集總量約20 TB。
未來5年的數(shù)據(jù)增量:考慮各個存儲庫的年增長量,未來5年平均年增長率按照20%計算,按照計算公式:S=a1×(1+q)5∑=a1×(1+q)5(a1為第一年數(shù)據(jù)存儲量,q為年增長率)進(jìn)行計算:非結(jié)構(gòu)化數(shù)據(jù)未來5年數(shù)據(jù)存儲量為18.04TB×(1+20%)5=44.88(TB)。
對于結(jié)構(gòu)化數(shù)據(jù)可根據(jù)數(shù)據(jù)的交互需求采用關(guān)系型數(shù)據(jù)庫與NOSQL數(shù)據(jù)庫相結(jié)合的存儲設(shè)計,以滿足數(shù)據(jù)實時查詢檢索和統(tǒng)計計算分析的需求。針對非結(jié)構(gòu)化數(shù)據(jù),根據(jù)數(shù)據(jù)檢索維度設(shè)計其分布式索引信息實時訪問,采用分布式NAS文件類型存儲,用以滿足此類數(shù)據(jù)的各種業(yè)務(wù)訪問需求。同時針對非結(jié)構(gòu)化數(shù)據(jù)的實時共享訪問需求,提供分布式KV數(shù)據(jù)庫存儲形式,將雷達(dá)、數(shù)值預(yù)報、衛(wèi)星數(shù)據(jù)進(jìn)行分片打散,從而提供更為高效的基于時空維度的數(shù)據(jù)實時訪問及可視化顯示能力[3-4]。
2.1.1 數(shù)據(jù)分庫分表設(shè)計
單表數(shù)據(jù)量限制在500萬,表之間數(shù)據(jù)無傾斜,盡量均勻分布,因此應(yīng)盡量選好分庫分表鍵。元數(shù)據(jù)信息表,以廣播表的形式,在各分庫里均有副本,保證JOIN操作的高效檢索。數(shù)據(jù)的分庫分表數(shù)量按照數(shù)據(jù)的實際存儲時限來確定,并根據(jù)總數(shù)據(jù)容量進(jìn)行分布式數(shù)據(jù)庫資源規(guī)模的確定。進(jìn)行數(shù)據(jù)檢索時,加入分庫分表鍵條件,這樣數(shù)據(jù)將直接定位到分庫,極大縮短查詢時間。
2.1.2 讀寫分離設(shè)計
數(shù)據(jù)的解碼入庫,與數(shù)據(jù)的讀取,在數(shù)據(jù)庫IO層面會產(chǎn)生沖突,從而導(dǎo)致兩者的性能降低,采用分布式數(shù)據(jù)庫產(chǎn)品提供數(shù)據(jù)的讀寫分離能力,并保證讀庫與主庫主鍵具有很小的數(shù)據(jù)延時。
2.1.3 數(shù)據(jù)索引設(shè)計
分布式關(guān)系型數(shù)據(jù)庫,支持傳統(tǒng)的數(shù)據(jù)索引,從而為高頻訪問數(shù)據(jù)的查詢進(jìn)行快速定位和緩沖,在針對各類匯交數(shù)據(jù)的訪問,根據(jù)高頻檢索條件進(jìn)行索引設(shè)計,從而保證大部分查詢可以命中索引,實現(xiàn)數(shù)據(jù)的快速檢索。
2.1.4 提高數(shù)據(jù)庫運行效率的辦法
在數(shù)據(jù)庫物理設(shè)計時,降低范式,增加冗余,少用觸發(fā)器,多用存儲過程。當(dāng)計算非常復(fù)雜,而且記錄條數(shù)非常巨大時,復(fù)雜計算要先在數(shù)據(jù)庫外面,以文件系統(tǒng)方式用C++語言計算處理完成之后,最后才入庫追加到表中去。對數(shù)據(jù)庫管理系統(tǒng)DBMS進(jìn)行系統(tǒng)優(yōu)化,即優(yōu)化各種系統(tǒng)參數(shù),如緩沖區(qū)個數(shù)。使用面向數(shù)據(jù)的SQL語言進(jìn)行程序設(shè)計時,盡量采取優(yōu)化算法[5]。
分布式關(guān)系型數(shù)據(jù)庫hbase,用于結(jié)構(gòu)化數(shù)據(jù)的實時查詢、檢索。分布式表格系統(tǒng)設(shè)計采用Cassandra數(shù)據(jù)庫集群存儲監(jiān)視指標(biāo)數(shù)據(jù),支持高吞吐量的大量寫入、低延遲頁面刷新。采用數(shù)據(jù)庫集群存儲日志事件類數(shù)據(jù),支持持續(xù)大量的寫入、關(guān)鍵字查詢、查詢統(tǒng)計等。分布式文件系統(tǒng)采用分布式NAS[6-7]。
2.3.1 氣象結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)
根據(jù)結(jié)構(gòu)化數(shù)據(jù)存儲規(guī)范,利用關(guān)系型數(shù)據(jù)庫技術(shù)建設(shè)氣象結(jié)構(gòu)化數(shù)據(jù)分布式存儲系統(tǒng),包括自動站數(shù)據(jù)庫、其他站點數(shù)據(jù)庫、結(jié)構(gòu)化數(shù)據(jù)分析庫、非結(jié)構(gòu)化數(shù)據(jù)索引庫等物理隔離的數(shù)據(jù)庫,用以存儲氣象觀測站點數(shù)據(jù)、文件產(chǎn)品的索引信息、新匯交數(shù)據(jù)。
2.3.2 非結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)
根據(jù)非結(jié)構(gòu)化數(shù)據(jù)存儲規(guī)范,利用分布式文件存儲系統(tǒng)和文件目錄結(jié)構(gòu)規(guī)范建設(shè)非結(jié)構(gòu)化數(shù)據(jù)實時庫和非結(jié)構(gòu)化數(shù)據(jù)歷史庫。非結(jié)構(gòu)化數(shù)據(jù)實時庫,主要滿足氣象核心業(yè)務(wù)系統(tǒng)對數(shù)據(jù)服務(wù)的需求。非結(jié)構(gòu)化數(shù)據(jù)實時庫具有實時性高、周期性短、訪問速度快、數(shù)據(jù)量不超過5PB等特點,提供應(yīng)用系統(tǒng)的直接訪問。非結(jié)構(gòu)化數(shù)據(jù)歷史庫,主要滿足科研用戶以及業(yè)務(wù)試驗系統(tǒng)對數(shù)據(jù)在線訪問的需求,保障歷史數(shù)據(jù)在線服務(wù)。非結(jié)構(gòu)化數(shù)據(jù)歷史庫具有全序列、歷史性、數(shù)據(jù)量大等特點,為應(yīng)用系統(tǒng)對歷史資料的分析提供數(shù)據(jù)資源。結(jié)構(gòu)化實時庫與歷史庫共同組成氣象結(jié)構(gòu)化的數(shù)據(jù)存儲全集,提供直接數(shù)據(jù)訪問[8-9]。
氣象大數(shù)據(jù)管理云平臺根據(jù)氣象應(yīng)用對數(shù)據(jù)訪問的需求,分為結(jié)構(gòu)化數(shù)據(jù)庫、非結(jié)構(gòu)化文件索引庫、緩沖庫、歷史分析庫、實時應(yīng)用庫。在進(jìn)行分布式數(shù)據(jù)庫分庫分表設(shè)計時,主要結(jié)合了各類數(shù)據(jù)庫的分庫分表特點,如針對hbase數(shù)據(jù)庫,主要按觀測時間進(jìn)行分庫分表設(shè)計,針對分析型數(shù)據(jù)庫,主要根據(jù)站點編號進(jìn)行hash分布鍵的設(shè)計。針對鍵表和要素表,則根據(jù)訪問特點,對要素表按外鍵id進(jìn)行hash分布鍵的設(shè)計。
數(shù)據(jù)索引需要建立在一個全局共同遵守的標(biāo)準(zhǔn)之上,這個標(biāo)準(zhǔn)中規(guī)定了在不同數(shù)據(jù)分片場景下各個數(shù)據(jù)節(jié)點應(yīng)共同包含或通過邏輯映射的方式包含相應(yīng)的屬性,如在水平分片場景下,各個數(shù)據(jù)節(jié)點應(yīng)共同擁有日期屬性,日期屬性可分為年、月、旬等多個分類方式。如同屬于年分類的場景下,則需要共同擁有年屬性;如在垂直分片場景下,各個數(shù)據(jù)節(jié)點應(yīng)共同擁有要素類型屬性。分布式存儲的核心問題是對數(shù)據(jù)分片和數(shù)據(jù)分配方式,分片的方式分為水平分片、垂直分片、導(dǎo)出分片和混合分片。
除對氣象數(shù)據(jù)進(jìn)行長序列、分布式、分級在線存儲外,還針對天氣分析、決策服務(wù)、氣候預(yù)測等應(yīng)用設(shè)計多副本數(shù)據(jù)庫和數(shù)據(jù)表。比如,針對天氣分析,基于分布式表格系統(tǒng)建立氣象數(shù)據(jù)實時應(yīng)用庫;針對決策服務(wù)和氣候預(yù)測,基于分布式分析型數(shù)據(jù)庫對長序列地面數(shù)據(jù)冗余存儲;針對應(yīng)用頻度和重要性不同,對地面分鐘和小時數(shù)據(jù)按國家站/區(qū)域站、常用要素/全要素的分表存儲,在接口層面進(jìn)行封裝,保障訪問的高效。設(shè)計存儲緩沖區(qū),暫存入庫后的數(shù)據(jù),基于SSD構(gòu)建小型關(guān)系型數(shù)據(jù)庫;所有用于服務(wù)的數(shù)據(jù)庫都從該緩沖區(qū)獲取數(shù)據(jù),基于數(shù)據(jù)庫提供的記錄變更信息開展數(shù)據(jù)同步。該同步方式實現(xiàn)了讀寫分離,除了高效、穩(wěn)定,還能適應(yīng)可能新增的副本需求[10-11]。見圖1。
數(shù)據(jù)訪問接口模塊實現(xiàn)數(shù)據(jù)訪問的接口封裝,包括數(shù)據(jù)庫數(shù)據(jù)訪問接口、文件訪問接口、安全認(rèn)證和請求監(jiān)聽功能,由于接口讀寫的高并發(fā)性,需要考慮接口封裝的多線程特性,包括端口監(jiān)聽、連接的建立以及數(shù)據(jù)傳輸?shù)目刂颇芰?。?shù)據(jù)訪問接口遵循氣象數(shù)據(jù)統(tǒng)一服務(wù)接口標(biāo)準(zhǔn)規(guī)范進(jìn)行設(shè)計,通過符合氣象標(biāo)準(zhǔn)的開放接口,并在其基礎(chǔ)上進(jìn)行定制開發(fā),保證各業(yè)務(wù)系統(tǒng)與大數(shù)據(jù)平臺的無縫對接,全面提升數(shù)據(jù)服務(wù)性能。
數(shù)據(jù)庫接口服務(wù)面向?qū)ο鬄閷I(yè)和非專業(yè)的數(shù)據(jù)使用人員,專業(yè)地為數(shù)據(jù)庫管理員提供數(shù)據(jù)庫接口,非專業(yè)在系統(tǒng)界面提供查詢、導(dǎo)出功能。數(shù)據(jù)庫數(shù)據(jù)訪問功能是當(dāng)系統(tǒng)對外提供結(jié)構(gòu)化數(shù)據(jù)訪問服務(wù)時,數(shù)據(jù)訪問請求首先通過數(shù)據(jù)訪問安全控制功能實現(xiàn)安全認(rèn)證,然后通過統(tǒng)一的數(shù)據(jù)獲取服務(wù)獲得數(shù)據(jù)的存儲位置信息以及數(shù)據(jù)結(jié)構(gòu)信息,然后根據(jù)數(shù)據(jù)存儲位置,訪問物理存儲的數(shù)據(jù)庫表,通過結(jié)構(gòu)信息可動態(tài)給出訪問形式化參數(shù)結(jié)構(gòu),通過給定參數(shù)動態(tài)拼裝查詢檢索和寫入信息對應(yīng)的SQL語句然后進(jìn)行真正的數(shù)據(jù)訪問,最后將數(shù)據(jù)結(jié)果以用戶定義的形式化結(jié)構(gòu)參數(shù)形態(tài)返回給用戶[12]。
文件訪問接口功能就是給外部系統(tǒng)提供文件類氣象數(shù)據(jù)的調(diào)用服務(wù)接口,接口封裝了文件的數(shù)據(jù)操作API,對外提供統(tǒng)一的服務(wù)接口供外部調(diào)用。文件訪問接口模塊主要完成的功能包括各類氣象專業(yè)化文件讀取,文件寫入功能。
(1)接收服務(wù)請求功能單元負(fù)責(zé)接收來自外部系統(tǒng)的服務(wù)請求,包括調(diào)用的API信息、調(diào)用者信息及調(diào)用參數(shù)信息。
(2)啟動服務(wù)進(jìn)程功能單元根據(jù)服務(wù)請求信息自動啟動服務(wù)進(jìn)程,這些服務(wù)進(jìn)程會根據(jù)請求信息自動匹配相關(guān)進(jìn)程。進(jìn)程啟動之后,交與其他模塊進(jìn)行處理。
(3)提交處理結(jié)果功能單元是經(jīng)存儲管理控制中心動態(tài)調(diào)度數(shù)據(jù)處理(融合、包處理等)和數(shù)據(jù)讀取服務(wù)(副本生成、壓縮、打包等)等操作后,將結(jié)果或結(jié)果集返回給請求服務(wù)的外部系統(tǒng)。文件訪問接口模塊主要由接收服務(wù)請求、啟動服務(wù)進(jìn)程和提交處理結(jié)果等功能組成。
氣象大數(shù)據(jù)綜合應(yīng)用平臺對氣象大數(shù)據(jù)資源進(jìn)行全流程規(guī)范化管理,對氣象及相關(guān)領(lǐng)域數(shù)據(jù)進(jìn)行快速匯聚、交換、質(zhì)控和入庫;基于算法庫和加工流水線,對數(shù)據(jù)進(jìn)行加工處理,生產(chǎn)豐富和高質(zhì)量的統(tǒng)計類、網(wǎng)格化、組網(wǎng)拼圖、天氣氣候分析等產(chǎn)品;完成200余種數(shù)據(jù)產(chǎn)品服務(wù),目前用戶數(shù)據(jù)達(dá)300個,預(yù)計同時支持動態(tài)用戶數(shù)達(dá)1 500人,最大支持同時檢索和下載資料并發(fā)數(shù)達(dá)1 500次/min,實現(xiàn)部門內(nèi)外用戶亞秒級數(shù)據(jù)響應(yīng)。對氣象大數(shù)據(jù)進(jìn)行規(guī)范、實現(xiàn)實時歷史一體化的在線存儲,提供統(tǒng)一、便捷、豐富的數(shù)據(jù)服務(wù)接口。開放內(nèi)部的數(shù)據(jù)管理能力,包括數(shù)據(jù)交換、產(chǎn)品加工、存儲服務(wù)等,平臺建成后每小時收集、解碼、存儲、共享數(shù)據(jù)量約14 GB,資料全流程管理均通過氣象大數(shù)據(jù)管理云平臺自動化實現(xiàn)。
氣象大數(shù)據(jù)綜合應(yīng)用平臺推動氣象數(shù)據(jù)開放共享,使氣象深度滲透、融入其他行業(yè)中,實現(xiàn)功能的互補和延伸。匯聚氣象數(shù)據(jù)、社會數(shù)據(jù)、行業(yè)數(shù)據(jù)等數(shù)據(jù)資源,實現(xiàn)氣象與其他產(chǎn)業(yè)間功能的互補和延伸,向政府、行業(yè)部門、軍隊和公眾用戶提供6大類160子類數(shù)據(jù)產(chǎn)品共享服務(wù),數(shù)據(jù)產(chǎn)品日服務(wù)量由原來的200 GB提升到500 G,支持1 000用戶并發(fā)訪問,充分發(fā)揮氣象信息蘊含的經(jīng)濟價值、社會價值。