小T導(dǎo)讀:中節(jié)能風(fēng)力發(fā)電股份有限公司(股票簡稱:節(jié)能風(fēng)電,股票代碼:601016)是中國節(jié)能環(huán)保集團有限公司控股的現(xiàn)代股份制公司。公司先后成功中標(biāo)并示范建設(shè)了國家第一個百萬千瓦級風(fēng)電基地啟動項目——河北張北單晶河200兆瓦風(fēng)電特許權(quán)項目,和第一個千萬千瓦級風(fēng)電基地啟動項目——甘肅玉門昌馬200兆瓦風(fēng)電特許權(quán)項目,是國家首個百萬千瓦、千萬千瓦風(fēng)電基地的示范者和引領(lǐng)者,在業(yè)內(nèi)樹立了較高的知名度和良好的品牌形象。建成、在建項目裝機規(guī)模547.97萬千瓦,已發(fā)展成為張北壩上地區(qū)、甘肅河西走廊地區(qū)最大的風(fēng)電開發(fā)商之一,是我國風(fēng)電領(lǐng)域一支重要的力量。
一、項目背景
公司作為中節(jié)能集團在風(fēng)電領(lǐng)域的專業(yè)化公司和核心上市平臺,具備成熟的風(fēng)電開發(fā)和運維經(jīng)驗,但是隨著在建風(fēng)場逐步增多以及各類新型傳感器的加裝,傳統(tǒng)運維方式已經(jīng)越來越吃力,數(shù)字化智能化的需求越來越強烈,因此迫切需要基于海量時序數(shù)據(jù)的數(shù)據(jù)平臺來支撐繁雜的運維工作。
因此,我們做了大量的時序數(shù)據(jù)調(diào)研工作。但是選型工作也并非一帆風(fēng)順,開始我們嘗試傳統(tǒng)的工控時序數(shù)據(jù)庫(Time-Series Database),但是隨著測點數(shù)量的增多,單機版架構(gòu)已經(jīng)無力支撐,后期我們也嘗試了InfluxDB和OpenTSDB等分布式架構(gòu)的時序數(shù)據(jù)庫,但是性能又達不到要求。
機遇巧合,我們注意到一款國產(chǎn)、開源的時序數(shù)據(jù)庫TDengine,所以也嘗試了一下。
二、TDengine選型測試
針對我們重點關(guān)注的查詢性能,我們做了如下幾個測試。
1. 單測點歷史數(shù)據(jù)聚合查詢
隨機選擇任一個測點,查詢該測點在某個時間段測點采集值的count,max,min,avg;比如從2020-01-01 00:00:00.000 到 2020-02-01 00:00:00.000的31天內(nèi)的共535680條數(shù)據(jù)記錄的count,max,min,avg。具體的查詢語句為:
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts>='2021-08-15 00:00:00.000' and ts<'2021-08-16 00:00:00.000'
實驗截圖如下:

3次查詢測試時延如下:
| 測試批次 | 時延(秒) |
| 1 | 0.635000 |
| 2 | 0.145000 |
| 3 | 1.492000 |
| 平均值 | 0.7573333333333333 |
2. 分組聚合查詢
查詢某個時間段內(nèi)測點采集值的count,max,min,avg,比如查詢從2020-01-01 00:00:00.000 到 2020-02-01 00:00:00.000的31天內(nèi)的數(shù)據(jù)記錄的count,max,min,avg。數(shù)據(jù)庫中對應(yīng)查詢語句為:
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' group by wtcode >>E:/taosTempData/2
實驗截圖如下:

3次查詢測試時延如下:
| 測試批次 | 時延(秒) |
| 1 | 0.040000 |
| 2 | 0.661000 |
| 3 | 0.099000 |
| 平均值 | 0.26666 |
3. 窗口查詢操作
查詢某個時間段內(nèi),按照1小時、1天、10天的時間窗口進行分組后的count,max,min,avg聚合結(jié)果;比如查詢從2020-01-01 00:00:00.000 到 2020-02-01 00:00:00.000的31天內(nèi)的全部數(shù)據(jù)記錄,按照每1小時、1天、10天的時間區(qū)間劃分后的count,max,min,avg。
數(shù)據(jù)庫中對應(yīng)查詢語句為:
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' and wtcode ='001' interval (1h) >>E:/taosTempData/3;
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' and wtcode ='001' interval (1d) >>E:/taosTempData/4;
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' and wtcode ='001' interval (10d) >>E:/taosTempData/5;
實驗截圖如下:

多個批次查詢測試時延如下:
| 測試批次 | 時延(秒) |
| interval(1h)第1次查詢 | 0.107000 |
| interval(1h)第2次查詢 | 0.060000 |
| interval(1h)第3次查詢 | 1.072000 |
| Interval(1h) 平均值 | 0.413 |
| 測試批次 | 時延(秒) |
| interval(1d)第1次查詢 | 0.041000 |
| interval(1d)第2次查詢 | 0.087000 |
| interval(1d)第3次查詢 | 1.615000 |
| Interval(1d) 平均值 | 0.581 |
| 測試批次 | 時延(秒) |
| interval(10d)第1次查詢 | 0.072000 |
| interval(10d)第2次查詢 | 0.026000 |
| interval(10d)第3次查詢 | 0.020000 |
| Interval(10d) 平均值 | 0.03933 |
經(jīng)過反復(fù)對比測試以及應(yīng)用適配,最終我們選定TDengine作為我們數(shù)據(jù)平臺的時序數(shù)據(jù)解決方案。
三、TDengine Database落地實踐
目前中節(jié)能風(fēng)電的整體時序數(shù)據(jù)流如下圖所示:

風(fēng)場的時序數(shù)據(jù)(主要是風(fēng)機數(shù)據(jù)和電氣數(shù)據(jù))穿透網(wǎng)閘后,經(jīng)由場站側(cè)的采集程序采集和轉(zhuǎn)發(fā),最終所有數(shù)據(jù)會匯聚到集團側(cè)的分布式時序數(shù)據(jù)庫,前端的實時監(jiān)視、指標(biāo)計算均構(gòu)建于其上,同時數(shù)據(jù)還要送到大數(shù)據(jù)分析平臺和生產(chǎn)運維平臺。
集團中心側(cè)的TDengine集群起到了舉足輕重的作用,既要收集所有風(fēng)場的時序數(shù)據(jù),同時還要支撐前端應(yīng)用以及同步數(shù)據(jù)到其它系統(tǒng)。
TDengine的諸多特性中,最吸引我們的是超級表和標(biāo)簽功能。超級表能讓同一類風(fēng)機的建模、管理和計算過程更加方便快捷,而標(biāo)簽特性能增加諸如隸屬項目、平臺容量等維度特征,便于在聚合操作過程中快速篩選或者分組。基于時間窗口和狀態(tài)窗口的功能也為應(yīng)用構(gòu)建提供了很多方便,比如功率曲線擬合過程中需要的五分鐘平均風(fēng)速和功率計算邏輯,以及基于風(fēng)機狀態(tài)的各類統(tǒng)計分析。
在TDengine的使用初期遇到了一些問題,主要涉及集群搭建和參數(shù)配置方面,經(jīng)過和濤思數(shù)據(jù)技術(shù)團隊的溝通交流,都已得到解決。
后期在數(shù)據(jù)建模和應(yīng)用適配方面也走了一些彎路,尤其是數(shù)據(jù)建模方面。最開始我們使用的是最簡單的單列模式,一個測點一張表,在測點數(shù)目少的情況下問題并不明顯,但是隨著測點數(shù)目的不斷膨脹,這種方式逐漸暴露出在應(yīng)用適配方面的問題;后來我們采取按照不同機型不同風(fēng)場建超級表的方式建模,基本能解決我們的應(yīng)用問題,但是依然有無效開關(guān)量數(shù)值過多的問題;最終我們采取將風(fēng)機狀態(tài)等重點開關(guān)量單列建模的方式解決了。
四、整體效果和未來展望
目前基于TDengine數(shù)據(jù)庫我們構(gòu)建了中節(jié)能風(fēng)電運維平臺,使用后數(shù)據(jù)存儲優(yōu)勢明顯,整體壓縮比在7-8倍,數(shù)據(jù)查詢也實現(xiàn)秒級響應(yīng)。整體使用效果如下圖所示:

未來我們考慮在每個風(fēng)電場站的三區(qū)部署一個單節(jié)點TDengine,作用不只是采集和轉(zhuǎn)發(fā),還要起到時序數(shù)據(jù)質(zhì)量治理以及實時模型預(yù)測的功能;而在集團側(cè)我們會考慮基于TDengine構(gòu)建更多更復(fù)雜的計算指標(biāo)和高級模型;同時還要和任務(wù)調(diào)度引擎以及風(fēng)電行業(yè)標(biāo)準(zhǔn)集成。未來的數(shù)據(jù)流圖如下圖所示:

最終將其作為中節(jié)能風(fēng)電公司時序數(shù)據(jù)的核心技術(shù)組件來構(gòu)建智能運維平臺,為中節(jié)能風(fēng)電公司3060雙碳目標(biāo)的提供堅實基礎(chǔ)。
作者介紹:
潘文彪,中節(jié)能風(fēng)電生產(chǎn)運維部數(shù)據(jù)分析師,2019年起從事節(jié)能風(fēng)電的數(shù)據(jù)分析與數(shù)字化平臺建設(shè)工作。



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



-1.png)










伙伴.png)
伙伴.png)
伙伴.png)



