房云龍 趙鐵成 潘江勇
【摘 要】為高效集成存儲航空氣象結(jié)構(gòu)化數(shù)據(jù),提出一種基于XML文件的“存儲任務(wù)模型”。根據(jù)氣象數(shù)據(jù)的特點,“存儲任務(wù)”分為“數(shù)據(jù)收集”、“格式轉(zhuǎn)換”和“集成存儲”三個子任務(wù),提取子任務(wù)處理過程中所有的參數(shù)作為XML文件的元素標(biāo)簽,以一定的方式集中整合。“存儲任務(wù)”與XML文件一一對應(yīng),便于增加、改變、刪除不同類型的數(shù)據(jù)存儲。利用基于XML文件的“存儲任務(wù)模型”,可以方便的設(shè)計程序完成不同類型結(jié)構(gòu)化數(shù)據(jù)的存儲,提高了存儲程序的可移植性和可擴(kuò)展性。
【關(guān)鍵詞】XML文件;存儲過程模型;民航氣象;結(jié)構(gòu)化數(shù)據(jù);集成存儲
中圖分類號: TP316 文獻(xiàn)標(biāo)識碼: A 文章編號: 2095-2457(2018)11-0104-003
DOI:10.19694/j.cnki.issn2095-2457.2018.11.044
0 引言
民航氣象數(shù)據(jù)是開展航空氣候統(tǒng)計評估及進(jìn)行航空科學(xué)研究的基礎(chǔ),是推動航空氣象科學(xué)發(fā)展的原動力。存儲民航氣象數(shù)據(jù)對提升航空預(yù)報的準(zhǔn)確率、開展典型歷史個例全面分析、建立數(shù)值天氣預(yù)報產(chǎn)品的統(tǒng)計釋用、建立多源氣象探測數(shù)據(jù)融合系統(tǒng)等工作具有十分重要的意義。
民航氣象數(shù)據(jù)具有數(shù)據(jù)量大、時效性高、種類豐富的特點。目前,部分機(jī)場民航氣象部門存儲數(shù)據(jù)還處于手動存儲階段,計算機(jī)存儲數(shù)據(jù)也多為“單獨程序負(fù)責(zé)單獨數(shù)據(jù)”的狀態(tài),擴(kuò)展性和移植型較差,還沒有一套系統(tǒng)、完善、同時便于預(yù)報員操作的自動化存儲過程。因此,有必要開展民航氣象數(shù)據(jù)存儲技術(shù)方面的工作,為氣象科學(xué)研究及業(yè)務(wù)建設(shè)提供數(shù)據(jù)基礎(chǔ)。
民航氣象數(shù)據(jù)可分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)[1]。結(jié)構(gòu)化數(shù)據(jù)也稱作行數(shù)據(jù),由二維表結(jié)構(gòu)來表達(dá)和實現(xiàn)數(shù)據(jù)邏輯,嚴(yán)格地遵循數(shù)據(jù)格式與長度規(guī)范,可以通過關(guān)系型數(shù)據(jù)庫進(jìn)行存儲和管理[2]。很多民航氣象數(shù)據(jù)是標(biāo)準(zhǔn)的結(jié)構(gòu)化數(shù)據(jù)。本文以青島機(jī)場民航氣象數(shù)據(jù)為例,介紹了一種簡易的基于XML文件的“存儲過程模型”,以系統(tǒng)集成的存儲民航氣象結(jié)構(gòu)化數(shù)據(jù)。
1 青島機(jī)場結(jié)構(gòu)化氣象數(shù)據(jù)
目前青島機(jī)場可以獲得的結(jié)構(gòu)化氣象數(shù)據(jù)包括民航數(shù)據(jù)和中國氣象局?jǐn)?shù)據(jù)兩大類。其中民航數(shù)據(jù)有機(jī)場自動觀測系統(tǒng)數(shù)據(jù)(AWOS)、自動氣象站數(shù)據(jù)(AWS)、航空器氣象數(shù)據(jù)下傳(AMDAR)、機(jī)場風(fēng)廓線雷達(dá)數(shù)據(jù)、民航飛行氣象情報等。中國氣象局?jǐn)?shù)據(jù)包括:常規(guī)地面、高空探測數(shù)據(jù)、青島市自動站數(shù)據(jù)、青島市氣象局風(fēng)廓線雷達(dá)數(shù)據(jù)、山東省自動站數(shù)據(jù)、山東省閃電定位數(shù)據(jù)等,具體見表1。
2 基于XML文件的“存儲過程模型”的建立
XML(EXtensible Markup Language,可擴(kuò)展標(biāo)記語言),是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言。XML主要用來傳輸和存儲數(shù)據(jù),通過XML技術(shù),數(shù)據(jù)能夠存儲在獨立的XML文件中,以純文本格式進(jìn)行存儲,提供了一種獨立于軟件和硬件的數(shù)據(jù)存儲方法,可以在不兼容的系統(tǒng)之間輕松地交換數(shù)據(jù)[3-4]。
鑒于XML文件的優(yōu)勢和特點,本文以XML文件為基礎(chǔ)建立數(shù)據(jù)“存儲任務(wù)模型”。存儲任務(wù)是指在計算機(jī)進(jìn)行存儲數(shù)據(jù)過程中,按照一定的順序、方式、邏輯、自動完成某種類型數(shù)據(jù)收集、格式轉(zhuǎn)換、集成存儲的過程。每種類型數(shù)據(jù)的存儲都唯一對應(yīng)一個存儲任務(wù),每個存儲任務(wù)又唯一對應(yīng)一個XML類型的屬性文件。
所有“存儲任務(wù)”對應(yīng)的XML文件根元素統(tǒng)一命名為
2.1 數(shù)據(jù)收集
數(shù)據(jù)收集是指按照指定時間間隔、次序和遴選邏輯從原始數(shù)據(jù)源獲取數(shù)據(jù)的過程。青島機(jī)場原始結(jié)構(gòu)化氣象數(shù)據(jù)為位于不同服務(wù)器的文本文件,可采用ftp方式實現(xiàn)數(shù)據(jù)收集工作。這樣在
2.2 格式轉(zhuǎn)換
結(jié)構(gòu)化資料的原始數(shù)據(jù)是大量結(jié)構(gòu)固定的文本文件,不同類數(shù)據(jù)具有不同的文件格式和更新頻率。原始文件缺測數(shù)據(jù)各不相同,轉(zhuǎn)換后統(tǒng)一定義為-99999;不同行數(shù)據(jù)之間統(tǒng)一以“回車換行符”分隔。為便于集中處理,定義基于csv格式的dbcsv格式文件。csv是一種通用的文本文件格式,通過逗號分隔存儲表格數(shù)據(jù),但csv不是單一的、定義明確的格式[4-5]。為方便處理, dbcsv的統(tǒng)一格式為:所有文件均為ASCII文本文件,后綴名為dbcsv;文件內(nèi)容第一行為數(shù)據(jù)列名,對應(yīng)將來數(shù)據(jù)入庫的表的字段名,第二行之后為數(shù)據(jù);所有列和數(shù)據(jù)之間以tab分隔。dbcsv本質(zhì)也是csv文件,但規(guī)范更加嚴(yán)格,是集成存儲方案中重要的臨時數(shù)據(jù)格式。經(jīng)格式轉(zhuǎn)換后的dbcsv文件嚴(yán)格地遵循數(shù)據(jù)格式與長度規(guī)范,便于解析文件內(nèi)容并將數(shù)據(jù)存儲到關(guān)系型數(shù)據(jù)庫保存。
在格式轉(zhuǎn)換過程中,一級標(biāo)簽
2.3 集成存儲
集成存儲子任務(wù)主要進(jìn)行數(shù)據(jù)入庫管理。青島機(jī)場氣象臺以MySQL作為存儲數(shù)據(jù)庫,因此集成存儲子任務(wù)中各參數(shù)設(shè)計以符合MySQL規(guī)則為依據(jù),具體標(biāo)簽結(jié)構(gòu)見表3。
數(shù)據(jù)庫地址、庫名、表名等即為入庫存儲的數(shù)據(jù)庫對應(yīng)的信息,“新建表頻率< createTableFrq>”提供兩種選擇,即按月建表或按年建表。如果氣象數(shù)據(jù)每年的記錄數(shù)在500萬以下,選擇按年建表,否則選擇按月建表。例如amdar數(shù)據(jù)每年的記錄數(shù)超過2000萬,為保證查詢效率,選擇按月建表?!霸黾颖碇麈I
3 存儲任務(wù)模型的應(yīng)用
基于XML文件的“存儲任務(wù)”模型是一個XML類型的單獨文件,其內(nèi)容包含了數(shù)據(jù)收集、格式轉(zhuǎn)換及集成存儲全過程的所有信息。XML文件是w3c(萬維網(wǎng)聯(lián)盟)推薦的存儲和傳輸數(shù)據(jù)的標(biāo)準(zhǔn)格式,與程序及數(shù)據(jù)庫無關(guān),主流的編程語言如Java、C、VS、python等都支持XML機(jī)制,可以方便的加載XML內(nèi)部信息。由于“存儲任務(wù)”和XML一一對應(yīng),且XML是單獨的文件,因此可以通過增加、改變或刪除XML文件實現(xiàn)增加、改變或刪除數(shù)據(jù)的存儲,提高了數(shù)據(jù)存儲程序的可移植性和可擴(kuò)展性。
需要指出的是,本文介紹的“存儲任務(wù)模型”,是數(shù)據(jù)存儲的創(chuàng)建模型,并非物理實現(xiàn)數(shù)據(jù)存儲。用戶可以根據(jù)實際需求,按照模型的流程進(jìn)行編程實現(xiàn)數(shù)據(jù)存儲,也可以整合既有的數(shù)據(jù)存儲工具,實現(xiàn)任務(wù)的集約化。
4 結(jié)束語
本文介紹了一種簡單方便的基于XML文件的“存儲任務(wù)模型”,用于集中存儲民航氣象領(lǐng)域中大量的結(jié)構(gòu)化數(shù)據(jù)。根據(jù)氣象數(shù)據(jù)的特點,“存儲任務(wù)”分為“數(shù)據(jù)收集”、“格式轉(zhuǎn)換”和“集成存儲”三個子任務(wù)。三個子任務(wù)在模型中分別對應(yīng)著實現(xiàn)其功能的各項參數(shù),以XML標(biāo)簽方式體現(xiàn)。利用基于XML文件的“存儲任務(wù)”模型,可以方便的設(shè)計程序完成不同類型結(jié)構(gòu)化數(shù)據(jù)的存儲,提高了存儲程序的可移植性和可擴(kuò)展性。
【參考文獻(xiàn)】
[1]王若曈,黃向東,張博.羅兵海量氣象數(shù)據(jù)實時解析與存儲系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程與科學(xué).2015,37(11):245-2054.
[2]潘順,金遠(yuǎn)平,歐陽曄.結(jié)構(gòu)化數(shù)據(jù)到XML數(shù)據(jù)的語義映射[J].東南大學(xué)學(xué)報(自然科學(xué)版).2002,32(3):331-334.
[3]孫永麗,劉成新.XML技術(shù)及其應(yīng)用[J].中國電化教育,2002,19(3):115-117.
[4]趙艷妮,郭華磊.基于XML異構(gòu)數(shù)據(jù)庫遷移技術(shù)研究[J].計算機(jī)與數(shù)字工程.2018(1):129-133.
[5]李金,利用CSV格式將新生數(shù)據(jù)錄入ILASII的快捷方法[J].圖書情報導(dǎo)刊.2015(12):148-149.
[6]吳慶晨,周偉,孫江艷.基于條件選擇的CSV文件數(shù)據(jù)挖掘算法研究[J].電腦編程技巧與維護(hù).2017(11):54-56.