小 T 導讀:八五信(xin)息新能源電力物聯網(wang)平臺采用TDengine Database,存儲(chu)和查詢(xun)分析物聯網(wang)設(she)備(bei)的實時數據(ju),以及(ji)光伏設(she)備(bei)傳感器的遙測數據(ju)。需支撐至少50000臺設(she)備(bei)總計400萬測點的實時數據(ju)接入(ru)、處理及(ji)存儲(chu),預計日增量40多億條。之前使用TimescaleDB,無論在讀(du)(du)寫性能,還是硬件(jian)資源上,都遇到(dao)了(le)瓶頸(jing),且沒(mei)有集群功能。隨后切換(huan)到(dao)了(le)TDengine,讀(du)(du)寫性能提(ti)高了(le)10倍,存儲(chu)成本降低到(dao)原來1/5左右。
使用場景簡介
當前業務場景
我們首先在新能(neng)源電力物聯網(wang)平臺(tai)上使用(yong)了(le)TDengine Database,主要用(yong)于光伏設(she)備遙測實時數據的存(cun)儲、查詢和分析。
新能源物聯網生產(chan)運營平臺通過物聯網及大數據技術將(jiang)現(xian)有電站數據進行整合,實現(xian)園區(qu)設備(bei)的統一運行監視(shi),數據集中管(guan)理。給不同(tong)人員等提(ti)供(gong)全面、便捷、差異化的數據和服務。
對運(yun)維人員(yuan)(yuan)(yuan)提供(gong)設備的狀態信(xin)(xin)息、報警信(xin)(xin)息、遠程故障診(zhen)斷信(xin)(xin)息、實時數據等數據應用服(fu)務;對管理人員(yuan)(yuan)(yuan)和運(yun)營人員(yuan)(yuan)(yuan)提供(gong)各(ge)類(lei)檢測(ce)數據的匯(hui)總、變(bian)化趨勢等應用服(fu)務。該平臺系(xi)統(tong)整體的架構如下:

系(xi)(xi)統(tong)的總體架構按照分層實現(xian)的設(she)計(ji)(ji)理念,在底(di)層設(she)計(ji)(ji)上實現(xian)各個軟(ruan)件系(xi)(xi)統(tong)的職能分離,確保(bao)各部(bu)分高(gao)效(xiao)運(yun)轉。
數據規模,查詢壓力等要求
規(gui)劃設(she)計(ji)數據(ju)(ju)存(cun)儲(chu)規(gui)模大(da)概(gai)在16T左(zuo)右(you),目前數據(ju)(ju)日(ri)增(zeng)量(liang)(liang)為1億(yi)多條,全部測點(dian)接入后(hou)預計(ji)日(ri)增(zeng)量(liang)(liang)為40多億(yi)條左(zuo)右(you);系(xi)統需支撐至少(shao)50000臺設(she)備總計(ji)400萬測點(dian)(信號量(liang)(liang)和模擬量(liang)(liang))的實時數據(ju)(ju)接入、處理及存(cun)儲(chu)。
應用(yong)系統的常規查(cha)詢(xun)在(zai)50QPS左(zuo)右,高并發在(zai)100QPS左(zuo)右。一次(ci)歷(li)史(shi)數(shu)據查(cha)詢(xun)分析(xi)最大跨度為一年且支撐(cheng)多(duo)測點(dian)多(duo)模式分析(xi)方式。時序數(shu)據分析(xi)界面如下:


工況實時展示界面:

目(mu)前(qian)總數據(ju)量(liang)以(yi)及日增量(liang):


目前創建的超級表以及子(zi)表數:

數據模型簡介
目前根據不同的(de)測(ce)點(dian)類型建立了不同的(de)超(chao)級表。按照不同的(de)測(ce)點(dian)ID以及測(ce)點(dian)號(hao)作(zuo)為(wei)tag創建了不同的(de)子表。這樣我(wo)們針(zhen)對于測(ce)點(dian)可(ke)以直接進行(xing)單表分析,處理性(xing)能高、速度快。也(ye)可(ke)以針(zhen)對多測(ce)點(dian)進行(xing)分析,直接操作(zuo)超(chao)級表,業務實現簡單,同時兼顧了查詢性(xing)能。
查詢需求
· 簡單查詢
針對(dui)于單(dan)測點的(de)歷史數(shu)(shu)據(ju)查(cha)(cha)(cha)(cha)詢(xun)分(fen)析以及時間間隔聚(ju)合分(fen)析。主(zhu)要是對(dui)單(dan)測點的(de)異常數(shu)(shu)據(ju)的(de)排查(cha)(cha)(cha)(cha)和告警數(shu)(shu)據(ju)的(de)排查(cha)(cha)(cha)(cha)確認。TDengine是把同(tong)類設備(bei)數(shu)(shu)據(ju)歸入一(yi)個超級表,但每個設備(bei)都會根據(ju)超級表的(de)結構建立(li)自己的(de)一(yi)張子表,查(cha)(cha)(cha)(cha)詢(xun)單(dan)測點數(shu)(shu)據(ju)實(shi)際上只查(cha)(cha)(cha)(cha)詢(xun)一(yi)個子表,遍歷的(de)數(shu)(shu)據(ju)量大大減(jian)少,查(cha)(cha)(cha)(cha)詢(xun)分(fen)析基(ji)本毫秒級響應。簡(jian)單(dan)查(cha)(cha)(cha)(cha)詢(xun)SQL圖例:

· 聚合查詢
多測點(dian)相同時(shi)間(jian)維度(du)不同聚合類型的(de)時(shi)間(jian)遷移對比分析。側重于對比,方便用戶(hu)更(geng)加有效(xiao)的(de)確認不同測點(dian)下的(de)異(yi)常(chang)和差(cha)異(yi)情況。

· 大批量測點分組聚合查詢
數百測點的分組分時(shi)段聚合查詢;在一定時(shi)間段內,大批量測點的查詢仍然可(ke)以迅速響應。
查詢壓力
峰值并(bing)發(fa)為(wei)100qps,平(ping)均并(bing)發(fa)量為(wei)20qps,實(shi)際場(chang)景中(zhong)并(bing)發(fa)查(cha)詢(xun)壓力較小,未達到(dao)TDengine的查(cha)詢(xun)瓶頸。
采用TDengine帶來的收益
系統功能
讀寫性能較(jiao)(jiao)原(yuan)(yuan)TimescaleDB數據(ju)庫提(ti)高10倍左右,在數據(ju)接(jie)入層不用再擔心數據(ju)庫的寫入性能瓶頸;數據(ju)分(fen)析查(cha)詢應用層也較(jiao)(jiao)原(yuan)(yuan)系統有較(jiao)(jiao)大提(ti)升,尤其是在時(shi)間跨度大的聚合類分(fen)析幾乎瞬間響應。
通過亂(luan)序(xu)插入功能,解決了邊緣側(ce)由于網絡問(wen)題(ti)導致的數(shu)據(ju)傳輸不及時造成(cheng)的亂(luan)序(xu)寫入問(wen)題(ti),保證了數(shu)據(ju)的完整(zheng)性。
集群功能對(dui)比TimescaleDB優勢(shi)較(jiao)大(da),TimescaleDB沒有集群功能但支持(chi)流復制方式的主備庫;TDengine集群容(rong)易搭建且無主從節點區分,對(dui)應用改造和支撐較(jiao)友好,集群版讀寫性能提升較(jiao)大(da)。
數據存儲增加集(ji)群多(duo)副本功(gong)能(neng),通過數據冗余提升了(le)系統的安全和(he)可靠性(xing),降低了(le)系統的運維(wei)成本。
軟硬件資源
節(jie)省了系統(tong)大量的計算資源以及存儲資源,降低了大約4倍左右的存儲成本(ben)。
對比未使用TDengine之(zhi)前TimescaleDB時序庫開啟壓縮后對70億數據(ju)占用磁(ci)盤為(wei)165G,且一分鐘(zhong)內無法查詢出一個(ge)月(yue)的歷(li)史(shi)數據(ju);而在使用TDengine之(zhi)后磁(ci)盤占用空(kong)間為(wei)40G左右,毫秒(miao)級返回針對一個(ge)月(yue)的歷(li)史(shi)數據(ju)的聚合查詢。相關(guan)查詢如下:

應用TDengine遇到的問題與解決思路
原有(you)時序庫大數(shu)據量(liang)批量(liang)導入(ru)(ru)(ru)TDengine,在1.6版(ban)本進行批量(liang)導入(ru)(ru)(ru)非(fei)常(chang)麻(ma)煩,一次批量(liang)插入(ru)(ru)(ru)只有(you)200條左右(you),后期在升級到了2.0版(ban)本以(yi)上后一次可以(yi)插入(ru)(ru)(ru)1M數(shu)據,大大提升了不同(tong)(tong)數(shu)據庫不同(tong)(tong)表結構之間的批量(liang)導入(ru)(ru)(ru)性能(neng)。
未來使用TDengine的考慮
經(jing)過一段時(shi)(shi)間(jian)的線(xian)上運行,TDengine Database有優異的性能表現,我(wo)們決定(ding)將在后續(xu)時(shi)(shi)間(jian)將我(wo)們所有的物(wu)聯(lian)網項目(mu)逐步都更新為TDengine。
TDengine功能方面的期望與建議
分析型函數(shu)(shu)增(zeng)(zeng)強(qiang),希望增(zeng)(zeng)加時序(xu)庫(ku)中(zhong)實用的常用分析函數(shu)(shu);
增強連續聚合查詢功(gong)能,目前(qian)連續聚合功(gong)能實用性不強;
產品生(sheng)態,與Spark、Flink等(deng)開源分(fen)析工具(ju)的集成。
作者: 八(ba)五(wu)信(xin)息開發(fa)工程師李(li)良政(zheng)


























