呂 游,管 林,張家葉子,范純龍,丁國(guó)輝
(1. 沈陽航空航天大學(xué) 計(jì)算機(jī)學(xué)院,沈陽 110136; 2. 沈陽飛機(jī)設(shè)計(jì)研究所 網(wǎng)絡(luò)信息中心,沈陽 110035;3. 92941部隊(duì) 96分隊(duì),遼寧 葫蘆島 125000; 4. 91899部隊(duì) 機(jī)務(wù)大隊(duì),遼寧 葫蘆島 125000)
?
基于HBase的飛參數(shù)據(jù)存儲(chǔ)技術(shù)
呂游1,4,管林2,張家葉子3,范純龍1,丁國(guó)輝1
(1. 沈陽航空航天大學(xué) 計(jì)算機(jī)學(xué)院,沈陽 110136; 2. 沈陽飛機(jī)設(shè)計(jì)研究所 網(wǎng)絡(luò)信息中心,沈陽 110035;3. 92941部隊(duì) 96分隊(duì),遼寧 葫蘆島 125000; 4. 91899部隊(duì) 機(jī)務(wù)大隊(duì),遼寧 葫蘆島 125000)
隨著數(shù)據(jù)記錄技術(shù)的發(fā)展,飛參文件記錄的信號(hào)數(shù)量和信號(hào)記錄密度都在快速增長(zhǎng),飛參數(shù)據(jù)記錄總量的快速增加促使故障分析等方面的飛參數(shù)據(jù)分析需求更加多元和迫切。傳統(tǒng)的飛參數(shù)據(jù)處理方法以文件為單位,無法對(duì)跨文件的聯(lián)合分析和特定信號(hào)集的分析提供有效的支持。針對(duì)飛參文件中數(shù)據(jù)存儲(chǔ)和使用的局限,提出一個(gè)基于HBase數(shù)據(jù)庫的分布式存儲(chǔ)架構(gòu),將飛參文件中的數(shù)據(jù)依據(jù)飛行參數(shù)存儲(chǔ)到HBase數(shù)據(jù)庫中,實(shí)現(xiàn)了對(duì)飛行信號(hào)數(shù)據(jù)的列存儲(chǔ)和對(duì)擴(kuò)展檢索需求的良好支持。實(shí)驗(yàn)結(jié)果表明,該種存儲(chǔ)方法大大加快了面向飛行參數(shù)的數(shù)據(jù)訪問效率,對(duì)飛參數(shù)據(jù)的綜合利用提供了存儲(chǔ)管理上的有益參考。
飛參文件;飛行信號(hào);HBase;分布式存儲(chǔ)
飛機(jī)每個(gè)架次的飛行都會(huì)由飛參數(shù)據(jù)記錄系統(tǒng)對(duì)飛行過程中產(chǎn)生的各種數(shù)據(jù)進(jìn)行記錄,形成飛行數(shù)據(jù)記錄文件,簡(jiǎn)稱為飛參文件,其中的數(shù)據(jù)稱為飛參數(shù)據(jù)。飛參數(shù)據(jù)在飛機(jī)研制、故障診斷及飛行品質(zhì)評(píng)價(jià)等方面起到了重要作用[1]。隨著數(shù)據(jù)記錄技術(shù)的發(fā)展,飛參文件中記錄的飛參數(shù)據(jù)信號(hào)數(shù)量超過1 000個(gè),同時(shí)信號(hào)的記錄密度也在增加,最大的單個(gè)飛參文件已經(jīng)超過200 MB,并且還在快速增長(zhǎng)中。傳統(tǒng)的飛參數(shù)據(jù)處理方法以文件為單位,雖然不同的問題分析中關(guān)注的通常是少量的不同技術(shù)參數(shù),但數(shù)據(jù)處理過程卻需要對(duì)整個(gè)文件進(jìn)行讀取,而對(duì)多架次飛參數(shù)據(jù)的聯(lián)合篩選和分析效率就更低了。
為了提高飛參數(shù)據(jù)的訪問和處理效率,本文結(jié)合現(xiàn)有飛參數(shù)據(jù)的特點(diǎn),設(shè)計(jì)了一種基于HBase的飛參數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),實(shí)現(xiàn)用HBase非關(guān)系型數(shù)據(jù)庫存儲(chǔ)飛參數(shù)據(jù),將飛參數(shù)據(jù)按照參數(shù)重新組織,將飛參文件中一個(gè)參數(shù)的所有數(shù)據(jù)組織成HBase數(shù)據(jù)庫中的一條行記錄,實(shí)現(xiàn)了飛參數(shù)據(jù)的列存儲(chǔ)模式,解決了傳統(tǒng)飛參數(shù)據(jù)分析中面臨的訪問效率問題,并為大規(guī)模飛參數(shù)據(jù)的聯(lián)合分析提供了技術(shù)支撐。列存儲(chǔ)技術(shù)在很大程度上減少了參數(shù)數(shù)據(jù)分析時(shí)的讀入數(shù)據(jù)量,使得系統(tǒng)的查詢效率得到提高[2]。本文中采用部分飛參數(shù)據(jù)驗(yàn)證了設(shè)計(jì)的可行性。
1.1HBase的列存儲(chǔ)架構(gòu)
HBase是一個(gè)面向列的分布式數(shù)據(jù)庫,作為非關(guān)系型數(shù)據(jù)庫的一種,它不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫[3-4]。HBase表由行和列組成,行列坐標(biāo)交叉點(diǎn)是表的單元格,為一個(gè)有版本號(hào)的未解釋的字節(jié)數(shù)組,版本號(hào)默認(rèn)為單元格插入時(shí)的時(shí)間戳(Time Stamp)。HBase把表橫切成不同的區(qū)域(region),每個(gè)區(qū)域包含表的一個(gè)行子集。行中的列被分組成若干列簇(column families),所有的簇成員都有相同的簇前綴,簇成員間通過標(biāo)識(shí)符(qualifier)區(qū)分,因此,每列表示為column family:qualifier。
HBase中的數(shù)據(jù)存儲(chǔ)在Hadoop文件系統(tǒng)HDFS中,HBase由HMaeter服務(wù)節(jié)點(diǎn)和HRegionServer存儲(chǔ)節(jié)點(diǎn)組成,HMaster本身并不存儲(chǔ)HBase中的數(shù)據(jù),它主要負(fù)責(zé)管理所有的HRegionServer節(jié)點(diǎn)。HBase邏輯上的一個(gè)表被定義成為一個(gè)Region存儲(chǔ)在某一臺(tái)HRegionServer上,HRegionServer負(fù)責(zé)支持多個(gè)Region向客戶端提供服務(wù)[5-6]。
HBase的基本模式結(jié)構(gòu)是表,由RowKey、列族、Timestamp(時(shí)間版本)形成一個(gè)三維有序的結(jié)構(gòu),通過三個(gè)維度坐標(biāo)準(zhǔn)確定位數(shù)據(jù)。HBase與關(guān)系數(shù)據(jù)庫(RDBMS)相比,更適合非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和管理,在實(shí)際系統(tǒng)中,HBase也可以與關(guān)系數(shù)據(jù)庫配合使用,兼顧二者的優(yōu)點(diǎn)。HBase將所有數(shù)據(jù)都以字節(jié)串的形式存儲(chǔ),沒有豐富的數(shù)據(jù)類型,數(shù)據(jù)存儲(chǔ)按照RowKey的字典序排列,對(duì)Rowkey的設(shè)計(jì)提出了較高要求。HBase是基于列存儲(chǔ)的,在物理存儲(chǔ)中,不同的列族數(shù)據(jù)存儲(chǔ)在不同的文件中,另外,HBase系統(tǒng)可以在節(jié)點(diǎn)內(nèi)任意增加存儲(chǔ)設(shè)備和節(jié)點(diǎn),提高系統(tǒng)的靈活性和擴(kuò)展性[10-12]。
1.2 飛參數(shù)據(jù)文件
記錄技術(shù)、計(jì)算機(jī)技術(shù)及現(xiàn)代測(cè)控技術(shù)的發(fā)展,促使飛參數(shù)據(jù)記錄系統(tǒng)能夠記錄的飛參數(shù)據(jù)量顯著增加,這種數(shù)據(jù)量增加既包括記錄參數(shù)數(shù)量的增加,也包括每個(gè)信號(hào)參數(shù)記錄密度的增大。在四代機(jī)中,飛參數(shù)據(jù)里記錄的參數(shù)數(shù)量接近1 000個(gè),參數(shù)的記錄密度最高的達(dá)到1 kHz,部分參數(shù)的記錄密度與地面試驗(yàn)環(huán)境中的記錄密度相當(dāng)。這些都促使飛參數(shù)據(jù)的后期應(yīng)用需求更加多元化,如故障分析、放飛審查、飛行品質(zhì)評(píng)價(jià)和新機(jī)預(yù)研等。因此,利用飛參數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn)對(duì)飛參數(shù)據(jù)的有效管理,積累飛參數(shù)據(jù)資源,最大限度地發(fā)掘飛參中的有效信息,對(duì)飛機(jī)的研制和使用意義深遠(yuǎn)[7-9]。
飛參數(shù)據(jù)記錄系統(tǒng)記錄飛參生成的飛參文件一般包括文件頭和數(shù)據(jù)區(qū)兩部分,文件頭主要由飛機(jī)及飛行相關(guān)的信息構(gòu)成,包括機(jī)型、出廠編號(hào)、起始記錄時(shí)間等屬性描述信息;數(shù)據(jù)區(qū)是一個(gè)行記錄集,每行記錄代表特定時(shí)刻所有飛參參數(shù)的信號(hào)值。另外,每個(gè)飛行參數(shù)在數(shù)據(jù)類型、取值范圍和精度等方面存在差別,因此行記錄中信號(hào)值的排列由預(yù)定義的順序決定。在新型飛機(jī)中,每個(gè)飛行小時(shí)產(chǎn)生的飛參文件規(guī)模增量約為100 MB。
傳統(tǒng)飛參數(shù)據(jù)管理軟件利用飛參文件檢索數(shù)據(jù)的形勢(shì)主要有兩種:(1)將飛參文件作為訪問單位,通過直接讀取飛參文件來檢索所需的目標(biāo)數(shù)據(jù),對(duì)于獲取特定參數(shù)的所有數(shù)據(jù)值等操作經(jīng)常需要遍歷整個(gè)文件,并且無法快速滿足對(duì)各參數(shù)值的靈活訪問需求;(2)將飛參文件的內(nèi)容存儲(chǔ)到關(guān)系型數(shù)據(jù)庫中,飛參文件數(shù)據(jù)區(qū)中的行記錄轉(zhuǎn)成關(guān)系數(shù)據(jù)庫表中的行記錄,實(shí)現(xiàn)對(duì)多個(gè)飛參文件中飛參數(shù)據(jù)的集中管理,對(duì)于獲取特定參數(shù)的所有數(shù)據(jù)值等操作的處理形式簡(jiǎn)化了,但效率沒有本質(zhì)改善。
2.1存儲(chǔ)表結(jié)構(gòu)設(shè)計(jì)
HBase分布式數(shù)據(jù)庫中的持久化數(shù)據(jù)是以HFile文件形式存儲(chǔ)在HDFS文件系統(tǒng)中的,在HFile文件中數(shù)據(jù)按RowKey有序排列。因此,HBase的表結(jié)構(gòu)設(shè)計(jì)中RowKey設(shè)計(jì)是非常重要的,需要根據(jù)預(yù)期的訪問和檢索模式來為RowKey建模。
飛參文件在使用中,以對(duì)一個(gè)或多個(gè)飛行參數(shù)的值序列進(jìn)行分析為主要需求,本文設(shè)計(jì)了一個(gè)基于HBase的飛參數(shù)據(jù)的列存儲(chǔ)結(jié)構(gòu),利用HBase數(shù)據(jù)庫將飛參文件中的行記錄存儲(chǔ)方式轉(zhuǎn)換為面向參數(shù)值序列的列存儲(chǔ)方式,從而提高飛參數(shù)據(jù)的檢索效率。
圖1 HBase表結(jié)構(gòu)設(shè)計(jì)
設(shè)HBase中飛參表的行結(jié)構(gòu)模式為公式:
2.2飛參數(shù)據(jù)寫入過程
本文先將飛參數(shù)據(jù)文件集上傳到分布式文件系統(tǒng)HDFS中,然后對(duì)飛參文件進(jìn)行預(yù)處理,將文件頭和數(shù)據(jù)行記錄分離,文件頭部分按圖1選擇信息組成行鍵RowKey,行記錄數(shù)據(jù)按參數(shù)分離,并調(diào)用函數(shù)處理各參數(shù)數(shù)據(jù)生成各參數(shù)的關(guān)聯(lián)屬性,與數(shù)據(jù)值共同組成表中各列數(shù)據(jù)——Value。通過Map過程將上述處理過的數(shù)據(jù)導(dǎo)入到分布式數(shù)據(jù)庫HBase,導(dǎo)入時(shí)HBase會(huì)自動(dòng)判斷行鍵唯一性,如有重復(fù)行鍵則更新原有數(shù)據(jù)。在HBase中所謂更新就是新增數(shù)據(jù)版本,并不刪除原有數(shù)據(jù),這種保留歷史數(shù)據(jù)的方法有利于分析過往飛參數(shù)據(jù),其入庫流程如圖2所示。
3.1試驗(yàn)參數(shù)信息
實(shí)驗(yàn)環(huán)境:兩臺(tái)臺(tái)式主機(jī)(CPU:inteli-5 3470,4GB內(nèi)存)構(gòu)成集群,虛擬機(jī)使用VirtualBox4.3.6,系統(tǒng)采用Ubuntu11.04。一臺(tái)主機(jī)運(yùn)行虛擬機(jī)master(單核,2GB內(nèi)存),另一臺(tái)主機(jī)運(yùn)行兩個(gè)虛擬機(jī)slave節(jié)點(diǎn)(單核,1GB內(nèi)存)。Hadoop版本2.4.0,Hbase版本0.98.1,Zookeeper版本3.4.6,JDK版本1.7.0,網(wǎng)絡(luò)屬局域網(wǎng),帶寬100Mb/s。
實(shí)驗(yàn)數(shù)據(jù)使用飛機(jī)GPS傳感器傳回的連續(xù)時(shí)序數(shù)據(jù),共60 600 209條記錄;數(shù)據(jù)以ASCII文本表示,以逗號(hào)為分隔符,以回車換行符(0x0D0x0A)結(jié)尾。
3.2實(shí)驗(yàn)結(jié)果
為驗(yàn)證HBase分布式數(shù)據(jù)庫的存儲(chǔ)和查詢效率以及可擴(kuò)展性,本文使用共60 600 209條數(shù)據(jù),分別存儲(chǔ)在3 000個(gè)文件中,比較了通過C語言程序直接讀取文件、MySQL關(guān)系型數(shù)據(jù)庫和HBase集群三種解決方案的寫入和讀取效率。
圖2 數(shù)據(jù)入庫流程圖
圖3對(duì)比了直接讀取文件方式、MySQL數(shù)據(jù)庫和HBase集群與數(shù)據(jù)規(guī)模的寫入時(shí)間。從圖3中可以看出,由于直接讀取文件方法其入庫時(shí)間只記為文件拷貝時(shí)間,所以時(shí)間比較固定,HBase集群寫入時(shí)間明顯低于MySQL關(guān)系型數(shù)據(jù)庫,并且隨文件量增大寫入時(shí)間差距也隨之變大。
圖3 數(shù)據(jù)量與寫入時(shí)間關(guān)系對(duì)比
圖4比較了直接讀取文件方式、MySQL數(shù)據(jù)庫和HBase集群在獲取指定參數(shù)所有架次全部數(shù)據(jù)的效率對(duì)比。通過實(shí)驗(yàn)對(duì)比,3種方法查詢時(shí)間均與數(shù)據(jù)規(guī)模呈正比關(guān)系,直接讀取文件方式需要遍歷所有目標(biāo)文件,并且進(jìn)行全文件掃描,獲取飛參數(shù)據(jù)文件中指定參數(shù)的行記錄。MySQL關(guān)系型數(shù)據(jù)庫通過使用Select語句進(jìn)行查詢,仍要遍歷整個(gè)數(shù)據(jù)表。由于本文的HBase存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)將參數(shù)寫入行鍵,所以可以通過行鍵直接篩選參數(shù)避免了全表掃描。在數(shù)據(jù)列獲取過程中,利用HBase的列過濾器,可以避免讀入不需要的列數(shù)據(jù)以提高效率。綜上得出結(jié)論:HBase集群讀取效率明顯高于傳統(tǒng)方法,具有高效的讀寫性能。
圖4 數(shù)據(jù)量與讀取時(shí)間關(guān)系對(duì)比
本文針對(duì)目前飛參數(shù)據(jù)分析軟件在分析飛參數(shù)據(jù)文件面臨的訪問效率低,管理不便的問題,提出了一種基于HBase數(shù)據(jù)庫的面向飛行參數(shù)值序列的飛參數(shù)據(jù)列存儲(chǔ)方案。根據(jù)HBase數(shù)據(jù)庫的特點(diǎn)設(shè)計(jì)并實(shí)現(xiàn)了適合飛參數(shù)據(jù)使用的存儲(chǔ)模型,解決了傳統(tǒng)處理方法無法高效分離數(shù)據(jù)屬性的問題,提高了存儲(chǔ)效率和檢索速度。實(shí)驗(yàn)驗(yàn)證了該方案的可行性,在入庫和查詢方面都能夠提供更加高效的處理結(jié)果,該方案對(duì)大規(guī)模試驗(yàn)數(shù)據(jù)處理尤其是快速增長(zhǎng)的飛參數(shù)據(jù)處理需求具有重要的理論價(jià)值和實(shí)用價(jià)值。對(duì)于HBase數(shù)據(jù)庫與關(guān)系數(shù)據(jù)庫聯(lián)合使用,對(duì)飛參數(shù)據(jù)處理中的架次、飛行參數(shù)基本屬性和索引等可結(jié)構(gòu)化數(shù)據(jù)利用關(guān)系數(shù)據(jù)庫管理,對(duì)飛行參數(shù)值序列及其不確定的衍生屬性用HBase進(jìn)行管理,從而更好的實(shí)現(xiàn)對(duì)飛參數(shù)據(jù)的管理和分析工作,將是下一步研究的工作。
[1]曲建嶺,唐昌盛,李萬泉.飛參數(shù)據(jù)的應(yīng)用研究現(xiàn)狀及發(fā)展趨勢(shì)[J].計(jì)測(cè)技術(shù),2007,27(6):1-4.
[2]IDREOS S,KERSTEN M L,MANEGOLDS.Self-organizing Tuple Reconstruction in Column-Stores[C].ACM SIGMOD International Conference on Management of Data.ACM,2009.
[3]STONEBRAKER M.SQL databases v.NoSQL databases[J].Communications of the ACM,2010,53(4):10-11.
[4]GHEMAWAT S,GOBIOFF H,LEUNG S T.The Google File System[C].In Proceedings of the 19th ACM Symposium on Operating System Principles,2003.
[5]Lars George.HBase權(quán)威指南[M].代志遠(yuǎn),劉佳,蔣杰,譯.北京:人民郵電出版社,2013:303-304.
[6]The Apache Software Foundation.Apache ZooKeeper[EB/OL].2010.http://zookeeper.apache.org/.
[7]丁建新,樊江濱,郭強(qiáng),等.全周期試驗(yàn)數(shù)據(jù)管理系統(tǒng)研究[J].車輛與動(dòng)力技術(shù),2010(3):4-9.
[8]唐宗凱,曲建嶺,高峰.飛參判據(jù)及其應(yīng)用[J].計(jì)算機(jī)工程,2011(5):281-283.
[9]李洪奇.試驗(yàn)數(shù)據(jù)管理系統(tǒng)的應(yīng)用[J].軟件工程師,2010,26(4):43-44.
[10]DUTTA H,KAMIL A,POOLERY M,et al.Distributed storage of large-scale multidimensional electroencephalogram data using Hadoop and HBase [M] Grid and Cloud Database Management.Berlin:Springer,2011.
[11]The Apache Software Foundation.Apache HBase[EB/OL].2015.http://hbase.apache.org/.
[12]The Apache Software Foundation.Apache Hadoop[EB/OL].2015.http://hadoop.apache.org/.
[13]BAI J W,WANG J Z,HUANG J L.Spatial query processing on distributed databases[M].Advances in Intelligent Systems and Applicantions-Volume 1,Springer Berlin He idelberg,2013.
[14]Vamshi Krishna Konishetty,K Arun Kumar,Kaladhar Voruganti,and GV Rao.Implementation and evaluation of scalable data structure over hbase[C].International Conference on Advances in Computing,Communications and Informatics,2012.
[15]陳慶奎,周利珍.基于HBase的大規(guī)模無線傳感網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2012,32(7):1920-1923.
(責(zé)任編輯:吳萍英文審校:趙亮)
Flight data storage technology based on HBase
LV You1,4,GUAN Lin2,ZHANGJIA Ye-zi3,F(xiàn)AN Chun-long1,DING Guo-hui1
(1.College of Computer Science,Shenyang Aerospace University,Shenyang 110136,China;2.Network Information Center,Shenyang Aircraft Design and Research Institute,Shenyang 110035,China;3.96 Unit,92941 Troops,Huludao 125000,China;4.Locomotive Brigade,91899 Troops,Huludao 125000,China)
With the development of data recording technology,the number of signals and the signal recording density of flight data files are growing rapidly.The rapid increase of the total amount of the flight file data prompts the requirement of flight data analysis,such as failure analysis,more diverse and urgent.Since the traditional method of processing flight file data is based on file units,it could not provide effective support for the conjoint analysis across file and the specific signals set analysis.In this paper,a distributed storage architecture based HBase database was proposed.The parameters based flight file data were stored into the HBase database,where a good support for the flight signal data columns-storage and retrieval extension was achieved.Experimental results prove that this kind of storage method accelerates the data access efficiency for the parameters of flight data file,and provides a useful reference for flight data on the utilization of storage management.
flight data file;flight signal;HBase;distributed storage
2095-1248(2016)03-0079-05
2015-10-28
國(guó)家自然科學(xué)基金青年基金(項(xiàng)目編號(hào):61303016)
呂游(1988-),男,黑龍江嫩江人,碩士研究生,主要研究方向:網(wǎng)絡(luò)信息安全,E-mail:lv_you@foxmail.com;管林(1962-),男,遼寧沈陽人,高級(jí)工程師,主要研究方向:工程數(shù)據(jù)管理,E-mail:415628038@qq.com。
TP391.7
A
10.3969/j.issn.2095-1248.2016.03.013