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

圖2 試飛監控應用
本文的分析表明,時序數據庫非常適合在試飛數據監控系統中應用。時序數據庫提供的海量數據存儲和快速訪問能力為試飛系統的諸多應用提供了理想的解決方案。隨著飛機的研制進程加快,時序數據庫必將在試飛領域中獲得越來越多的應用。