胡麗麗
(江西省氣象信息中心,江西 南昌 330096)
氣象事業(yè)關(guān)乎國(guó)計(jì)民生,氣象因素的變化和服務(wù)對(duì)中國(guó)的民航、工業(yè)、農(nóng)業(yè)以及居民的日?;顒?dòng)等等息息相關(guān)。圍繞《全國(guó)氣象發(fā)展“十三五”規(guī)劃》 提出的“智慧氣象”發(fā)展目標(biāo),提高氣象工作的服務(wù)保障,規(guī)避自然災(zāi)害就顯得尤為重要。隨著江西省氣象技術(shù)信息化、現(xiàn)代化的發(fā)展,氣象業(yè)務(wù)系統(tǒng)和氣象傳輸數(shù)據(jù)種類呈現(xiàn)了迅猛增長(zhǎng)的態(tài)勢(shì)。地面數(shù)據(jù)、高空數(shù)據(jù)、輻射數(shù)據(jù)、農(nóng)氣數(shù)據(jù)、衛(wèi)星數(shù)據(jù)、服務(wù)產(chǎn)品等氣象數(shù)據(jù)類別不斷增加,數(shù)據(jù)體量也變得尤為龐大,給數(shù)據(jù)的存儲(chǔ)和管理帶來了新的要求和挑戰(zhàn)。另外,為了提高氣象服務(wù)質(zhì)量、提升氣象業(yè)務(wù)工作效率和氣象防災(zāi)減災(zāi)保障工作水平,數(shù)據(jù)的資源、計(jì)算能力、數(shù)據(jù)環(huán)境以及數(shù)據(jù)質(zhì)量等水平的提升就顯得尤為重要。
氣象大數(shù)據(jù)要實(shí)現(xiàn)從氣象信息化走向氣象現(xiàn)代化的過程,要實(shí)現(xiàn)基礎(chǔ)支撐、人工智能、大數(shù)據(jù)處理、云計(jì)算建設(shè)等功能與模塊的有效融合,就必定要實(shí)現(xiàn)氣象數(shù)據(jù)平臺(tái)進(jìn)入“云”的時(shí)代的歷程,全面實(shí)現(xiàn)支撐“云+端”的數(shù)據(jù)處理模式。在實(shí)現(xiàn)氣象數(shù)據(jù)現(xiàn)代化的進(jìn)程中,氣象數(shù)據(jù)資源的建設(shè)是必不可少的一項(xiàng)工作。而氣象歷史數(shù)據(jù)是構(gòu)成氣象數(shù)據(jù)的一個(gè)重要組成部分,氣象歷史數(shù)據(jù)為天氣預(yù)警預(yù)報(bào)、氣象預(yù)測(cè)以及各類氣象服務(wù)和科學(xué)研究的開展,提供了數(shù)據(jù)研究基礎(chǔ),促進(jìn)了氣象事業(yè)防災(zāi)減災(zāi)的工作發(fā)展。氣象數(shù)據(jù)的遷移成為了氣象信息技術(shù)現(xiàn)代化進(jìn)程中不可缺少的一項(xiàng)。目前,氣象歷史數(shù)據(jù)遷移存在重復(fù)、遺漏等問題,而要確認(rèn)這些問題必須要通過查詢大量源數(shù)據(jù),并把源數(shù)據(jù)與目標(biāo)數(shù)據(jù)對(duì)比。然而,面對(duì)如此龐大的數(shù)據(jù)體量,這項(xiàng)工作將會(huì)變得十分復(fù)雜和煩瑣,并且無法保證全部的重復(fù)數(shù)據(jù)和遺漏數(shù)據(jù)被發(fā)現(xiàn),這將導(dǎo)致遷移過來的數(shù)據(jù)質(zhì)量無法得到保障,同時(shí)也大大降低了工作效率。這個(gè)時(shí)候引入一種高效的數(shù)據(jù)遷移技術(shù)就顯得十分重要。
數(shù)據(jù)的遷移技術(shù)是一種信息現(xiàn)代化的產(chǎn)物,其目的是為了提高各行業(yè)領(lǐng)域內(nèi)的數(shù)據(jù)遷移工作的高效性、完整性,其主要的應(yīng)用過程是選擇目標(biāo)數(shù)據(jù)、對(duì)選擇的目標(biāo)數(shù)據(jù)進(jìn)行簡(jiǎn)單的校對(duì)和處理、加載目標(biāo)數(shù)據(jù),最后形成完整的數(shù)據(jù)庫[1]。與此同時(shí),對(duì)遷移過來的數(shù)據(jù)要求具備完整性、準(zhǔn)確性、標(biāo)準(zhǔn)化和可靠性。
文獻(xiàn)[2]中,介紹了ETL技術(shù)在數(shù)據(jù)倉庫中的應(yīng)用。ETL 是一種構(gòu)建數(shù)據(jù)庫的步驟和方法。依據(jù)實(shí)際數(shù)據(jù)庫構(gòu)建過程中的需求和特定數(shù)據(jù)關(guān)系,實(shí)現(xiàn)源數(shù)據(jù)庫到目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)轉(zhuǎn)移。并且,同時(shí)完成數(shù)據(jù)的清洗和轉(zhuǎn)換。ETL 應(yīng)用于歷史數(shù)據(jù)遷移的過程是從源數(shù)據(jù)抽取數(shù)據(jù),根據(jù)源數(shù)據(jù)庫中的表或者文件,源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的模型是否一致,目標(biāo)數(shù)據(jù)庫需要的字段來設(shè)置抽取的規(guī)則。接著就是數(shù)據(jù)的轉(zhuǎn)換,數(shù)據(jù)的轉(zhuǎn)換過程主要針對(duì)源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的結(jié)構(gòu)是存在的差異,比如數(shù)據(jù)表命名方式、取值范圍、字段的命名方式等情況進(jìn)行數(shù)據(jù)轉(zhuǎn)換處理,讓遷移過來的數(shù)據(jù)滿足目標(biāo)數(shù)據(jù)庫對(duì)數(shù)據(jù)的要求。最后是數(shù)據(jù)加載的過程,把處理好的規(guī)范數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)庫中,從而建立目標(biāo)數(shù)據(jù),重新構(gòu)成數(shù)據(jù)倉庫。
ETL 工具在歷史數(shù)據(jù)遷移時(shí)所表現(xiàn)出來的優(yōu)點(diǎn)是:支持跨平臺(tái)遷移數(shù)據(jù);如果遷移的數(shù)據(jù)體量不大,就可以手動(dòng)實(shí)現(xiàn)數(shù)據(jù)遷移的工作,操作簡(jiǎn)單;圖形化的界面更有利于維護(hù)人員的日常管理;對(duì)日志和權(quán)限的管理很嚴(yán)格,進(jìn)一步規(guī)范數(shù)據(jù)倉庫。其缺點(diǎn)是:需要大量的目標(biāo)數(shù)據(jù)庫日志空間;如果需要遷移的數(shù)據(jù)體量過大,甚至到了億級(jí),那么就需要引入一款收費(fèi)軟件。由于氣象歷史數(shù)據(jù)體量龐大,一張表通常有幾億甚至幾百億的數(shù)據(jù)量,如果采用ETL 工具進(jìn)行歷史數(shù)據(jù)遷移,則需要采用Informatica 軟件,然而Informatica 軟件需要收費(fèi)。因此,采用ETL 工具進(jìn)行氣象歷史數(shù)據(jù)的遷移工作顯得并不劃算。再則,Informatica 軟件需要充足的學(xué)習(xí)準(zhǔn)備,在業(yè)務(wù)工作中應(yīng)用會(huì)大大降低工作效率,也給業(yè)務(wù)維護(hù)管理人員帶來困難。
文獻(xiàn)[3]闡述了數(shù)據(jù)遷移自適應(yīng)算法TCA、JDA、CORAL、GFK、BDA、EasyTransfer。在數(shù)據(jù)遷移的效果上來看EasyTransfer 最優(yōu)。EasyTransfer 是一種基于PAI-TensorFlow 開發(fā)的深度遷移學(xué)習(xí)框架,通過線性編程取得浮點(diǎn)型權(quán)重,充分考慮樣本與中心、樣本與樣本之間的關(guān)系[4-5]。
江西省氣象2016年開始正式運(yùn)行CIMISS 系統(tǒng)(全國(guó)綜合氣象信息共享系統(tǒng)),該系統(tǒng)實(shí)現(xiàn)了對(duì)氣象數(shù)據(jù)的收集、傳輸、處理、分發(fā)、存儲(chǔ)、共享、監(jiān)控等功能,對(duì)江西省的氣象事業(yè)發(fā)展起到了至關(guān)重要的作用[6]。然而,隨著氣象信息技術(shù)的發(fā)展,氣象數(shù)據(jù)也呈現(xiàn)出爆炸式增長(zhǎng)的趨勢(shì),為了更好地支持氣象業(yè)務(wù)發(fā)展保障民生,氣象大數(shù)據(jù)云平臺(tái)應(yīng)運(yùn)而生。與此同時(shí),數(shù)據(jù)庫也由Oracle 數(shù)據(jù)庫更換為現(xiàn)在的虛谷數(shù)據(jù)庫。
Oracle 數(shù)據(jù)庫是一款比較經(jīng)典的關(guān)系型數(shù)據(jù)系統(tǒng),相對(duì)而言功能強(qiáng)大,應(yīng)用比較廣泛[7]。其發(fā)展歷程可以追溯到1978年,由甲骨文推出,是一種大型的數(shù)據(jù)庫,至今已發(fā)展33年。Oracle 數(shù)據(jù)庫的特點(diǎn)是:①支持大量事務(wù)的處理,并且支持多用戶;②相對(duì)而言在數(shù)據(jù)的安全性、數(shù)據(jù)的完整性以及穩(wěn)定性方面比較好;③支持邏輯上的統(tǒng)一管理數(shù)據(jù)庫,實(shí)現(xiàn)了分布式的處理數(shù)據(jù)方式;④在Linux、Windows 等平臺(tái)上都可以較好地進(jìn)行使用,同時(shí)也支持?jǐn)?shù)據(jù)的平臺(tái)之間移植[8-9]。其邏輯結(jié)構(gòu)如圖1 所示。
圖1 Oracle 數(shù)據(jù)庫邏輯結(jié)構(gòu)圖
虛谷數(shù)據(jù)庫是一種國(guó)產(chǎn)的關(guān)系型數(shù)據(jù)庫[10],它的功能十分強(qiáng)大,相對(duì)于早期的網(wǎng)狀數(shù)據(jù)庫和層次數(shù)據(jù)庫而言具有安全性高、可靠性高、可移植性高、可管理性高、數(shù)據(jù)存儲(chǔ)量級(jí)大、使用方便等特點(diǎn),并且推出虛谷云大數(shù)據(jù)平臺(tái)。2005年,虛谷數(shù)據(jù)庫V1.0 版本在成都?xì)W冠信息技術(shù)有限責(zé)任公司問世;2007年數(shù)據(jù)庫完成產(chǎn)品化工作并且虛谷數(shù)據(jù)庫V2.0 版本正式投入應(yīng)用;2008年虛谷數(shù)據(jù)庫V3.0 版本研發(fā)成功,并投入應(yīng)用;2011年虛谷數(shù)據(jù)庫V6.0 成功發(fā)布[11];2017年虛谷數(shù)據(jù)庫發(fā)布V10.0 版本,并且研發(fā)出了云數(shù)據(jù)平臺(tái)。引入虛谷數(shù)據(jù)庫后,氣象數(shù)據(jù)的存儲(chǔ)方式發(fā)生了改變,數(shù)據(jù)利用同步的功能存入緩沖庫,服務(wù)庫和分析庫。這種體系,保證了并發(fā)時(shí)的響應(yīng)能力,也保證了數(shù)據(jù)的安全性,又有利于氣象業(yè)務(wù)的正常展開[12]?,F(xiàn)在已經(jīng)在國(guó)產(chǎn)數(shù)據(jù)庫里占有十分重要的位置。虛谷數(shù)據(jù)庫的系統(tǒng)結(jié)構(gòu)如圖2 所示,其邏輯結(jié)構(gòu)如圖3 所示。
圖2 虛谷數(shù)據(jù)庫系統(tǒng)框架
圖3 虛谷數(shù)據(jù)庫邏輯結(jié)構(gòu)
數(shù)據(jù)遷移最重要的是保證數(shù)據(jù)的完整性、安全性以及遷移的速度。因此在數(shù)據(jù)遷移之前應(yīng)該做到先備份,這樣就不會(huì)發(fā)生因數(shù)據(jù)遷移時(shí)出現(xiàn)故障而導(dǎo)致數(shù)據(jù)丟失。江西省氣象歷史數(shù)據(jù)對(duì)于研究江西省氣象災(zāi)害特征和天氣特征具有重要的意義,對(duì)于江西省的防災(zāi)、減災(zāi)、生態(tài)建設(shè)、人民生活、社會(huì)建設(shè)等都有重要的作用。因此,做好歷史數(shù)據(jù)的遷移備份十分重要。從常用的數(shù)據(jù)遷移方法中找出相對(duì)高效、可靠的數(shù)據(jù)遷移方法尤為必要。
DATA PUMP 方法在數(shù)據(jù)遷移中運(yùn)用十分廣泛,是一種比較快速、高效的數(shù)據(jù)庫與數(shù)據(jù)庫之間數(shù)據(jù)傳輸?shù)募夹g(shù)之一[13]。此次江西氣象數(shù)據(jù)的遷移的需求是從Oracle 數(shù)據(jù)庫遷移到虛谷數(shù)據(jù)庫,然后再進(jìn)行虛谷數(shù)據(jù)庫和gbase 數(shù)據(jù)庫之間的數(shù)據(jù)同步。DATA PUMP 方法數(shù)據(jù)遷移過程是先創(chuàng)建對(duì)應(yīng)的用戶和空間,讓原數(shù)據(jù)庫停止工作,并且保持靜態(tài),然后再進(jìn)行數(shù)據(jù)的遷移備份工作[14]。這種遷移方法的優(yōu)點(diǎn)是:支持?jǐn)?shù)據(jù)庫與數(shù)據(jù)庫之間的跨平臺(tái)傳輸,傳輸效率相對(duì)較高,操作相對(duì)方便。其缺點(diǎn)是數(shù)據(jù)遷移過程中需要停止原數(shù)據(jù)庫的服務(wù),對(duì)環(huán)境的要求較高。而根據(jù)氣象業(yè)務(wù)的需要,遷移氣象數(shù)據(jù)的時(shí)候需要保持兩邊數(shù)據(jù)庫的業(yè)務(wù)應(yīng)用正常進(jìn)行。由此可以看出,從數(shù)據(jù)庫的層面上來說,DATA PUMP 遷移方法是適用于氣象數(shù)據(jù)的遷移的。但相對(duì)而言,面對(duì)龐大的氣象歷史數(shù)據(jù),DATA PUMP 并不是最佳的遷移方法。
目前,江西大數(shù)據(jù)云平臺(tái)的建設(shè)過程中,主要采用的氣象歷史數(shù)據(jù)遷移方式是國(guó)家局下發(fā)程序,從Oracle 數(shù)據(jù)庫把歷史數(shù)據(jù)導(dǎo)入到虛谷數(shù)據(jù)庫,再從實(shí)時(shí)應(yīng)用庫(虛谷)將歷史數(shù)據(jù)同步到歷史分析庫(gbase)中。這種氣象歷史數(shù)據(jù)遷移方法的原理是通過查詢?cè)瓟?shù)據(jù)庫中相應(yīng)表格的某一時(shí)間段內(nèi)的數(shù)據(jù),然后把查詢到的數(shù)據(jù)插入或更新到目標(biāo)數(shù)據(jù)庫中。這種方法具體執(zhí)行步驟如下:①在目標(biāo)數(shù)據(jù)庫內(nèi)建立需要導(dǎo)入的表結(jié)構(gòu),包括表名、對(duì)應(yīng)字段名、數(shù)據(jù)類型、分區(qū)以及約束等;②對(duì)照原數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫內(nèi)相應(yīng)的表結(jié)構(gòu)和字段,寫導(dǎo)入腳本;③執(zhí)行導(dǎo)入程序;④通過查詢導(dǎo)入程序執(zhí)行過程中的日志,來判斷數(shù)據(jù)是否導(dǎo)入成功。這種方法能滿足氣象歷史數(shù)據(jù)的遷移需求。但是需要每張表都進(jìn)行導(dǎo)入腳本的單獨(dú)編寫,操作起來并不簡(jiǎn)便。該遷移方法不能保證數(shù)據(jù)的完整性,亦無法判別數(shù)據(jù)是否有遺漏或者重復(fù),只有通過人工的方式,在數(shù)據(jù)庫中查詢數(shù)據(jù),進(jìn)行分析判斷,甄別定位問題,耗費(fèi)的人力十分巨大,并且定位和甄別過程中也容易出現(xiàn)錯(cuò)誤,使得工作效率非常低下。如果虛谷服務(wù)庫沒有目標(biāo)數(shù)據(jù),還需要從CIMISS 的數(shù)據(jù)庫(Oracle)或者其他數(shù)據(jù)源進(jìn)行補(bǔ)錄,這又要涉及到異構(gòu)數(shù)據(jù)體之間的遷移轉(zhuǎn)換問題。
近年來,科技發(fā)展迅猛,人民的生活質(zhì)量與需求也在不斷提高,中國(guó)的氣象事業(yè)也在不斷前進(jìn)。提高容災(zāi)減災(zāi)能力,提升氣象數(shù)據(jù)質(zhì)量,提高服務(wù)社會(huì)水平是氣象人一生的追求。氣象數(shù)據(jù)的完整、快速遷移對(duì)于氣象事業(yè)的發(fā)展將起到至關(guān)重要的作用。因此,為了解決數(shù)據(jù)遷移過程中出現(xiàn)的問題排查以及應(yīng)對(duì)方法,研究不同數(shù)據(jù)庫的歷史數(shù)據(jù)導(dǎo)入程序,提高氣象歷史數(shù)據(jù)的遷移效率,對(duì)氣象數(shù)據(jù)遷移方法的研究將有重大意義。