杜 楚,彭會湘,陳 勇
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
以文檔結構存儲海量衛星遙測數據
杜 楚,彭會湘,陳 勇
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
通過對衛星遙測數據的分析與挖掘,可以有效地進行衛星故障診斷、衛星參數異常變化預測以及提升衛星運行的可靠性。針對無法在海量衛星遙測數據中進行高效儲存、檢索的問題,提出了利用NoSQL數據庫MongoDB以文檔的結構形式存儲衛星遙測數據。實驗結果表明,相對于傳統的SQL數據庫,此方法可以有效地減少數據冗余并提高查詢效率。
衛星遙測數據;NoSQL數據庫;MongoDB;文檔存儲結構
衛星遙測數據是掌握衛星在軌運行狀態的重要手段,每個衛星的遙測數據都包含電流、電壓和溫度等上千個參數,這些參數的模擬量或數字量可以反映出衛星的工作狀態或空間環境狀態[1]。因此對衛星遙測數據的分析以及數據挖掘工作,對衛星異常檢測、故障檢測以及壽命預測等研究具有重要意義[2]。衛星遙測數據密度大、涉及的參數范圍廣[3],而目前對衛星遙測數據的存儲多基于傳統的關系數據庫(RBDMS),這種存儲方式的數據冗余大、查詢效率低,嚴重影響了后續對衛星遙測數據的分析與數據挖掘工作,因此需要一種新的存儲方式來解決這些問題。根據衛星遙測數據的特點,設計了一種以時間為索引的文檔結構,將遙測數據以文檔的形式存儲在NoSQL數據庫(非關系數據庫)MongoDB中,有效地解決了關系數據庫存儲衛星遙測數據冗余過大、查詢效率低的問題。
1.1 NoSQL數據庫
NoSQL數據庫是非關系型數據庫系統的總稱,是指不使用SQL語言的數據庫,這是其與傳統RBDMS最明顯的不同[4]。在大數據時代的背景下,面對數據量、分析量以及數據種類快速增長的現狀,傳統的RDBMS性能瓶頸頻繁出現,單機的處理能力已經無法滿足日益增長的數據處理需求,無論縱向擴展或是向外擴展都面臨較多的限制與較高的技術成本[5]。NoSQL數據庫作為新興數據庫系統,由于其具有處理海量數據的能力、非關系型、分布式、開源和橫向擴展等特點,受到各大IT公司的追捧。相對于RDBMS,NoSQL數據庫在海量數據存取上具有巨大的性能優勢。NoSQL數據庫根據其存儲模型的區別,可以分為鍵值模型、列式模型、面向文檔的模型以及圖形模型[6],而MongoDB數據庫是屬于面向文檔的NoSQL數據庫[7]。
1.2 MongoDB數據庫
MongoDB是一個高性能、開源、可擴展的文檔型數據庫。MongoDB的文檔的存儲模型是一種介于鍵值存儲模型與關系數據庫表之間的存儲模型,由數據庫(database)、集合(collection)和文檔(document)組成,與RDBMS的結構有簡單的對應關系,如圖1所示。MongoDB中的文檔采用類似于JSON語言的BSON語言,是一種理想的數據交換語言[8]。BSON以鍵值對的形式存儲每一個集合中的文檔,每個文檔有一個字符串類型可以唯一地對其進行標識,該唯一標識的屬性為“_id”[9]。其查詢語言類似于面向對象的查詢語言,可以實現關系數據庫單表查詢的絕大部分功能,且支持對數據建立索引[10]。

圖1 MongoDB與RDBMS數據庫結構對應關系
MongoDB的基本構架是建立在Mongos、Shard、Config Server和Replica Set四類組件之上[11]:① Mongos是數據庫集群請求的入口,所有的請求都通過Mongos進行協調,它負責把對應的數據請求轉發到對應的Shard服務器上;② Shard是分片,單個節點處理能力有限,分布式存儲環境下采用分片機制可以將一個完整的數據按照一定的順序進行分割,分別存儲到不同的分片中,數據讀寫在多個節點上同時進行,以提高數據存取速度;③ Config Server是配置服務器,存儲所有數據庫元信息(路由、分片)的重要配置信息,Mongos第1次啟動或者關掉重啟就會從Config Server加載配置信息,此后如果配置服務器信息變化會通知到所有的Mongos更新自己的狀態;④ Replica Set是副本集,由分布在不同機器上的一組Mongod進程組成,通常一組包括3臺Mongod進程,其中有1臺是主(primary)節點,另外2臺是從(secondary)節點,它們之間遵循主從模式開展工作。
一個雙分片三備份的MongoDB組織結構如圖2所示。其中,Mongos進程是整個數據庫的入口與請求轉發路由;3個Config是服務器的配置信息;Shard11、Shard12和Shard13這3個進程組成一個副本集,提供分片1的功能,分片1保存著所有數據中一半的數據,而Shard11、Shard12和Shard13這3個分本集數據內容相同;同理,Shard21、Shard22和Shard23這3個進程組成一個副本集,提供分片2的功能。

圖2 MongoDB數據庫組織結構
衛星遙測數據在關系數據庫中以記錄的方式存儲,每一條記錄代表一個時刻產生的一個參數的數值及其相關信息,包括:ID、參數編號(CSBH)、處理結果(CLJG)、衛星代號(WXDH)、地面站代號(DMZDH)、超限標志(CXBZ)和數據時間(SJSJ)。若在同一時刻產生了6個參數的數據,那么這些數據在關系數據庫表中的存儲形式如表1所示。

表1 衛星遙測數據在關系數據庫中的存儲方式
從表1中可以看出,WXDH、DMZDH和SJSJ這3個字段的信息為冗余存儲,隨著衛星遙測數據的不斷產生,數據表的記錄數也快速增長,致使查詢操作緩慢,制約了對衛星遙測數據的分析以及數據挖掘工作。
將同樣的數據以文檔的形式存入MongoDB則需要依據衛星遙測數據的特點,設計合適的文檔結構,達到在減少數據冗余的同時記錄完整數據的目的。在MongoDB的文檔結構中,“_id”是唯一標識該文檔的屬性,將數據時間作為文檔的“_id”數據項表示該文檔,就形成了以數據時間為索引的文檔。衛星代號、地面站代號和此時刻記錄的每一個衛星參數都作為文檔的數據項保存在文檔內,而衛星參數的其他信息,如處理結果和超限標志等信息則作為衛星參數的嵌套數據項保存。依據此設計將表1中的6條數據寫成文檔,如下所示:
{
“_id”:“24-10月-10 12.32.14.205000 下午”,
“WXDH”:“XX”,
“DMZDH”:“YY”,
“01”:{ “ID”:6237,
“CLJG”:1.2,
“CXBZ”:0},
…
“06”:{ “ID”:6242, “CLJG”:2.98, “CXBZ”:1}
}
文檔完整地記錄了6個參數數據及其相關信息,且沒有數據冗余存儲。同時,文檔在語義上所表達的意義為:“該時刻衛星產生的所有參數數據及其相關信息”。
3.1 實驗環境
實驗環境如表2所示。

表2 實驗環境
MongoDB部署在3臺臺式機組成的集群上,部署模式采用兩分片三副本集的方式;Oracle數據庫是技術成熟、應用廣泛的數據庫系統,作為本文實驗的對比數據庫。對比實驗1的數據為同一時間段內同一衛星產生的遙測數據,數據在Oracle數據庫中存儲的記錄數為6 100萬條,在MongoDB中對應的文檔數為810萬個;對比實驗2的數據是在實驗1的基礎上擴大了時間范圍,數據在Oracle數據庫中存儲的記錄數為1.22億條,在MongoDB中對應的文檔數為1 620萬個。
3.2 對比實驗
由于衛星遙測數據記錄的是衛星的運行狀態,數據不會發生更改,因此對比試驗著重于2個存儲模式在查詢上的效率對比。實驗逐漸增加查詢的復雜程度,計時由發起查詢命令開始至返回結果集為止。查詢語句的限制條件分為4種:限定參數、限定參數與值域、限定參數與時間范圍,以及限定參數、時間范圍與值域。返回結果分為4種:以處理結果字段排序、以時間字段排序、返回最大處理結果和返回最小處理結果。因此,每個對比實驗形成16組測試,在均建立索引的條件下分別測試文檔存儲與記錄存儲2種模式,對比實驗結果如圖3和圖4所示。

圖3 對比實驗1結果

圖4 對比實驗2結果
圖3和圖4中縱軸代表語句執行的時間,從對比實驗結果中可以得出:在查詢測試中, MongoDB中以文檔存儲的模式的效率大幅領先Oracle中以記錄存儲的模式;對比實驗2在數據量增長1倍的情況下,文檔存儲對數據量的增長不敏感,而記錄存儲受數據量影響較大。
簡述了衛星遙測數據在保障衛星正常運行等方面的重要作用,指出了現有的關系數據庫中以記錄方式存儲海量衛星遙測數據的數據冗余以及查詢效率問題嚴重制約了衛星遙測數據的分析與數據挖掘工作。設計了一個文檔結構存儲衛星遙測數據,并將同樣的數據分別以文檔與記錄的方式存儲,基于MongoDB數據庫與Oracle數據庫進行對比實驗。實驗結果表明,以文檔存儲的模式在查詢效率上大幅領先以記錄方式存儲的模式,證明了以文檔方式存儲海量衛星遙測數據可以有效地減少數據冗余并提高查詢效率。同時,MongoDB數據庫兩分片三備份的模式不需要額外代價管理維護負載平衡與數據備份。
[1] 董 房,劉 洋.一種衛星遙測在線狀態監測及分析系統的設計[J].電子科學技術,2015,2(5):542-546.
[2] 劉海芳.航天衛星遙測數據管理與應用系統設計過程控制方法研究[J].計算機測量與控制,2015,23(2):443-445.
[3] 楊 亭,常 霞.衛星遙測數據處理軟件的Excel VBA實現[J].計算機測量與控制,2014,22(8):2 677-2 691.
[4] 白長清,劉 敏.MongoDB在氣象傳感器數據處理中的應用[J].軟件,2015,36(11):34-37.
[5] 李馮筱,羅高松.NoSQL理論體系及應用[J].電信科學,2012(12):23-30.
[6] 李 青.基于NoSQL的大數據處理研究[D].西安:西安電子科技大學,2014.
[7] 席曉筱,詹舒波.MongoDB在呼叫中心系統中的應用[J].軟件,2012,33(11):116-117.
[8] 梁 海.MongoDB數據庫中Sharding技術應用研究[J].計算機技術與發展,2014,24(7):60-62.
[9] 賀建英.大數據下MongoDB數據庫檔案文檔存儲去重研究[J].現代電子技術,2015,38(16):51-55.
[10] 張 剛,孫 涌.基于MongoDB的BESIII分布式計算記賬系統的研究與實現[J].計算機應用與軟件,2015,32(9):62-67.
[11] 夏秀峰,曾 喆.PDM數據向MongoDB遷移的設計實現[J].現代計算機,2016,2(2):87-92.
杜 楚 男,(1987—),博士,工程師。主要研究方向:航天地面應用。
彭會湘 男,(1973—),研究員。主要研究方向:航天地面應用、地理信息系統。
Massive Satellite Telemetry Data Storage Based on Document Structure
DU Chu,PENG Hui-xiang,CHEN Yong
(The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China)
The satellite fault diagnosis,satellite parameter abnormal change forecasting and satellite reliability improvement can be effectively performed based on analysis and mining of satellite telemetry data.It is difficult to implement high-efficiency storage and retrieval of massive satellite telemetry data.For solving this problem,this paper proposes a method,which uses NoSQL database MongoDB to store satellite telemetry data based on document structure.The experiment results show this method can effectively decrease data redundancy and improve inquiry efficiency compared with SQL database.
satellite telemetry data;NoSQL database;MongoDB;document storage structure
10.3969/j.issn.1003-3106.2017.01.11
杜 楚,彭會湘,陳 勇.以文檔結構存儲海量衛星遙測數據[J].無線電工程,2017,47(1):46-48,75.
2016-11-02
國家部委基金資助項目。
V55
A
1003-3106(2017)01-0046-03