韓超
上海航空工業(yè)(集團)有限公司 上海 200120
隨著民機行業(yè)的發(fā)展,研發(fā)進程的不斷加快,產(chǎn)生的試飛數(shù)據(jù)急劇增加,對海量數(shù)據(jù)的管理、查詢、監(jiān)控也提出了越來越高的需求。最新的計算機技術(shù)正在不斷地應(yīng)用到試飛業(yè)務(wù)中,大大加快了試飛進程,提高了研發(fā)效率。本文重點介紹時序數(shù)據(jù)庫在試飛監(jiān)控業(yè)務(wù)中的應(yīng)用,旨在保障試飛實時監(jiān)控的順利完成。
時序數(shù)據(jù)即時間序列數(shù)據(jù),是指按時間序列生成或記錄的數(shù)據(jù),通常每條時序數(shù)據(jù)的輸入為三元組<obj, time stamp, data>[1]。其中,obj表示觀測對象的信息,在試飛數(shù)據(jù)中,通常為試飛參數(shù)的別名,Time stamp表示數(shù)據(jù)采集的時間戳,Data則是該試飛參數(shù)在該時間產(chǎn)生的數(shù)據(jù)值。時序數(shù)據(jù)通常具有時間性、唯一性、累積性、數(shù)據(jù)量龐大、局部性、不可預(yù)測性、關(guān)聯(lián)性等。
傳統(tǒng)關(guān)系型數(shù)據(jù)庫與時序數(shù)據(jù)庫區(qū)別主要在以下幾個方面:數(shù)據(jù)方面,傳統(tǒng)關(guān)系型數(shù)據(jù)庫主要處理永久、穩(wěn)定的數(shù)據(jù),維護數(shù)據(jù)的完整性和一致性,但在處理快速變化的數(shù)據(jù)方面存在瓶頸,也很難滿足一些實時監(jiān)控應(yīng)用需求,而時序數(shù)據(jù)庫主要處理與生產(chǎn)、運行直接相關(guān)的隨時間變化的數(shù)據(jù),大部分是數(shù)值型數(shù)據(jù),如電壓、電流、功率等,具有較強的時效性;表結(jié)構(gòu)方面,傳統(tǒng)數(shù)據(jù)庫以二維表格對數(shù)據(jù)進行存儲和訪問,而時序數(shù)據(jù)庫以時間序列對數(shù)據(jù)進行存儲,存儲的數(shù)據(jù)全局唯一固定;讀寫速度方面,傳統(tǒng)關(guān)系型數(shù)據(jù)庫3000(次/秒),時序數(shù)據(jù)庫100 000 000(次/秒)。傳統(tǒng)數(shù)據(jù)庫不支持歷史數(shù)據(jù)壓縮,而時序數(shù)據(jù)庫支持無損壓縮和有損壓縮。由此可見,時序數(shù)據(jù)庫的優(yōu)勢是通過有效壓縮來存儲高效變化的海量數(shù)據(jù),同時還能實現(xiàn)對海量數(shù)據(jù)的快速訪問,但是對于數(shù)據(jù)模型的描述能力比較弱,無法描述復(fù)雜的層次關(guān)系。而關(guān)系型數(shù)據(jù)庫可以利用實體對象之間的關(guān)系描述模型和層次結(jié)構(gòu),某些場景下可以結(jié)合使用,充分發(fā)揮兩種數(shù)據(jù)庫的技術(shù)優(yōu)勢。
試飛數(shù)據(jù)的參數(shù)點能達到幾萬個,一次試飛要處理的數(shù)據(jù)量將達到幾十萬,數(shù)據(jù)中心要接收和處理的數(shù)量級將達到百萬數(shù)量級,對磁盤空間的需求將呈指數(shù)級增長,同時還要為業(yè)務(wù)部門提供檢索、監(jiān)控、管理等數(shù)據(jù)支撐,一些業(yè)務(wù)場景要求實時性比較高。另外,試飛數(shù)據(jù)的采樣周期為毫秒級,故對試飛數(shù)據(jù)的存儲和查詢都提出了很高的要求。因此,只有時序數(shù)據(jù)庫才能滿足要求,實現(xiàn)數(shù)據(jù)的高壓縮、快速查詢。
在本方案中,對于具有采樣頻率高、監(jiān)測對象多等特點的試飛時序數(shù)據(jù),數(shù)據(jù)量不僅大,而且要求查詢快,因此要使用時序數(shù)據(jù)庫存儲海量的試飛數(shù)據(jù);對于試飛數(shù)據(jù)的業(yè)務(wù)分析模型、實體關(guān)系描述、參數(shù)表,使用關(guān)系數(shù)據(jù)庫存儲,充分結(jié)合兩種類型數(shù)據(jù)庫各自的技術(shù)優(yōu)勢[2]。相應(yīng)的數(shù)據(jù)架構(gòu)圖如圖1所示。試飛時傳感器的采集參數(shù)數(shù)據(jù)高度、溫度、轉(zhuǎn)速等通過預(yù)處理解碼模塊解析后存入時序數(shù)據(jù)庫,參數(shù)表通過關(guān)系數(shù)據(jù)庫存儲,然后進行業(yè)務(wù)模型分析。上級應(yīng)用系統(tǒng)可以分別從關(guān)系數(shù)據(jù)庫和時序數(shù)據(jù)庫獲得應(yīng)用所需要的數(shù)據(jù),用于展示、監(jiān)控、統(tǒng)計、分析、管理等處理。
Grafana是一個跨平臺的開源的度量分析和可視化工具,可以通過將采集的數(shù)據(jù)進行查詢?nèi)缓罂梢暬恼故?,并及時通知。它主要有以下六大特點:
3.1.1 Grafana擁有快速靈活的客戶端圖表,面板插件有許多不同方式的可視化指標和日志,官方庫中具有豐富的儀表盤插件,比如熱圖、折線圖、圖表等多種展示方式,讓我們復(fù)雜的數(shù)據(jù)展示得美觀而優(yōu)雅。
3.1.2 支持許多不同的時間序列數(shù)據(jù)(數(shù)據(jù)源)存儲后端。每個數(shù)據(jù)源都有一個特定查詢編輯器。官方支持以下數(shù)據(jù)源:Graphite、infloxdb、opensdb、elasticsearch等。每個數(shù)據(jù)源的查詢語言和功能明顯不同。你可以將來自多個數(shù)據(jù)源的數(shù)據(jù)組合到一個儀表板上,但每個面板都要綁定到屬于特定組織的特定數(shù)據(jù)源上。
3.1.3 警報允許將規(guī)則附加到儀表板面板上。保存儀表板時,Grafana會將警報規(guī)則提取到單獨的警報規(guī)則存儲中,并安排它們進行評估。報警消息還能通過釘釘、郵箱等推送至移動端。
3.1.4 在同一圖表中混合使用不同的數(shù)據(jù)源,可以基于每個查詢指定數(shù)據(jù)源,甚至自定義數(shù)據(jù)源;⑤使用來自不同數(shù)據(jù)源的豐富事件注釋圖表,將鼠標懸停在事件上會顯示完整的事件元數(shù)據(jù)和標記;⑥使用Ad-hoc過濾器允許動態(tài)創(chuàng)建新的鍵/值過濾器,這些過濾器會自動應(yīng)用于使用該數(shù)據(jù)源的所有查詢。
在試飛的應(yīng)用中,傳統(tǒng)的基于關(guān)系數(shù)據(jù)庫的趨勢曲線一般定義采樣周期最小為1min,那么就會形成明顯的鋸齒狀,數(shù)據(jù)不夠完整和精確,不利于研究和試飛數(shù)據(jù)分析。試飛中采集存儲周期最少為1s,甚至更短,采樣率一般為8Hz以上,而采樣參數(shù)達到幾萬個,假如80000個參數(shù),每個參數(shù)的采樣頻率64Hz,則每秒的數(shù)據(jù)存儲量將達到:80000×64×1=5,120,000點,長時間飛行產(chǎn)生的數(shù)據(jù)量將非常大,數(shù)據(jù)庫還要提供一定的備用容量,基于以上分析,只有時序數(shù)據(jù)庫才能滿足如此高采樣、海量的數(shù)據(jù)存儲需求,可按要求提供高密度、高精度的數(shù)據(jù)點,這樣形成的趨勢曲線不僅圓滑美觀,更可以完整地再現(xiàn)數(shù)據(jù)的實時變化情況,用于研究、數(shù)據(jù)分析。
時序數(shù)據(jù)庫為上層應(yīng)用提供了海量數(shù)據(jù)和快速查詢,并且數(shù)據(jù)存盤后壓縮率高,基于時序數(shù)據(jù)庫可以實現(xiàn)對數(shù)據(jù)實時性要求比較高的監(jiān)控業(yè)務(wù),Grafana正好可以將時序數(shù)據(jù)可視化展示。
實施步驟:①首先添加數(shù)據(jù)源,選擇相應(yīng)的時序數(shù)據(jù)庫;②創(chuàng)建DashBoard(儀表盤),可以自定義,也可以導(dǎo)入你需要的儀表盤,官方提供了很多的可選儀表盤;③根據(jù)業(yè)務(wù)監(jiān)控需求選擇查詢參數(shù),設(shè)置預(yù)警值、數(shù)據(jù)刷新時間等,如圖2所示。
圖2 試飛監(jiān)控應(yīng)用
本文的分析表明,時序數(shù)據(jù)庫非常適合在試飛數(shù)據(jù)監(jiān)控系統(tǒng)中應(yīng)用。時序數(shù)據(jù)庫提供的海量數(shù)據(jù)存儲和快速訪問能力為試飛系統(tǒng)的諸多應(yīng)用提供了理想的解決方案。隨著飛機的研制進程加快,時序數(shù)據(jù)庫必將在試飛領(lǐng)域中獲得越來越多的應(yīng)用。