胡麗麗
(江西省氣象信息中心,江西 南昌 330096)
氣象事業關乎國計民生,氣象因素的變化和服務對中國的民航、工業、農業以及居民的日常活動等等息息相關。圍繞《全國氣象發展“十三五”規劃》 提出的“智慧氣象”發展目標,提高氣象工作的服務保障,規避自然災害就顯得尤為重要。隨著江西省氣象技術信息化、現代化的發展,氣象業務系統和氣象傳輸數據種類呈現了迅猛增長的態勢。地面數據、高空數據、輻射數據、農氣數據、衛星數據、服務產品等氣象數據類別不斷增加,數據體量也變得尤為龐大,給數據的存儲和管理帶來了新的要求和挑戰。另外,為了提高氣象服務質量、提升氣象業務工作效率和氣象防災減災保障工作水平,數據的資源、計算能力、數據環境以及數據質量等水平的提升就顯得尤為重要。
氣象大數據要實現從氣象信息化走向氣象現代化的過程,要實現基礎支撐、人工智能、大數據處理、云計算建設等功能與模塊的有效融合,就必定要實現氣象數據平臺進入“云”的時代的歷程,全面實現支撐“云+端”的數據處理模式。在實現氣象數據現代化的進程中,氣象數據資源的建設是必不可少的一項工作。而氣象歷史數據是構成氣象數據的一個重要組成部分,氣象歷史數據為天氣預警預報、氣象預測以及各類氣象服務和科學研究的開展,提供了數據研究基礎,促進了氣象事業防災減災的工作發展。氣象數據的遷移成為了氣象信息技術現代化進程中不可缺少的一項。目前,氣象歷史數據遷移存在重復、遺漏等問題,而要確認這些問題必須要通過查詢大量源數據,并把源數據與目標數據對比。然而,面對如此龐大的數據體量,這項工作將會變得十分復雜和煩瑣,并且無法保證全部的重復數據和遺漏數據被發現,這將導致遷移過來的數據質量無法得到保障,同時也大大降低了工作效率。這個時候引入一種高效的數據遷移技術就顯得十分重要。
數據的遷移技術是一種信息現代化的產物,其目的是為了提高各行業領域內的數據遷移工作的高效性、完整性,其主要的應用過程是選擇目標數據、對選擇的目標數據進行簡單的校對和處理、加載目標數據,最后形成完整的數據庫[1]。與此同時,對遷移過來的數據要求具備完整性、準確性、標準化和可靠性。
文獻[2]中,介紹了ETL技術在數據倉庫中的應用。ETL 是一種構建數據庫的步驟和方法。依據實際數據庫構建過程中的需求和特定數據關系,實現源數據庫到目標數據庫的數據轉移。并且,同時完成數據的清洗和轉換。ETL 應用于歷史數據遷移的過程是從源數據抽取數據,根據源數據庫中的表或者文件,源數據庫和目標數據庫的模型是否一致,目標數據庫需要的字段來設置抽取的規則。接著就是數據的轉換,數據的轉換過程主要針對源數據庫和目標數據庫的結構是存在的差異,比如數據表命名方式、取值范圍、字段的命名方式等情況進行數據轉換處理,讓遷移過來的數據滿足目標數據庫對數據的要求。最后是數據加載的過程,把處理好的規范數據加載到目標數據庫中,從而建立目標數據,重新構成數據倉庫。
ETL 工具在歷史數據遷移時所表現出來的優點是:支持跨平臺遷移數據;如果遷移的數據體量不大,就可以手動實現數據遷移的工作,操作簡單;圖形化的界面更有利于維護人員的日常管理;對日志和權限的管理很嚴格,進一步規范數據倉庫。其缺點是:需要大量的目標數據庫日志空間;如果需要遷移的數據體量過大,甚至到了億級,那么就需要引入一款收費軟件。由于氣象歷史數據體量龐大,一張表通常有幾億甚至幾百億的數據量,如果采用ETL 工具進行歷史數據遷移,則需要采用Informatica 軟件,然而Informatica 軟件需要收費。因此,采用ETL 工具進行氣象歷史數據的遷移工作顯得并不劃算。再則,Informatica 軟件需要充足的學習準備,在業務工作中應用會大大降低工作效率,也給業務維護管理人員帶來困難。
文獻[3]闡述了數據遷移自適應算法TCA、JDA、CORAL、GFK、BDA、EasyTransfer。在數據遷移的效果上來看EasyTransfer 最優。EasyTransfer 是一種基于PAI-TensorFlow 開發的深度遷移學習框架,通過線性編程取得浮點型權重,充分考慮樣本與中心、樣本與樣本之間的關系[4-5]。
江西省氣象2016年開始正式運行CIMISS 系統(全國綜合氣象信息共享系統),該系統實現了對氣象數據的收集、傳輸、處理、分發、存儲、共享、監控等功能,對江西省的氣象事業發展起到了至關重要的作用[6]。然而,隨著氣象信息技術的發展,氣象數據也呈現出爆炸式增長的趨勢,為了更好地支持氣象業務發展保障民生,氣象大數據云平臺應運而生。與此同時,數據庫也由Oracle 數據庫更換為現在的虛谷數據庫。
Oracle 數據庫是一款比較經典的關系型數據系統,相對而言功能強大,應用比較廣泛[7]。其發展歷程可以追溯到1978年,由甲骨文推出,是一種大型的數據庫,至今已發展33年。Oracle 數據庫的特點是:①支持大量事務的處理,并且支持多用戶;②相對而言在數據的安全性、數據的完整性以及穩定性方面比較好;③支持邏輯上的統一管理數據庫,實現了分布式的處理數據方式;④在Linux、Windows 等平臺上都可以較好地進行使用,同時也支持數據的平臺之間移植[8-9]。其邏輯結構如圖1 所示。

圖1 Oracle 數據庫邏輯結構圖
虛谷數據庫是一種國產的關系型數據庫[10],它的功能十分強大,相對于早期的網狀數據庫和層次數據庫而言具有安全性高、可靠性高、可移植性高、可管理性高、數據存儲量級大、使用方便等特點,并且推出虛谷云大數據平臺。2005年,虛谷數據庫V1.0 版本在成都歐冠信息技術有限責任公司問世;2007年數據庫完成產品化工作并且虛谷數據庫V2.0 版本正式投入應用;2008年虛谷數據庫V3.0 版本研發成功,并投入應用;2011年虛谷數據庫V6.0 成功發布[11];2017年虛谷數據庫發布V10.0 版本,并且研發出了云數據平臺。引入虛谷數據庫后,氣象數據的存儲方式發生了改變,數據利用同步的功能存入緩沖庫,服務庫和分析庫。這種體系,保證了并發時的響應能力,也保證了數據的安全性,又有利于氣象業務的正常展開[12]?,F在已經在國產數據庫里占有十分重要的位置。虛谷數據庫的系統結構如圖2 所示,其邏輯結構如圖3 所示。

圖2 虛谷數據庫系統框架

圖3 虛谷數據庫邏輯結構
數據遷移最重要的是保證數據的完整性、安全性以及遷移的速度。因此在數據遷移之前應該做到先備份,這樣就不會發生因數據遷移時出現故障而導致數據丟失。江西省氣象歷史數據對于研究江西省氣象災害特征和天氣特征具有重要的意義,對于江西省的防災、減災、生態建設、人民生活、社會建設等都有重要的作用。因此,做好歷史數據的遷移備份十分重要。從常用的數據遷移方法中找出相對高效、可靠的數據遷移方法尤為必要。
DATA PUMP 方法在數據遷移中運用十分廣泛,是一種比較快速、高效的數據庫與數據庫之間數據傳輸的技術之一[13]。此次江西氣象數據的遷移的需求是從Oracle 數據庫遷移到虛谷數據庫,然后再進行虛谷數據庫和gbase 數據庫之間的數據同步。DATA PUMP 方法數據遷移過程是先創建對應的用戶和空間,讓原數據庫停止工作,并且保持靜態,然后再進行數據的遷移備份工作[14]。這種遷移方法的優點是:支持數據庫與數據庫之間的跨平臺傳輸,傳輸效率相對較高,操作相對方便。其缺點是數據遷移過程中需要停止原數據庫的服務,對環境的要求較高。而根據氣象業務的需要,遷移氣象數據的時候需要保持兩邊數據庫的業務應用正常進行。由此可以看出,從數據庫的層面上來說,DATA PUMP 遷移方法是適用于氣象數據的遷移的。但相對而言,面對龐大的氣象歷史數據,DATA PUMP 并不是最佳的遷移方法。
目前,江西大數據云平臺的建設過程中,主要采用的氣象歷史數據遷移方式是國家局下發程序,從Oracle 數據庫把歷史數據導入到虛谷數據庫,再從實時應用庫(虛谷)將歷史數據同步到歷史分析庫(gbase)中。這種氣象歷史數據遷移方法的原理是通過查詢原數據庫中相應表格的某一時間段內的數據,然后把查詢到的數據插入或更新到目標數據庫中。這種方法具體執行步驟如下:①在目標數據庫內建立需要導入的表結構,包括表名、對應字段名、數據類型、分區以及約束等;②對照原數據庫和目標數據庫內相應的表結構和字段,寫導入腳本;③執行導入程序;④通過查詢導入程序執行過程中的日志,來判斷數據是否導入成功。這種方法能滿足氣象歷史數據的遷移需求。但是需要每張表都進行導入腳本的單獨編寫,操作起來并不簡便。該遷移方法不能保證數據的完整性,亦無法判別數據是否有遺漏或者重復,只有通過人工的方式,在數據庫中查詢數據,進行分析判斷,甄別定位問題,耗費的人力十分巨大,并且定位和甄別過程中也容易出現錯誤,使得工作效率非常低下。如果虛谷服務庫沒有目標數據,還需要從CIMISS 的數據庫(Oracle)或者其他數據源進行補錄,這又要涉及到異構數據體之間的遷移轉換問題。
近年來,科技發展迅猛,人民的生活質量與需求也在不斷提高,中國的氣象事業也在不斷前進。提高容災減災能力,提升氣象數據質量,提高服務社會水平是氣象人一生的追求。氣象數據的完整、快速遷移對于氣象事業的發展將起到至關重要的作用。因此,為了解決數據遷移過程中出現的問題排查以及應對方法,研究不同數據庫的歷史數據導入程序,提高氣象歷史數據的遷移效率,對氣象數據遷移方法的研究將有重大意義。