Demo 數據集準備
我們(men)使用(yong)公(gong)開(kai)的(de)(de)(de)里面的(de)(de)(de)某風場(chang)發(fa)電(dian)數(shu)據(ju)(ju),作(zuo)為(wei)預測算法的(de)(de)(de)數(shu)據(ju)(ju)來(lai)源,基于(yu)歷史數(shu)據(ju)(ju)預測未(wei)(wei)來(lai)一(yi)天內的(de)(de)(de)每15分(fen)鐘的(de)(de)(de)發(fa)電(dian)量。原始(shi)數(shu)據(ju)(ju)集(ji)的(de)(de)(de)采集(ji)頻次為(wei)4秒,單位與時間戳(chuo)未(wei)(wei)提(ti)供(gong)。為(wei)了方(fang)便演示,按照(zhao)頻率(lv)從2025-01-01 00:00:00開(kai)始(shi)向前倒推(tui)生成(cheng)時間戳(chuo),并按照(zhao)15分(fen)鐘進行求和(he)降采樣后(hou)存(cun)儲在(zai)數(shu)據(ju)(ju)文件中。
該數據文件,放置于//github.com/taosdata/TDgpt-demo倉庫(ku)的demo_data目錄下,請參考(kao)下文的步驟(zou)導(dao)入TDengine以完(wan)成演示。數據集的統(tong)計信息如下:

演示環境準備
環境要求
您(nin)可基于Linux、Mac以及Windows操作系統完(wan)成(cheng)Demo系統的運行。但(dan)為使用docker-compose,您(nin)計算機(ji)上(shang)需要安(an)裝有下(xia)屬軟件:
- Git
- Docker Engine: v20.10+
- Docker Compose: v2.20+
Demo中包含3個docker鏡像 (TDengine, TDgpt, Grafana),以(yi)及(ji)一組用(yong)于(yu)產生預(yu)測/異常檢測結(jie)果的(de)shell腳(jiao)本。組件版本的(de)要求如下:

克隆Demo倉庫到本地
git clone //github.com/taosdata/TDgpt-demo
cd TDgpt-demo
chmod 775 analyse.sh
文件夾下(xia)包含docker-compose.yml、tdengine.yml兩(liang)個yml文件。docker-compose.yml 包含了(le)所有一鍵啟(qi)動demo所需的鏡像配(pei)置信息,其引用(yong)tdengine.yml作為Grafana的數據源(yuan)配(pei)置。
TDgpt-demo/demo_data下(xia)包(bao)含三個csv文件(electricity_demand.csv、wind_power.csv、ec2_failure.csv),以及三個同前綴(zhui)sql腳(jiao)本,分別對(dui)應電力需(xu)求預(yu)測、風力發(fa)電預(yu)測和運維監控(kong)異(yi)常(chang)檢測場景。
TDgpt-demo/demo_dashboard下包(bao)含了三(san)個json文件(electricity_demand_forecast.json、wind_power_forecast.json、ec2_failure_anomaly.json),分別(bie)對應(ying)三(san)個場景的看板。
docker-compose.yml中已(yi)經定義了TDengine容(rong)器的持久化卷:tdengine-data,待容(rong)器啟動后,使用docker cp命令將demo_data拷貝至(zhi)容(rong)器內使用。
運行和關閉Demo
注意:在運行demo前,請根據您宿主機的架構(CPU類型),編輯docker-compose.yml文件,為TDengine指定對應的platform參數:linux/amd64(Intel/AMD CPU)或linux/arm64(ARM CPU)。TDgpt必須統一使用linux/amd64參數。
進入(ru)docker-compose.yml文件所在(zai)的目(mu)錄執行如下命令,啟動TDengine、TDgpt和Grafana一(yi)體化演(yan)示環境(jing):
docker-compose up -d
首次運行時,等待10s后請執(zhi)行如下命令將(jiang)TDgpt的(de)Anode節點(dian)注冊到TDengine:
docker exec -it tdengine taos -s "create anode 'tdgpt:6090'"
在(zai)宿主機(ji)執行下列命(ming)令,初始化體驗測(ce)試環境(jing)的(de)數(shu)據:
docker cp analyse.sh tdengine:/var/lib/taos
docker cp demo_data tdengine:/var/lib/taos
docker exec -it tdengine taos -s "source /var/lib/taos/demo_data/init_wind_power.sql"
關閉演示環境,請使用:
docker-compose down
進行演示
1. 打開(kai)瀏覽器,輸入//localhost:3000,并用(yong)默認的用(yong)戶名(ming)口令(ling)admin/admin登錄Grafana。
2. 登錄(lu)成功(gong)后,進入(ru)路徑”Home → Dashboards”頁面,并(bing)且導入(ru)wind_power_forecast.json文件。

3. 導入(ru)后,選擇“wind_power_forecast”這個(ge)面板(ban)。面板(ban)已經配置好了真實值、TDtsfm_1以(yi)及HoltWinters的(de)預測結果(guo)。當前只有(you)真實值的(de)數據曲線。
4. 我們以analyze.sh腳(jiao)本,來(lai)重現(xian)上(shang)述預測(ce)結果。首(shou)先(xian)完成TDtsfm_1算法的演(yan)示(shi):
docker exec -it tdengine /var/lib/taos/analyse.sh --type forecast --db tdgpt_demo --table wind_power --stable single_val --algorithm tdtsfm_1 --params "fc_rows=96,wncheck=0" --start "2024-07-12" --window 30d --step 1d
上述shell腳本(ben),將從指(zhi)定的(de)(de)起始時間開(kai)始(2024-07-12)以(yi)前(qian)一個月(yue)的(de)(de)數據(ju)為輸入,使用TDtsfm_1算法預(yu)測當前(qian)下一天(tian)的(de)(de)每15分鐘的(de)(de)發電量(共計96個數據(ju)點(dian)),直(zhi)到達到wind_power表(biao)中(zhong)最后一天(tian)的(de)(de)記錄,并將結(jie)果(guo)寫(xie)入wind_power_tdtsfm_1_result表(biao)中(zhong)。執行(xing)新的(de)(de)預(yu)測前(qian),腳本(ben)會(hui)新建/清空對應的(de)(de)結(jie)果(guo)表(biao)。執行(xing)過程中(zhong)將持續在控制臺(tai)上,按照天(tian)為單位推進輸出如下的(de)(de)執行(xing)結(jie)果(guo):
taos> INSERT INTO tdgpt_demo.wind_power_tdtsfm_1_result SELECT _frowts, forecast(val, 'algorithm=tdtsfm_1,fc_rows=96,wncheck=0')
FROM tdgpt_demo.wind_power
WHERE ts >= '2024-09-04 00:00:00' AND ts < '2024-10-04 00:00:00'
Insert OK, 96 row(s) affected (0.264995s)
5. Grafana的(de)看板上,配置刷(shua)新頻率為5s,將動態顯示(shi)預測結果(guo)的(de)黃(huang)色(se)曲線,直觀呈現與實(shi)際值的(de)對比(bi)。為了展(zhan)示(shi)清晰,請按住command鍵點擊左下(xia)角的(de)Real以及TDtsfm_1圖例(Mac下(xia),Windows下(xia)請使用(yong)win鍵),從而只保留這兩條曲線展(zhan)示(shi)。




6. 完成HoltWinters模型的演(yan)示:
docker exec -it tdengine /var/lib/taos/analyse.sh --type forecast --db tdgpt_demo --table wind_power --stable single_val --algorithm holtwinters --params "rows=96,period=96,wncheck=0,trend=add,seasonal=add" --start "2024-07-12" --window 30d --step 1d
與(yu)第四步類(lei)似,HoltWinters模(mo)型將動態輸出預(yu)(yu)測(ce)結(jie)果(guo)并呈現(xian)在看(kan)板上。從(cong)預(yu)(yu)測(ce)結(jie)果(guo)中可以(yi)看(kan)到,TDtsfm_1對數據(ju)的(de)預(yu)(yu)測(ce)精(jing)度(du)(du)優于于傳統的(de)統計學方法(fa)HoltWinters。除了(le)預(yu)(yu)測(ce)精(jing)度(du)(du)外,HoltWinters算(suan)法(fa)的(de)最大問(wen)題是需要(yao)非(fei)常精(jing)細化的(de)對參數進行調整評估(gu),否則(ze)還容易出現(xian)下(xia)圖中這種(zhong)頻繁發(fa)生的(de)預(yu)(yu)測(ce)值奇異點(dian)。

基(ji)于鼠標圈選的方式,我們可以查看(kan)一段時間(jian)內的細粒度預測(ce)結(jie)果對比:

您(nin)也可(ke)以嘗(chang)試其(qi)他(ta)算(suan)法(fa)或模(mo)型,來找到最合適自己(ji)場景的算(suan)法(fa)和(he)模(mo)型。
Demo腳本使用詳解
腳本概述
analyse.sh腳(jiao)本用于(yu)在 TDengine 數據庫上執行時間(jian)序列預(yu)測和異常檢(jian)測分(fen)析(xi),支持(chi)滑動窗口算法處理。主(zhu)要(yao)功能包括(kuo):
- 時間序列預測 :使用 HoltWinters 等算法進行未來值預測 。
- 異常檢測 :使用 k-Sigma 等算法識別數據異常點 。
- 自動窗口滑動 :支持自定義窗口大小和步長進行連續分析。
參數說明

TDengine 推薦使(shi)用超級(ji)表(biao)來進行數據建(jian)模(mo)。因(yin)此(ci),Demo中建(jian)立(li)了一(yi)個名(ming)為single_val的(de)超級(ji)表(biao),包含ts (timestamp類型) 和(he)val(float類型),以及標(biao)簽定義scene (varchar (64))。現階段TDgpt只支持單列值輸入輸出,因(yin)此(ci)這(zhe)個超級(ji)表(biao)可以作為所有源數據表(biao)和(he)結果表(biao)的(de)結構定義。子表(biao)的(de)表(biao)名(ming)與tag名(ming)稱保持一(yi)致即可。
db參數指定了源數據(ju)表(biao)(biao)和結(jie)果(guo)表(biao)(biao)隸屬的(de)數據(ju)庫。結(jie)果(guo)表(biao)(biao)將(jiang)以【源表(biao)(biao)名稱(cheng)】_【算法名稱(cheng)】_【result】格式存儲。Grafana里面通過查詢(xun)結(jie)果(guo)表(biao)(biao)實現分(fen)析結(jie)果(guo)和原始(shi)數據(ju)的(de)對比(bi)。
一般情(qing)況下,對于非必填(tian)項,用戶在demo過(guo)程中只需要設(she)置(zhi)–start參(can)數以節省運(yun)行時間。對于必填(tian)項,請參(can)考示例值進行設(she)置(zhi)。
時間格式說明
step和window參(can)數指定(ding)的(de)滑動步長和分析窗口大(da)小需符合如下參(can)數約定(ding):

腳本執行流程
graph TDgpt_Demo
A[開始] --> B[參數解析與驗證]
B --> C{是否指定start?}
C -->|否| D[查詢最小時間戳]
C -->|是| E[轉換時間格式]
D --> E
E --> F[計算時間窗口]
F --> G[生成結果表]
G --> H{是否到達數據終點?}
H -->|否| I[生成并執行SQL]
I --> H
H -->|是| J[輸出完成信息]
使用更多的數據
參考(kao)「運行和(he)(he)關閉Demo」里(li)wind_power.sql腳本的(de)內(nei)容,確保按照規定格式將數據準備為csv格式(逗號分(fen)隔,值需(xu)要(yao)用英文雙引號括起來(lai)),即可將數據導入TDengine。然后,請(qing)使用「進行演示(shi)」章節中(zhong)的(de)方法來(lai)生成(cheng)預測(ce)結果,并調(diao)整Grafana中(zhong)的(de)看板(ban)以實現和(he)(he)實際數據的(de)對比。
結論
在(zai)本文中(zhong),我們展示了使用TDgpt來進行風(feng)力發(fa)電量的(de)完整(zheng)流程。從中(zhong)可以看到,基于 TDgpt 來構建時(shi)序數據分析,能夠(gou)以SQL方式實(shi)現與應用的(de)便(bian)捷(jie)集成,還(huan)可以用Grafana 進行展示,大大降低(di)開(kai)發(fa)和應用時(shi)序數據預測和異常檢測的(de)成本。
從預(yu)測(ce)(ce)效(xiao)果(guo)來(lai)看,基于(yu)(yu)transformer架構的(de)(de)(de)預(yu)訓練模(mo)型TDtsfm_1在使(shi)用的(de)(de)(de)數(shu)(shu)據(ju)集(ji)上展(zhan)示(shi)出優于(yu)(yu)Holtwinters模(mo)型的(de)(de)(de)效(xiao)果(guo)。但相比于(yu)(yu)”基于(yu)(yu)TDgpt的(de)(de)(de)電力需求預(yu)測(ce)(ce)”中的(de)(de)(de)效(xiao)果(guo),整體預(yu)測(ce)(ce)準確(que)性(xing)要低一(yi)些。這一(yi)方面是(shi)由于(yu)(yu)TDtsfm_1訓練時使(shi)用的(de)(de)(de)是(shi)wind_power數(shu)(shu)據(ju)集(ji)的(de)(de)(de)4s精(jing)度原始數(shu)(shu)據(ju),而非降采(cai)樣數(shu)(shu)據(ju),這會導致數(shu)(shu)據(ju)特(te)征沒有(you)被很好(hao)的(de)(de)(de)捕(bu)獲,從而降低了針對降采(cai)樣數(shu)(shu)據(ju)的(de)(de)(de)預(yu)測(ce)(ce)效(xiao)果(guo);另一(yi)方面,風力發(fa)電量(liang)與天(tian)氣預(yu)報數(shu)(shu)據(ju)高(gao)度相關。受(shou)限于(yu)(yu)數(shu)(shu)據(ju)集(ji)中只(zhi)有(you)發(fa)電量(liang)數(shu)(shu)據(ju),無法產(chan)生良好(hao)的(de)(de)(de)預(yu)測(ce)(ce)結(jie)果(guo)。
在不同的(de)(de)實(shi)際場景下(xia),用(yong)戶(hu)需要針對(dui)數(shu)據(ju)特點(dian),針對(dui)模型算(suan)法進(jin)行選(xuan)擇(ze)和(he)參數(shu)調優。TDgpt的(de)(de)企業(ye)版(ban)中,將為用(yong)戶(hu)提供更(geng)多的(de)(de)選(xuan)擇(ze):
- 模型選擇器。模型選擇器可以自動根據用戶的歷史數據集,對購買的所有模型進行準確性評估。用戶可選擇最適合自己場景的模型或算法進行部署和應用。
- TDtsfm_1自研模型的重訓練及微調。TDtsfm_1基于海量時序數據進行了預訓練,在大部分場景下相比于傳統的機器學習和統計預測模型都會有顯著的準確率優勢。如果用戶對于模型預測準確度有更高的要求,可以申請購買TDgpt企業版的預訓練服務。使用用戶的場景歷史數據進行預訓練,在特定場景下的預測效果可能更佳。
- 第三方解決方案。濤思數據聯合國內外時序分析/異常檢測專業廠家、研究機構,為用戶提供專業的分析解決方案,包括落地過程中的實施服務等。
關于企業(ye)版(ban)更多(duo)信息,點(dian)擊下(xia)方按鈕,咨(zi)詢解決方案專家。
關于背景
新能源(yuan)發(fa)(fa)電(dian)(dian)(dian)(dian)(dian)預(yu)(yu)(yu)測(ce)(ce)(ce)技術(shu)正(zheng)成為保障電(dian)(dian)(dian)(dian)(dian)網(wang)穩定運行(xing)的(de)關鍵。隨著(zhu)風電(dian)(dian)(dian)(dian)(dian)、光伏等新能源(yuan)快速發(fa)(fa)展,天氣變化帶(dai)來的(de)發(fa)(fa)電(dian)(dian)(dian)(dian)(dian)波動給(gei)電(dian)(dian)(dian)(dian)(dian)網(wang)調度帶(dai)來挑戰(zhan)。通過實時(shi)預(yu)(yu)(yu)測(ce)(ce)(ce),電(dian)(dian)(dian)(dian)(dian)網(wang)可提(ti)前調配儲(chu)能設備或啟動燃(ran)氣電(dian)(dian)(dian)(dian)(dian)站,防止突(tu)然停電(dian)(dian)(dian)(dian)(dian)。國家還規定預(yu)(yu)(yu)測(ce)(ce)(ce)偏差過大的(de)企(qi)業需繳納罰(fa)款,推動企(qi)業進行(xing)預(yu)(yu)(yu)測(ce)(ce)(ce)技術(shu)升級(ji)。這(zhe)項技術(shu)帶(dai)來的(de)經濟效益(yi)同樣顯著(zhu)。在西北地(di)區,通過預(yu)(yu)(yu)測(ce)(ce)(ce)調整火電(dian)(dian)(dian)(dian)(dian)出力(li),可大幅減少煤炭(tan)浪費。電(dian)(dian)(dian)(dian)(dian)力(li)市場中,發(fa)(fa)電(dian)(dian)(dian)(dian)(dian)企(qi)業能結合發(fa)(fa)電(dian)(dian)(dian)(dian)(dian)量和電(dian)(dian)(dian)(dian)(dian)價預(yu)(yu)(yu)測(ce)(ce)(ce)制定交易策略,例如在光伏發(fa)(fa)電(dian)(dian)(dian)(dian)(dian)高峰時(shi)段提(ti)前安排(pai)儲(chu)能設備放電(dian)(dian)(dian)(dian)(dian),提(ti)升收益(yi)。
技(ji)術進步(bu)正推動行業(ye)(ye)向智(zhi)能化轉(zhuan)型。當前(qian)主流技(ji)術通過分(fen)析(xi)氣(qi)象數據(ju)和歷史(shi)發電規律,構建動態(tai)預測(ce)模型,并(bing)借助云端系(xi)統(tong)實時優化調(diao)度(du)策(ce)略。例(li)如,部(bu)分(fen)企(qi)業(ye)(ye)通過融(rong)合氣(qi)象云層監(jian)測(ce)和地形數據(ju),顯著(zhu)提升預測(ce)精度(du)。此外(wai),風光互補發電系(xi)統(tong)、儲能技(ji)術等協同應用,進一步(bu)增(zeng)強了新能源的穩(wen)定性。
隨著電力市場化改革深化,預測技(ji)術已成為新能源參與市場競爭的關(guan)鍵支(zhi)撐。通(tong)過提前預測發電能力和市場供需,企業可優化中長期交易策(ce)略,同時(shi)提升(sheng)現貨市場中的靈活響應能力。這種技(ji)術革新正推(tui)動電力系(xi)統從依賴傳(chuan)統能源轉(zhuan)向更智能、高(gao)效的新模(mo)式。
本文將提供(gong)基于(yu) docker-compose 快速(su)部(bu)署 TDgpt 體(ti)驗測試(shi)環境的(de)(de)指引。并基于(yu)這個環境和(he)真實的(de)(de)數(shu)據(ju),展示日(ri)前預(yu)測15分鐘(zhong)級別的(de)(de)風力(li)發電量預(yu)測的(de)(de)全過程(cheng),便于(yu)大家快速(su)掌握 TDgpt,迅速(su)讓(rang)自己擁有AI驅動的(de)(de)時序數(shu)據(ju)預(yu)測與異常(chang)檢測的(de)(de)能(neng)力(li)。
關于TDgpt
TDgpt 是(shi) TDengine 內置的(de)(de)時(shi)(shi)(shi)序(xu)(xu)(xu)(xu)數(shu)據(ju)(ju)分(fen)(fen)析智能(neng)體,它基于 TDengine 的(de)(de)時(shi)(shi)(shi)序(xu)(xu)(xu)(xu)數(shu)據(ju)(ju)查詢功能(neng),通(tong)過(guo) SQL 提供(gong)運行(xing)時(shi)(shi)(shi)可動態(tai)擴(kuo)展和切換的(de)(de)時(shi)(shi)(shi)序(xu)(xu)(xu)(xu)數(shu)據(ju)(ju)高級(ji)分(fen)(fen)析的(de)(de)能(neng)力,包括時(shi)(shi)(shi)序(xu)(xu)(xu)(xu)數(shu)據(ju)(ju)預(yu)(yu)測和時(shi)(shi)(shi)序(xu)(xu)(xu)(xu)數(shu)據(ju)(ju)異常檢(jian)測。通(tong)過(guo)預(yu)(yu)置的(de)(de)時(shi)(shi)(shi)序(xu)(xu)(xu)(xu)大模(mo)型(xing)、大語言模(mo)型(xing)、機器學習(xi)、傳統(tong)的(de)(de)算法,TDgpt 能(neng)幫助工程師(shi)在10分(fen)(fen)鐘(zhong)內完(wan)成時(shi)(shi)(shi)序(xu)(xu)(xu)(xu)預(yu)(yu)測與異常檢(jian)測模(mo)型(xing)的(de)(de)上線,降(jiang)低(di)至(zhi)少80%的(de)(de)時(shi)(shi)(shi)序(xu)(xu)(xu)(xu)分(fen)(fen)析模(mo)型(xing)研(yan)發和維護成本。
截(jie)止到(dao)3.3.6.0版本, 提供Arima、HoltWinters、基于Transformer架構自研的TDtsfm (TDengine time series foundation model) v1版和其他(ta)時序模型(xing)(xing)(xing),以(yi)及k-Sigma、Interquartile range(IQR)、Grubbs、SHESD、Local Outlier Factor(LOF)等異常檢(jian)測模型(xing)(xing)(xing)。用戶可以(yi)根據(ju)自行接入自研或其他(ta)開(kai)源(yuan)的時序模型(xing)(xing)(xing)或算法(fa)。


























