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

3次查詢測(cè)試時(shí)延如下:
| 測(cè)試批次 | 時(shí)延(秒) |
| 1 | 0.635000 |
| 2 | 0.145000 |
| 3 | 1.492000 |
| 平均值 | 0.7573333333333333 |
2. 分組聚合查詢
查詢某個(gè)時(shí)間段內(nèi)測(cè)點(diǎn)采集值的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ù)庫(kù)中對(duì)應(yīng)查詢語(yǔ)句為:
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
實(shí)驗(yàn)截圖如下:

3次查詢測(cè)試時(shí)延如下:
| 測(cè)試批次 | 時(shí)延(秒) |
| 1 | 0.040000 |
| 2 | 0.661000 |
| 3 | 0.099000 |
| 平均值 | 0.26666 |
3. 窗口查詢操作
查詢某個(gè)時(shí)間段內(nèi),按照1小時(shí)、1天、10天的時(shí)間窗口進(jìn)行分組后的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小時(shí)、1天、10天的時(shí)間區(qū)間劃分后的count,max,min,avg。
數(shù)據(jù)庫(kù)中對(duì)應(yīng)查詢語(yǔ)句為:
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;
實(shí)驗(yàn)截圖如下:

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

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

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

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



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



-1.png)




.png)


證.png)


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



