小T導(dǎo)讀
泛能網(wǎng)能碳產(chǎn)業(yè)智能平臺作為新奧數(shù)能科技有限公司打造的一體化智能平臺,服務(wù)于公建、工廠、園區(qū)等場景,旨在通過物聯(lián)網(wǎng)、大數(shù)據(jù)與人工智能技術(shù),實現(xiàn)能源設(shè)備的實時監(jiān)控、運營管理與能碳分析。隨著客戶規(guī)模擴大與數(shù)據(jù)量激增,平臺面臨海量設(shè)備數(shù)據(jù)采集、高并發(fā)查詢、長期存儲及指標計算準確性等多重挑戰(zhàn)。平臺原先基于 OpenTSDB 的架構(gòu)已無法滿足業(yè)務(wù)發(fā)展需求,尤其在數(shù)據(jù)處理及時性、準確性與資源成本方面存在明顯瓶頸。通過引入 TDengine 時序數(shù)據(jù)庫,平臺實現(xiàn)了從任務(wù)調(diào)度到流式計算的架構(gòu)升級,數(shù)據(jù)處理性能顯著提升,計算時效性最高提升 100 倍,計算時長縮短 2-8 倍,客戶投訴率幾乎降為零,同時服務(wù)器資源從原先的十多臺物理機大幅縮減,整體運維成本顯著降低。
背景和痛點
泛能網(wǎng)平臺自 2018 年啟動建設(shè)以來,已服務(wù)超過 5000 家客戶,每客戶平均接入約 50 臺設(shè)備,每臺設(shè)備每分鐘采集 10-20 個數(shù)據(jù)點,系統(tǒng)每秒數(shù)據(jù)處理量(TPS)高達 9 萬。隨著業(yè)務(wù)擴展,以 OpenTSDB 為基礎(chǔ)的架構(gòu)平臺在數(shù)據(jù)采集、存儲、查詢和計算方面面臨嚴峻挑戰(zhàn):
- 海量數(shù)據(jù)采集與高并發(fā)寫入:設(shè)備數(shù)量龐大,采集頻率高,部分場景要求秒級甚至毫秒級上報,數(shù)據(jù)量呈指數(shù)級增長。
- 多維度實時查詢需求:客戶需按時間維度查詢最大值、最小值、平均值等統(tǒng)計指標,并要求查詢響應(yīng)速度快。
- 長期數(shù)據(jù)存儲壓力:部分客戶要求保留 5-10 年歷史數(shù)據(jù),對存儲空間和索引管理帶來極大壓力。
- 指標計算不準確與延遲:原有基于任務(wù)周期調(diào)度的計算方式導(dǎo)致日、月、年指標計算結(jié)果不一致。同時,計算延遲嚴重,影響數(shù)據(jù)及時性。
架構(gòu)升級
基于上述痛點,平臺在數(shù)據(jù)庫選型中設(shè)定了明確目標:支持高并發(fā)寫入與查詢、具備高效壓縮與長期存儲能力、支持流式計算與實時處理、具備良好的擴展性與運維便利性。在對比了多款時序數(shù)據(jù)庫(Timeseries Database)后,項目初期我們選擇使用了 TDengine TSDB 2.x 的社區(qū)版本,社區(qū)版本在集群高可用、性能方面可以很好支撐業(yè)務(wù)平穩(wěn)運行。但我們在使用 2.x 社區(qū)版本中遇到幾個問題:
- 2.x 社區(qū)版本不支持數(shù)據(jù)刪除,但是新版本 3.x 里默認支持;
- 2.x 社區(qū)版本 UPDATE 參數(shù)無法動態(tài)修改,新版本 3.x 默認開啟了更新數(shù)據(jù)的功能;
- 2.x 版本已經(jīng)停止維護更新,且社區(qū)版沒有專有的售后運維的支持;
基于以上幾點,為了保障未來業(yè)務(wù)穩(wěn)定運行,我們決定升級到 TDengine TSDB 3.3.6.x 的企業(yè)版穩(wěn)定版本。
業(yè)務(wù)架構(gòu)
平臺采用“采算分離”架構(gòu),物聯(lián)網(wǎng)平臺負責數(shù)據(jù)采集,TDengine 時序數(shù)據(jù)庫(Timeseries Database)作為核心存儲與計算引擎,配合流式計算模塊實現(xiàn)實時數(shù)據(jù)處理。
- 數(shù)據(jù)采集層:通過物聯(lián)網(wǎng)平臺接入設(shè)備數(shù)據(jù)。
- 流式計算層:替換原有任務(wù)調(diào)度,實現(xiàn)實時指標計算。
- 存儲層:TDengine TSDB 集群負責測點數(shù)據(jù)與指標結(jié)果的存儲與查詢。

數(shù)據(jù)模型
平臺基于 TDengine TSDB 的超級表與子表模型進行建模:
- 測點超級表:按設(shè)備類型分類,如電能表、流量計等,每臺設(shè)備對應(yīng)一個子表。
- 指標超級表:按時間維度(時、分、日、月、年)分類,每個子指標對應(yīng)一個子表,記錄指標值。

遷移經(jīng)驗
面對千億級歷史數(shù)據(jù)、新舊數(shù)據(jù)模型差異以及在線業(yè)務(wù)零中斷的核心要求,我們設(shè)計了一套灰度遷移與數(shù)據(jù)同步方案。整個遷移過程分為三個階段:新版本測試驗證、歷史數(shù)據(jù)遷移、灰度切換與流量遷移。全程采用漸進式灰度策略,確保業(yè)務(wù)平穩(wěn)過渡。
第一階段:新版本測試驗證
我們在 TDengine TSDB 3.x 企業(yè)版集群中測試驗證業(yè)務(wù)應(yīng)用是否正常工作,需要升級 taosjdbc driver 版本至 TDengine TSDB 3.x。其他業(yè)務(wù) SQL 無需修改,與 TDengine TSDB 2.x 版本保持一致。
第二階段:歷史數(shù)據(jù)遷移
歷史數(shù)據(jù)規(guī)模龐大,且需保證遷移過程中不影響線上查詢性能。我們放棄了傳統(tǒng)的數(shù)據(jù)導(dǎo)出-導(dǎo)入方式,而是采用 TDengine TSDB企業(yè)版工具 taosX 進行在線熱遷移。該工具支持從 TDengine TSDB 2.x 集群直接向 3.x 集群同步數(shù)據(jù),具備斷點續(xù)傳、增量同步和一致性校驗?zāi)芰Α?/p>
具體步驟如下:
- 全量數(shù)據(jù)同步:首先啟動全量遷移任務(wù),將歷史數(shù)據(jù)按照時間范圍分片同步,避免單次任務(wù)負載過高。
- 增量數(shù)據(jù)追趕:在全量遷移期間,系統(tǒng)持續(xù)產(chǎn)生新數(shù)據(jù),我們通過 taosX 實時捕獲 TDengine TSDB 2.x 集群的增量寫入,并同步至 TDengine TSDB 3.x 集群,保持兩者數(shù)據(jù)差距在分鐘級別。
- 數(shù)據(jù)一致性驗證:每日選取關(guān)鍵業(yè)務(wù)時段,對比兩個集群的統(tǒng)計指標,確保數(shù)據(jù)完整無誤。
整個遷移過程在業(yè)務(wù)低峰期執(zhí)行,并通過監(jiān)控平臺實時觀測源集群與目標集群的負載、延遲及錯誤率,確保系統(tǒng)穩(wěn)定。
第三階段:灰度切換與流量遷移
數(shù)據(jù)同步完成后,我們通過可配置的路由開關(guān)逐步將客戶請求導(dǎo)向新集群:
- 讀灰度策略:先選取少數(shù)非核心客戶,將其查詢請求路由至 TDengine TSDB 3.x 集群,對比返回結(jié)果與原有集群是否一致,并監(jiān)控查詢延遲。
- 雙寫并行期:在確認查詢無誤后,開啟雙寫機制——物聯(lián)網(wǎng)平臺同時向兩個集群寫入數(shù)據(jù),新集群作為主查詢源,舊集群作為備份和比對基準。
- 分批切換:按照客戶分組、地域、業(yè)務(wù)線等維度,分批次將全部查詢流量切換至新集群,每批切換后觀察業(yè)務(wù)指標與系統(tǒng)性能,如有異常立即回退。
- 最終切換與降級:當全部流量穩(wěn)定運行于 TDengine TSDB 3.x 集群一周后,停止向舊集群寫入數(shù)據(jù),并逐步歸檔舊集群數(shù)據(jù)。舊集群仍保留一段時間作為應(yīng)急回退保障。
通過上述分階段、灰度化的遷移方案,我們實現(xiàn)了千萬級測點、千億條數(shù)據(jù)的平滑遷移,全程業(yè)務(wù)無感知,客戶查詢零中斷。遷移過程中積累的模型映射腳本、驗證工具和監(jiān)控方案,也為后續(xù)其他業(yè)務(wù)的數(shù)據(jù)遷移提供了重要模板。
收益總結(jié)
- 性能提升:通過這次平臺升級,指標計算的及時性得到了大幅提升。對比以往,我們的計算時效性最少提高了 4 倍,最高的時候,例如從年指標計算頻率兩天一次提高到每分鐘一次,時效性提高了 100 倍。計算時長方面,最少也縮短了兩倍,最高提升了 8 倍。

- 準確性提升:通過流式處理和層級加工的方式,我們的指標數(shù)據(jù)能夠前后一致地匹配,解決了無序數(shù)據(jù)帶來的準確性問題,客戶投訴率接近零。同時,延遲數(shù)據(jù)的處理也更加智能化,可以自動計算延遲測點的數(shù)據(jù),并遞歸修正受影響的所有指標。對于日、月、年指標計算頻率不一致的問題,我們也做了統(tǒng)一處理,現(xiàn)在所有計算頻率統(tǒng)一為 15 分鐘,并使用統(tǒng)一的時間窗口進行計算,確保數(shù)據(jù)的準確性。
- 成本降低:原有的 OpenTSDB 架構(gòu)使用十多臺物理服務(wù)器,每臺 60+ 核心,仍無法完全滿足需求。遷移至 TDengine TSDB 后,服務(wù)器數(shù)量大幅減少,資源利用率顯著提升,整體硬件與運維成本降低約 60%。服務(wù)器資源減少,運維復(fù)雜度下降。
過去與未來
從最初的選擇 OpenTSDB,到我們面臨種種挑戰(zhàn),決定進行新一輪的數(shù)據(jù)庫選型,這一路走來充滿了思考與抉擇。2018 年到 2022 年,OpenTSDB 在我們私有化場景中的表現(xiàn)曾一度支撐著我們的系統(tǒng),但隨著業(yè)務(wù)的不斷擴展,問題也接踵而至——高昂的部署成本、復(fù)雜的運維難題,讓我們不得不尋求新的解決方案。
正是在這個關(guān)鍵時刻,TDengine 走入了我們的視野。初次接觸 TDengine 時,我們帶著試探的心態(tài),先在私有化場景中做了嘗試。出乎意料的是,它不僅幫助我們降低了部署和運維成本,還讓我們對未來充滿了信心。于是 2023 年 6 月,我們正式啟動了平臺的全面切換,將 TDengine 應(yīng)用到核心生產(chǎn)環(huán)境。
TDengine TSDB 在泛能網(wǎng)平臺中的成功應(yīng)用,為系統(tǒng)性能與運維效率帶來顯著提升。未來,團隊將持續(xù)關(guān)注 TDengine TSDB 新版本功能,進一步探索其在邊緣計算、多級存儲、實時分析等場景中的深度應(yīng)用,推動平臺向更智能、更高效的方向演進。
公司簡介
新奧數(shù)能科技有限公司成立于 2018 年,隸屬于新奧集團,專注于能源行業(yè)智能化平臺研發(fā)與運營,致力于通過物聯(lián)網(wǎng)、大數(shù)據(jù)與人工智能技術(shù),為客戶提供一體化的能碳管理與運維解決方案。泛能網(wǎng)依托新奧集團深厚的產(chǎn)業(yè)實踐,以泛能理念為牽引,聚焦能源數(shù)智化,圍繞 3100 萬家庭用戶、27 萬工商業(yè)客戶、260 個城市燃氣項目積累了豐富的應(yīng)用場景。
作者
龔恒星



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



-1.png)










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



