TDengine 助力國產晶片打造“夢芯解算”,監測地質災害 24 小時無間斷

語言: CN / TW / HK

小 T 導讀:TDengine 承擔著夢芯形變安全監測解算系統核心資料庫的角色,幫助夢芯刻印機解決了高效率記錄站點的原始資料、解算後的形變資料等海量資料的存取及使用上的巨大難題。本文分享了基於本專案進行資料庫選型、搭建和實際效果的具體經驗。



公司簡介

武漢夢芯科技是一家專業從事高整合度晶片設計和高效能室內外定位研究的高新技術企業,致力於為各類智慧終端產品提供北斗定位核心技術和元器件,為北斗在高精度應用領域的推廣提供差異化的完整解決方案。夢芯科技自主研發的啟夢晶片系列產品入選中國衛星導航專項北斗基礎產品推薦名錄,在國家北斗辦組織的權威比測中名列前茅,以第一梯隊的成績獲得國家北斗辦資金支援,並多次獲得衛星導航定位科技進步獎一等獎、衛星導航定位創新應用獎“金獎”等榮譽。



專案介紹

地質災害隱患點多分佈在交通、通訊、電力保障等都極為不方便的地區,一旦發生大都會造成嚴重損害,其原因往往是因為難以事先準確預報災害發生的地點、時間和強度。對地質災害隱患,特別是滑坡、泥石流等危害極大的地質災害進行低成本、便捷、長期、自動化的監測,並及時將災害發生的實時狀況反映到相關管理部門,是保障人民生命安全、減少人民財產損失的必要手段。


基於上述背景,夢芯形變安全監測解算系統應運而生。其採用夢芯高精度定位方案,能夠為應用目標提供 24h 不間斷監測,實時掌握隱患點的位移變化情況,具有較高的監測精度。系統支援 BDS、GPS、GLONASS、Galileo 等衛星定位系統資料觀測,支援無線網路,可實現資料的遠端傳輸,提供日、周、月、年的資料統計結果。基準站和監測站均可採用夢芯高精度 GNSS 監測專用接收機,最大程度上降低成本。


在此專案中,TDengine 承擔著核心資料庫的角色,它幫助我們解決了高效率記錄站點的原始資料、解算後的形變資料等海量資料的存取及使用上的巨大難題。


 

一、基於業務場景進行資料庫選型


形變安全監測解算系統由資料分析管理和資料顯示預警兩部分組成。資料分析管理系統包括站點管理、資訊管理、統計分析、隱患點管理、系統管理等,資料顯示預警系統包括實時監控、影象監測、預警管理等。


資料分析管理服務負責對接收到的 GNSS 資料進行解碼和解算,獲取監測點的實時位置座標,並對資料處理結果進行管理和資料共享、使用者管理、定期自動備份等,以實現監測區域全天候在無人值守的情況下也能確保系統長期處於工作狀態,滿足實時監控需求,節約人力資源成本。


資料顯示預警系統負責對解算出的監測點位置座標進行集中和圖形化顯示,根據解算結果自動生成形變歷史曲線、衛星分佈圖、載噪比柱狀圖,實時展現各監測點的實時狀態,並根據預設的警戒值進行風險判別,以聲光、短訊息等形式進行多渠道預警資訊釋出,及時將災害發生的實時狀況反映到相關管理部門。


平臺業務部分截圖如下:

圖:形變資料

圖:衛星資料
對資料進行分析後可知,系統的工作場景基於大併發、高頻、大資料量,主要包含以下幾類:
  • 一體化智慧監測站上傳監測資料頻率最高 1 赫茲

  • 解算後的實時形變資料頻率最高 1 赫茲

  • 依據以上資料產生的更大量級衍生資料


形變安全監測解算系統需要針對監測目標進行實時監測,如何高效率地記錄站點的原始資料、解算後的形變資料,是保障整個平臺執行效率和穩定監測至關重要的一環。由於該專案裝置量大、資料量大、頻率高,單是進行儲存已經不易,如果還要對資料進行查詢下載等操作,無疑是難上加難。這些問題橫亙眼前,也讓我們在資料庫選擇上尤為慎重。


在此之前,我們的業務架構如下圖所示,實際執行過程中遇到了很多痛點。比如說,當時資料儲存在 MySQL 中且採用了分庫分表的形式,當需要查詢較大跨度時間內的資料時,由於資料量大,系統的效能會顯著下降,前端查詢展示一天的形變資料就需要數分鐘,這顯然是不能接受的。

後來,我們對需要儲存的業務場景進行了梳理,如下圖所示:

基於縝密考慮,我們把目光鎖定在時序資料庫上,在技術調研階段,對比了 InfluxDB、DolphinDB、TDengine 在內的三款常用的主流資料庫。


綜合對比後結果如下:
  • 由於目前 InfluxDB 叢集版已經閉源商業化,開源版僅支援單機模式。單機版效能遜於叢集版,同時沒有叢集的冗餘,當伺服器不可用時寫入和查詢會立即失敗,相比新興的時序資料庫其效能要差一些。

  • 目前 DolphinDB 主要應用在金融領域,且是閉源。

  • TDengine 效能強悍,且為國產自主研發、叢集功能開源,具有典型的分散式資料庫特徵,壓縮比例也非常高。


通過嚴謹的對比和技術調研,TDengine 不僅滿足我司支援國產資料庫的初衷,而且其很多優秀特性也能夠滿足我們的業務場景。


 

二、落地經驗


目前我們整個系統採用了數臺高效能的雲伺服器,暫時採用的是單節點部署,後續會增加多節點。從 2021 年 10 月執行至今,共建立了 2 張超級表以及近百張子表,總資料量超過 2.5 億條,壓縮後的資料量大小為 200G 左右。

下面以地災監測站 1 赫茲上報的原始資料為例說明下儲存情況。sraw 是我們的超級表,其中儲存了 1.6 億條資料,分散在 109 張子表中,由於 TDengine 的標籤是記憶體儲存,再加上列式儲存便於壓縮的加持,幫助我們節省了大量的儲存空間(僅佔用 100G 左右的空間),也為資料查詢效能打下了良好的基礎。

由於是初次使用開源版,中間也遇到了很多問題,好在 TDengine 官方技術群裡有專人做技術支援,進行一對一的免費指導,讓我們切身體驗到了開源資料庫的友好和國產資料庫的價值。

初次使用時 host 檔案配置錯了,導致 taos 資料庫啟動失敗

深入研究下諮詢 TDengine 使用細節,有問必答


 

三、效能表現


在查詢方面,我們主要的查詢邏輯是按時間查詢所有的原始資料和解算資料。TDengine 以其優異的效能完成了上述查詢分析過程。


具體操作如下:


1. 超級表統計功能測試

select avg(sat_num), max(e), min(n) from deform.scalc;

對這張近億行的超級表進行統計操作,僅用了 1.9 秒左右就返回了結果,充分證明了在實際應用中 TDengine 也確實表現卓越。


2. 子表按時段查詢功能

select * from deform.dm860936050878150 where ts > '2021-10-02 16:11:20.933' and ts < '2021-12-02 16:11:20.933' >> test.txt;


返回 187,681 行資料並寫入 test.txt 檔案,共 300MB 資料用時 8.1 秒,效能超出我們的預期。


 

四、寫在最後


由於目前僅僅是初期的專案需求,我們沒有采用多節點部署,但隨著業務的增長,多節點部署也迫在眉睫。而且後續會需要更大量的資料來做更復雜的分析,屆時我們將會更為深入地應用到 TDengine 的其他核心特性,如資料訂閱、多表聚合查詢、眾多計算函式等等。但僅就當下而言,TDengine 強大的儲存和快速查詢能力也已經非常令我們驚喜,讓我們對未來更加深入的合作充滿期待。最後,感謝濤思資料,希望貴公司能夠繼續完善產品、完善生態、擁抱開源,向下一個頂峰攀登。



作者簡介

馬威,武漢科技大學計算機專業,從事軟體開發 9 年的工作經驗,供職於武漢夢芯科技有限公司軟體部高階工程師。在車載物聯網平臺、形變安全監測解算系統、AGNSS 加速定位服務、DGNSS 精確定位服務等多方面有著長期技術積累和大量成功經驗。



👇 點選 閱讀原文 ,瞭解體驗 TDengine!

本文分享自微信公眾號 - TDengine(taosdata_news)。
如有侵權,請聯絡 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。