
TDengine TDgpt 時序數據分析智能體架構、原理與擴展實踐【免費下載鏈接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios項目地址: https://gitcode.com/GitHub_Trending/tde/TDengineTDgpt 是 TDengine 面向時序數據分析推出的智能分析代理它將統計模型、機器學習/深度學習模型、時序基礎模型與大語言模型統一封裝為 SQL 可調用的分析服務。本文圍繞 TDgpt 官方介紹文檔 展開結合倉庫內tools/tdgpt的源碼實現系統講解 TDgpt 的架構組成、分析能力、擴展機制與運維要點幫助讀者理解并落地用 SQL 完成預測、異常檢測與數據補齊的實踐方案。一、背景數據庫為什么需要 AI 分析能力時序數據的預測forecasting、異常檢測anomaly detection、數據補齊imputation與分類classification領域已積累了海量算法但不同算法技術特性各異、適用場景不同。傳統上這些算法被打包為 Python、R 等高級語言的分析工具庫通過開源渠道分發幫助開發者把復雜算法集成進業務系統、大幅降低高級算法的使用門檻。數據庫廠商也曾嘗試把分析算法直接融入數據庫——例如 Spark 的 MLlib 機器學習庫用成熟的統計與機器學習技術增強數據庫/分析引擎的高級分析能力。而大模型時代的到來給時序數據分析帶來了新機遇也對數據庫提出了新挑戰如何高效地把 AI 能力接進數據查詢本身。TDengine 的答案是 TDgpt一個時序分析智能體。借助 TDgpt用戶可以直接通過 SQL 語句使用統計算法、機器學習模型、深度學習模型、時序基礎模型乃至大語言模型通過新增的窗口與函數將這些能力作用于業務時序數據。二、TDgpt 技術特性總覽無縫集成TDgpt 是運行在 TDengine 主進程 taosd 之外的外部智能體將時序分析服務直接嵌入 TDengine 的查詢執行流程。無狀態平臺TDgpt 本身不持久化業務數據僅將日志寫入本地磁盤。其內置了經典統計建模庫 statsmodels以及 PyTorch、Keras 等機器學習/深度學習框架還可通過請求轉發與適配直接調用 TDengine 自研時序基礎模型 TDtsfm。模型即服務MaaS擴展方向作為分析智能體TDgpt 未來將支持對接第三方時序 MaaS 平臺屆時僅需修改一個algo參數即可接入前沿時序模型服務。開放可擴展用戶可以自行添加預測、異常檢測、補齊、分類等算法新增算法只需修改 SQL 中對應參數即可調用無需改動一行應用程序代碼。三、系統架構與核心組件3.1 無狀態分析節點 anodeTDgpt 由一個或多個無狀態分析節點組成這些節點被稱為AI 節點anode。根據算法對硬件的需求anode 可以按需部署在 TDengine 集群中合適的硬件環境上例如配備 GPU 的計算節點。TDgpt 為不同類型的分析算法提供統一接口與調用方式基于用戶指定的參數調用高級算法包與分析工具再按預定義格式將結果返回給 TDengine 主進程 taosd。3.2 四大組成模塊TDgpt 由四類組件構成組件說明內置分析庫包含 statsmodels、pyculiarity、pmdarima 等庫提供開箱即用的預測與異常檢測模型內置機器學習庫包含 PyTorch、Keras、Scikit-learn在 TDgpt 進程空間內運行預訓練模型訓練流程可通過 Merlion、Kats 等端到端開源 ML 框架管理訓練好的模型上傳至指定目錄即可部署通用大語言模型請求適配器以 MaaS 方式將時序預測請求轉換為提示詞prompt交給 Llama 等通用 LLM注該能力未開源本地時序模型適配器直接調用 Time-MoE、TDtsfm 等專為時序數據設計的模型。相比通用 LLM這類模型無需提示詞工程、更輕量、更易本地部署、硬件要求更低該適配器還可對接 TimeGPT 等云端時序 MaaS實現云端模型、本地分析3.3 查詢執行流程從架構圖與官方介紹可以看出Mnode 將 anode 注冊進 TDengine 集群對應 SQL 中的CREATE ANODE查詢執行時vnode 將涉及高級時序數據分析的元素直接轉發給 anodeanode 完成分析后結果被組裝并重新嵌入查詢執行流程。從源碼看anode 對外暴露的是一組基于 Flask 的 RESTful 接口定義在 tools/tdgpt/taosanalytics/app.pyGET /status返回{protocol: 1.0, status: ready}供 taosd 探活GET /list列出全部可用服務預測、異常檢測、補齊、相關性、回歸、分類GET /models列出已加載的模型文件POST /anomaly-detect、POST /forecast、POST /imputation、POST /correlation、POST /regression各分析類型的請求入口POST /deploy、POST /undeploy動態模型的部署與卸載。四、高級分析服務TDgpt 提供的服務可歸納為四類異常檢測通過 TDengine 新增的anomaly window異常窗口提供。異常窗口是一種特殊的事件窗口由異常檢測算法判定異常發生的時間窗口與普通事件窗口的區別在于窗口的開啟與閉合由算法決定而非用戶輸入的表達式。異常窗口支持其他窗口支持的查詢操作。典型用法如SELECT COUNT(*) FROM foo ANOMALY_WINDOW(col_name, algoname)。時序預測FORECAST函數調用指定或默認的預測算法基于輸入的歷史數據預測未來時序數據例如SELECT forecast(val, algotdtsfm_1) FROM forecast.electricity_demand;。數據補齊使用時序基礎模型自動檢測并填補缺失的時間戳與數值。時序分類當前版本暫不可用。從 tools/tdgpt/taosanalytics/base.py 的抽象基類可以看到各類服務統一的能力契約set_input_list()注入輸入序列、set_params()注入算法參數、execute()執行算法。以預測為例AbstractForecastService定義了start_ts、time_step、rows預測行數、period周期、conf置信度默認 0.95、return_conf、precision等標準參數并校驗rows 0、0 conf 1.0等合法性——這些參數最終都會出現在 SQL 的algoxxx參數字符串中。五、內置算法與模型5.1 內置算法清單anode 啟動時會掃描內置算法目錄并自動注冊。結合 tools/tdgpt/taosanalytics/algo 目錄內置算法按類型分布如下異常檢測algo/ad/grubbsGrubbs 統計檢驗、ksigmak-sigma 統計方法、iqr四分位距法、lof局部離群因子密度型、shesd季節性 ESD等預測algo/fc/arima自回歸移動平均、holtwinters指數平滑、prophet、theta、ets、ces復數指數平滑、timemoeTime-MoE、chronos、moirai、timesfm、gpt等補齊algo/imputat/基于時序基礎模型的moment相關性分析algo/correl/dtw動態時間規整、tlcc時序滯后互相關。模型服務進程則位于 tools/tdgpt/taosanalytics/tsfmservice包含tdtsfm-server.py、timemoe-server.py、chronos-server.py、moirai-server.py、moment-server.py、timesfm-server.py等獨立服務。5.2 算法注冊機制服務注冊邏輯集中在 tools/tdgpt/taosanalytics/service_registry.py 的register_all_services()中啟動時依次掃描algo/ad、algo/fc、algo/imputat、algo/correl四個內置目錄必選再掃描algo/custom/ad、algo/custom/fc自定義目錄可選最后從動態模型目錄加載 JSON 配置描述的動態模型。注冊后的服務通過GET /list暴露taosd 側執行SHOW ANODES FULL即可看到每個 anode 當前可用的算法列表。六、自定義算法三步擴展TDgpt 是可擴展平臺擴展流程詳見算法開發者指南按照 TDgpt 規范用 Python 開發分析算法將源碼文件放入對應目錄并重啟 anode刷新算法緩存表集群側執行UPDATE ALL ANODES或對單個 anode 執行UPDATE ANODE {anode_id}。此后即可在 SQL 中像使用內置算法一樣調用新算法無需更新任何應用程序。自定義算法需遵循以下約束來自開發者指南與源碼實現異常檢測源碼放入taosanalytics/algo/ad預測源碼放入taosanalytics/algo/fc文件須以下劃線_開頭、以Service結尾如_KsigmaServiceanode 通過命名約定自動發現算法類異常檢測算法須繼承AbstractAnomalyDetectionService并實現execute()預測算法須繼承AbstractForecastService并實現execute()對應 base.py 中的抽象基類類須初始化name小寫算法標識將出現在SHOW輸出中與desc算法描述。七、算法評估與模型管理算法評估TDengine 企業版提供算法評估工具可對 TDgpt 中任意算法或模型包括內置與自定義的預測、異常檢測算法進行量化評估用指定數據集檢驗各算法的準確率與性能指標。模型管理PyTorch、TensorFlow、Keras 等框架訓練好的模型必須放入 anode 的指定目錄Linux 下為model_dir默認/usr/local/taos/taosanode/model/anode 會自動檢測并加載該目錄下的模型TDengine 企業版還提供與 Merlion、Kats 等端到端開源 ML 框架無縫集成的模型管理器。模型目錄之外anode 還會掃描動態模型目錄默認model/dynamic/下的 JSON 配置與 pkl 模型文件實現熱加載當配置缺失時自動從內存移除對應服務并清理孤兒 pkl 文件具體邏輯見 service_registry.py 的sync_dynamic_services()。八、處理性能與硬件考量時序分析是 CPU 密集型工作負載更強勁的 CPU 或 GPU 能顯著提升性能TDgpt 中的機器學習與深度學習模型經由 PyTorch 運行可采用常規性能優化手段例如把 TDgpt 部署在內存更大的機器上、使用支持 GPU 的 torch 模型可以在不同 anode 上部署不同算法與模型利用多節點實現并發處理推理與訓練對硬件的要求不同純推理場景最小配置為 8 核 CPU、16 GB 內存、200 GB SSDGPU 可選推薦 16 核 CPU、32 GB 內存、500 GB SSD、24 GB 顯存的 NVIDIA GPU涉及訓練/微調則建議 16 核 CPU、32 GB 內存起步。完整規格參考系統要求文檔。九、部署、運維與版本要點9.1 部署方式TDgpt 支持 Docker、TDengine Cloud 與本地安裝包三種方式詳見安裝文檔Dockertdengine/tdgpt鏡像內置 TDtsfm v1.0tdengine/tdgpt-full額外包含 Time-MoE。啟動命令為docker run -d -p 6035:6035 -p 6061:6061 tdengine/tdgpt:latest。TDgpt 監聽 TCP 6035 端口v3.3.7.5 之前為 60906061 為 TDtsfm 模型服務端口6062 為 Time-MoE 模型服務端口Chronos/Moirai/TimesFM/Moment 默認占用 6063-60666067-6070 預留。本地安裝要求 Linux 機器、Python 3.10 或 3.113.12 因依賴沖突暫不支持、TDengine v3.3.6.0 及以上解壓 tar 包后執行./install.shanode 會部署在/var/lib/taos/taosanode/venv/虛擬環境中。Windows 從 v3.4.1.0 起提供標準安裝包。TDengine Cloud可在 DB Mart 中啟用時序預測分析數據集并直接執行select forecast(val, algotdtsfm_1) from forecast.electricity_demand;體驗。9.2 節點管理安裝 anode 后會自動創建taosanoded服務可用 systemd 管理時序基礎模型資源開銷大、不會自動啟動需手動執行start-model tdtsfm/start-model timemoe啟動stop-model停止。在 TDengine CLI 中執行節點管理CREATE ANODE {node_url} -- 注冊 anodenode_url 為 IP:端口 SHOW ANODES; -- 查看節點 FQDN 與狀態 SHOW ANODES FULL; -- 查看各節點可用算法 UPDATE ANODE {anode_id} -- 刷新單個節點算法緩存 UPDATE ALL ANODES -- 刷新全部節點算法緩存 DROP ANODE {anode_id} -- 從集群注銷節點DROP ANODE僅從集群移除注冊信息停止服務用 systemctl徹底卸載用rmtaosanode。9.3 目錄與配置anode 的關鍵目錄與配置見節點管理文檔目錄/文件說明/usr/local/taos/taosanode/bin可執行文件/usr/local/taos/taosanode/resource資源文件軟鏈至 /var/lib/taos/taosanode/resource//usr/local/taos/taosanode/lib庫文件/usr/local/taos/taosanode/model模型目錄軟鏈至 /var/lib/taos/taosanode/model/var/log/taos/taosanode/日志目錄/etc/taos/taosanode.config.py配置文件自 v3.4.1.0 起Linux anode 使用 Gunicorn早期版本用 uWSGI配置為 Python 文件bind 0.0.0.0:6035定義監聽地址workers/threads控制并發timeout 1200適配長時模型推理model_dir指定模型目錄tdtsfm_1、timemoe_fc等鍵配置基礎模型服務地址。Windows 端使用 Waitress配置文件位于C:\TDengine\taosanode\cfg\taosanode.config.py。源碼中 conf.py 展示了同樣的默認值邏輯日志目錄、模型目錄、0.0.0.0:6035綁定等并通過TDGPT_CONF環境變量或-c參數指定配置文件路徑。9.4 運維注意TDengine 開源版不提供 TDgpt 的權限與資源管理自 v3.4.1.0 起Linux 使用 Gunicorn、Windows 使用 Waitress早期版本為 uWSGI監控方式為端口探活與日志查看應用日志app_log、訪問日志與錯誤日志log_level支持DEBUG/INFO/CRITICAL/ERROR/WARN默認DEBUG。十、總結TDgpt 的定位不是把算法庫硬塞進數據庫而是以外部無狀態分析節點 統一 SQL 接口的方式讓 TDengine 的查詢引擎具備調用統計模型、機器學習/深度學習模型、時序基礎模型與大語言模型的能力。其架構上實現了分析能力可插拔、算法可熱擴展、模型可遠程適配配合異常窗口、FORECAST函數與補齊服務為工業物聯網等場景下的時序數據分析提供了一條不改應用、只改 SQL的演進路徑。相關部署、管理、算法開發與系統要求細節可繼續閱讀 安裝指南、節點管理、算法開發者指南 與系統要求其算法實現與注冊機制可在倉庫的 tools/tdgpt/taosanalytics 源碼目錄中進一步研讀。【免費下載鏈接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios項目地址: https://gitcode.com/GitHub_Trending/tde/TDengine創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考