作者介紹: 徐子攀,上海旬思科技有限公司研發(fā)總監(jiān),長期從事底層工業(yè)通訊協(xié)議開發(fā),獨立完成多種主流PLC、流量計等工業(yè)設備通訊采集驅動開發(fā),對工業(yè)現(xiàn)場數(shù)據(jù)采集相關技術有深入研究。近年參與工業(yè)互聯(lián)網(wǎng)平臺構建工作,負責平臺架構設計以及主要業(yè)務代碼開發(fā)工作。
上海旬思科技有限公司專注于工業(yè)大數(shù)據(jù)平臺實時數(shù)據(jù)采集、設備遠程監(jiān)測及預測性維護、機器協(xié)同互聯(lián)、遠程實時控制等多個工業(yè)領域。背靠上海臨港新片區(qū)針對工業(yè)互聯(lián)網(wǎng)、智能制造領域的產(chǎn)業(yè)扶持,打造國內工業(yè)互聯(lián)網(wǎng)行業(yè)先進產(chǎn)品和技術的先鋒企業(yè)。
旬思工業(yè)互聯(lián)平臺(TServer)是面向工業(yè)企業(yè)建立大數(shù)據(jù)平臺的產(chǎn)品解決方案,提供數(shù)據(jù)采集、解析、展示、報警、統(tǒng)計、查詢、分析以及遠程運維通道管理等功能,內置實時數(shù)據(jù)庫引擎,融合傳統(tǒng)SCADA軟件和工業(yè)互聯(lián)網(wǎng)架構技術,適用于工業(yè)互聯(lián)網(wǎng)行業(yè)的賦能創(chuàng)新。
項目背景和技術難點
湖北某特鋼公司的電力能源介質的計量,是通過TBox工控網(wǎng)關采集多功能電表來實現(xiàn)的。按照《關于湖北電網(wǎng)2020-2022年輸配電價和銷售電價有關事項的通知》,需要完善并實現(xiàn)“峰谷平尖”電能量費率計量和能源報表。TBox工控網(wǎng)關基于前期項目實施和實際應用需求提供了完整的技術方案,包含從電表采集電能數(shù)據(jù)并寫入TDengine時序數(shù)據(jù)庫,再經(jīng)過ETL工具處理后轉存到Oracle數(shù)據(jù)庫,從而滿足企業(yè)一期電能量數(shù)據(jù)報表對實時數(shù)據(jù)采集和存儲的要求。
本項目主要接入的能源介質有:電力、焦爐煤氣、高爐煤氣、轉爐煤氣、壓縮空氣、天然氣、氧氣、氮氣、氬氣、蒸汽、凈水、軟水、除鹽水和生活水等,項目一期首先要求采集電能量數(shù)據(jù),其中需要接入的電表多達874塊,電力能源數(shù)據(jù)已超20000點,每天產(chǎn)生的數(shù)據(jù)量在2800萬條以上;項目二期如果再接入非電數(shù)據(jù),還會有幾千個流量設備的接入,整個系統(tǒng)數(shù)據(jù)點也將遠超50000點,每天產(chǎn)生的數(shù)據(jù)量預估在1億條左右。
在設備通訊數(shù)據(jù)采集方面,我們一直處于行業(yè)領先水平;但對于大數(shù)據(jù)量的存儲,選擇什么樣的數(shù)據(jù)庫,是否也能滿足二期大數(shù)據(jù)量的接入能力,給我們帶來了極大的挑戰(zhàn)。

本項目特點:
- 開發(fā)周期短:用戶要求系統(tǒng)一個月上線;
- 穩(wěn)定性要求高:工業(yè)應用的特點,系統(tǒng)無人化運維;
- 單機性能要求:在用戶提供的一臺16核32G內存服務器上,需要完成所有工作,包含數(shù)據(jù)上傳、處理和轉存等服務;
- 系統(tǒng)兼容性:同時要考慮滿足二期50000+點的數(shù)據(jù)接入能力。
選擇 TDengine Database 的理由
為了解決大數(shù)據(jù)量帶來的數(shù)據(jù)存儲難點,以及滿足系統(tǒng)性能要求,我們在數(shù)據(jù)庫選型方面,做了充分的調研:
- MySQL:傳統(tǒng)關系型數(shù)據(jù)庫
開源免費,安裝使用簡單,維護成本低,很少宕機,支持多操作系統(tǒng)。
- InfluxDB:時序數(shù)據(jù)庫
可以高性能地查詢與存儲時序型數(shù)據(jù),被廣泛應用于存儲系統(tǒng)的監(jiān)控數(shù)據(jù)、IoT行業(yè)的實時數(shù)據(jù)等場景;集群功能沒有開源。
- TDengine:國產(chǎn)時序數(shù)據(jù)庫
國產(chǎn)開源,針對工業(yè)互聯(lián)網(wǎng)場景做了大量優(yōu)化,同時還支持滑動窗口,流式計算。開源了集群版本。
分析項目需求不難發(fā)現(xiàn),時序數(shù)據(jù)庫更適合此類工業(yè)大數(shù)據(jù)應用。而在同等數(shù)據(jù)集和硬件環(huán)境下,濤思官方的測試結果顯示,TDengine的寫入速度遠高于InfluxDB。同時TDengine支持多種數(shù)據(jù)接口,包含C/C++,Java,Python,Go和RESTful等。由于我們數(shù)據(jù)解析部分使用Go語言編寫,所以最終采用了Go Connector接口方式進行時序庫讀寫。
應用 TDengine Database 的場景、業(yè)務架構
本項目場景的能源管理類數(shù)據(jù)除時序特征外,還具有其他多種明顯特征:
- 數(shù)據(jù)結構簡單,寫多讀少;
- 數(shù)據(jù)極少需要更新或刪除;
- 流量平穩(wěn),根據(jù)設備數(shù)量和采集頻次,可預測;
- 數(shù)據(jù)保留期限為10年;
- 數(shù)據(jù)的查詢分析是基于時間段和空間區(qū)域;
- 除存儲、查詢操作外,還需要各種統(tǒng)計和實時計算操作;
- 數(shù)據(jù)量巨大,一天采集的數(shù)據(jù)可能超過1億條。
根據(jù)上述數(shù)據(jù)特征,結合TDengine給的建議,以及本項目數(shù)據(jù)特點和使用場景,我們做了以下優(yōu)化設計:
- 包含模擬量,數(shù)字量,報警,系統(tǒng)日志等類型數(shù)據(jù),同類型使用一個超級表集合;
- 單個數(shù)據(jù)點對應單個表存儲;
- 批量數(shù)據(jù)寫入,最大化SQL字符串拼接,提高數(shù)據(jù)寫入效率;
- Go多協(xié)程并發(fā)寫入,進一步提高寫入效率。
庫結構設計:保留update功能,方便后期對壞數(shù)據(jù)做二次處理。

普通表一覽:基于超級表自動生產(chǎn)普通點表。

電力能源數(shù)據(jù)一覽:數(shù)據(jù)上傳平臺后解析并顯示。

電力能源數(shù)據(jù)滑動查詢:根據(jù)查詢時間長度自適應選擇滑動窗口大小。

下圖是本項目完整業(yè)務架構圖,TBox工控網(wǎng)關南向采集現(xiàn)場電力能源數(shù)據(jù),北向實時上傳數(shù)據(jù)到TServer工業(yè)互聯(lián)平臺;TServer接收到數(shù)據(jù)后,通過解析識別,分類組包高并發(fā)寫入TDengine時序庫。

前期調研,TDengine優(yōu)勢再體現(xiàn)
在這里我們首先提兩個工業(yè)實時數(shù)據(jù)庫。 一個是Wonderware的高性能實時關系型數(shù)據(jù)庫InSQL,它集成了微軟公司的MS SQL Server并對其進行了擴展,具有高效數(shù)據(jù)壓縮和數(shù)據(jù)存儲等實時數(shù)據(jù)庫功能,它比常規(guī)關系型數(shù)據(jù)庫的數(shù)據(jù)采集速度、存儲量高數(shù)百倍。
InSQL擴展了SQL語句,使其具有了時間特性。InSQL的運行性能與所用的硬件系統(tǒng)有關,單機可以在1秒內完成6萬個點的取數(shù)或存儲(峰值)。這個速度與數(shù)據(jù)存貯方式無關,采用的周期性存儲(以固定的多少毫秒存儲一次)或增量存儲(數(shù)據(jù)的變化超過設定百分比時存一次)。InSQL可以每秒存儲3萬點(均值)或每100毫秒存2000點數(shù)據(jù)。要提高數(shù)據(jù)采集速度,主要障礙是大多數(shù)數(shù)據(jù)源(PLC或DCS)提供數(shù)據(jù)的速度趕不上InSQL取數(shù)的速度。InSQL的最小分辨率為3.3毫秒。
另一個是OSI的PI數(shù)據(jù)庫,每個PI的高端產(chǎn)品服務器中可以處理每秒鐘15萬點的數(shù)據(jù)。在客戶端軟件ProcessBook上,可以在秒級時間內從2年或3年歷史中取到1000點數(shù)據(jù)。在OSI的WEB網(wǎng)站上有一個電子表格可以幫助你詳細計算所需的配置。
TDengine是濤思數(shù)據(jù)面對高速增長的物聯(lián)網(wǎng)大數(shù)據(jù)市場和技術挑戰(zhàn)推出的創(chuàng)新性的大數(shù)據(jù)處理產(chǎn)品,在時序空間大數(shù)據(jù)處理上,有著自己獨到的優(yōu)勢。TDengine單核每秒能處理至少2萬次請求,插入數(shù)百萬個數(shù)據(jù)點,讀出一千萬以上數(shù)據(jù)點,比現(xiàn)有通用數(shù)據(jù)庫快十倍以上,也遠遠超出了InSQL、PI這兩個工業(yè)實時數(shù)據(jù)庫的讀寫能力。
TDengine問題解決
使用TDengine過程中,幾乎沒有遇到什么大問題。一些小bug也可以通過版本升級解決。這里要對濤思數(shù)據(jù)的物聯(lián)網(wǎng)大數(shù)據(jù)微信交流群,以及非常熱心的濤思工程師陳玉同學,在我們一期系統(tǒng)上線后遇到的配置錯誤導致服務啟動失敗的積極快速響應表示感謝。
未來規(guī)劃
本項目一期電力能源數(shù)據(jù)的采集早已上線運行3個多月,用戶也非常認可這套系統(tǒng)。我們在給用戶培訓過程中,也強力推薦了國產(chǎn)的TDengine數(shù)據(jù)庫,相信未來這些用戶也將成為TDengine的忠實粉絲。
我們正在準備項目二期非電能數(shù)據(jù)的采集,這次變量會成倍增長,同時也會面臨新的挑戰(zhàn),比如分布式存儲,熱冗余備份等作為大數(shù)據(jù)量接入和數(shù)據(jù)安全備份的必要保障。
經(jīng)過一期成功經(jīng)驗的積累,我們相信二期新系統(tǒng)也會很順利的交付運行。后續(xù)在石油管道,冶金智能制造等更多場景中,也在嘗試使用TDengine時序庫作為我們的存儲方案。 對于TDengine,我們也有一些期待升級改進的地方:
- 推出Windows平臺的Server端;
- 更多的SQL語句支持,支持更豐富的復雜計算;
- 更穩(wěn)定運行,異常不重啟服務。



互聯(lián)網(wǎng).png)



-1.png)












伙伴.png)



