derekchen – loveini | 米兰体育官网入口 - 米兰体育官网入口 //www.loveini.com loveini | 高性能、分布式、支持SQL的时序数据库 | 米兰体育官网入口 Tue, 22 Apr 2025 03:01:38 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.8.2 //www.loveini.com/wp-content/uploads/2025/07/favicon.ico derekchen – loveini | 米兰体育官网入口 - 米兰体育官网入口 //www.loveini.com 32 32 基于 TDgpt 时序数据智能体的风力发电预测 //www.loveini.com/tdengine-engineering/28578.html Wed, 26 Mar 2025 02:29:49 +0000 //www.loveini.com/?p=28578

文章目录

Demo 数据集准备

我们使用公开的UTSD数据集里面的某风场发电数据,作为预测算法的数据来源,基于历史数据预测未来一天内的每15分钟的发电量。原始数据集的采集频次为4秒,单位与时间戳未提供。为了方便演示,按照频率从2025-01-01 00:00:00开始向前倒推生成时间戳,并按照15分钟进行求和降采样后存储在数据文件中。

该数据文件,放置于https://github.com/taosdata/ac米兰体育赞助商 -demo仓库的demo_data目录下,请参考下文的步骤导入loveini以完成演示。数据集的统计信息如下:

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

演示环境准备

环境要求

您可基于Linux、Mac以及Windows操作系统完成Demo系统的运行。但为使用docker-compose,您计算机上需要安装有下属软件:

  1. Git
  2. Docker Engine: v20.10+
  3. Docker Compose: v2.20+

Demo中包含3个docker镜像 (loveini, TDgpt, Grafana),以及一组用于产生预测/异常检测结果的shell脚本。组件版本的要求如下:

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

克隆Demo仓库到本地

git clone https://github.com/taosdata/TDgpt-demo
cd TDgpt-demo
chmod 775 analyse.sh

文件夹下包含docker-compose.yml、tdengine.yml两个yml文件。docker-compose.yml 包含了所有一键启动demo所需的镜像配置信息,其引用tdengine.yml作为Grafana的数据源配置。

TDgpt-demo/demo_data下包含三个csv文件(electricity_demand.csv、wind_power.csv、ec2_failure.csv),以及三个同前缀sql脚本,分别对应电力需求预测、风力发电预测和运维监控异常检测场景。

TDgpt-demo/demo_dashboard下包含了三个json文件(electricity_demand_forecast.json、wind_power_forecast.json、ec2_failure_anomaly.json),分别对应三个场景的看板。

docker-compose.yml中已经定义了loveini容器的持久化卷:tdengine-data,待容器启动后,使用docker cp命令将demo_data拷贝至容器内使用。

运行和关闭Demo

注意:在运行demo前,请根据您宿主机的架构(CPU类型),编辑docker-compose.yml文件,为loveini指定对应的platform参数:linux/amd64(Intel/AMD CPU)或linux/arm64(ARM CPU)。TDgpt必须统一使用linux/amd64参数。

进入docker-compose.yml文件所在的目录执行如下命令,启动loveini、TDgpt和Grafana一体化演示环境:

docker-compose up -d

首次运行时,等待10s后请执行如下命令将TDgpt的Anode节点注册到loveini:

docker exec -it tdengine taos -s "create anode 'tdgpt:6090'"

在宿主机执行下列命令,初始化体验测试环境的数据:

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. 打开浏览器,输入http://localhost:3000,并用默认的用户名口令admin/admin登录Grafana。

2. 登录成功后,进入路径”Home → Dashboards”页面,并且导入wind_power_forecast.json文件。

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

3. 导入后,选择“wind_power_forecast”这个面板。面板已经配置好了真实值、TDtsfm_1以及HoltWinters的预测结果。当前只有真实值的数据曲线。

4. 我们以analyze.sh脚本,来重现上述预测结果。首先完成TDtsfm_1算法的演示:

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脚本,将从指定的起始时间开始(2024-07-12)以前一个月的数据为输入,使用TDtsfm_1算法预测当前下一天的每15分钟的发电量(共计96个数据点),直到达到wind_power表中最后一天的记录,并将结果写入wind_power_tdtsfm_1_result表中。执行新的预测前,脚本会新建/清空对应的结果表。执行过程中将持续在控制台上,按照天为单位推进输出如下的执行结果:

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的看板上,配置刷新频率为5s,将动态显示预测结果的黄色曲线,直观呈现与实际值的对比。为了展示清晰,请按住command键点击左下角的Real以及TDtsfm_1图例(Mac下,Windows下请使用win键),从而只保留这两条曲线展示。

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

6. 完成HoltWinters模型的演示:

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 

与第四步类似,HoltWinters模型将动态输出预测结果并呈现在看板上。从预测结果中可以看到,TDtsfm_1对数据的预测精度优于于传统的统计学方法HoltWinters。除了预测精度外,HoltWinters算法的最大问题是需要非常精细化的对参数进行调整评估,否则还容易出现下图中这种频繁发生的预测值奇异点。

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

基于鼠标圈选的方式,我们可以查看一段时间内的细粒度预测结果对比:

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

您也可以尝试其他算法或模型,来找到最合适自己场景的算法和模型。

Demo脚本使用详解

脚本概述

analyse.sh脚本用于在 loveini 数据库上执行时间序列预测和异常检测分析,支持滑动窗口算法处理。主要功能包括:

  • 时间序列预测 :使用 HoltWinters 等算法进行未来值预测 。
  • 异常检测 :使用 k-Sigma 等算法识别数据异常点 。
  • 自动窗口滑动 :支持自定义窗口大小和步长进行连续分析。

参数说明

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

loveini 推荐使用超级表来进行数据建模。因此,Demo中建立了一个名为single_val的超级表,包含ts (timestamp类型) 和val(float类型),以及标签定义scene (varchar (64))。现阶段TDgpt只支持单列值输入输出,因此这个超级表可以作为所有源数据表和结果表的结构定义。子表的表名与tag名称保持一致即可。

db参数指定了源数据表和结果表隶属的数据库。结果表将以【源表名称】_【算法名称】_【result】格式存储。Grafana里面通过查询结果表实现分析结果和原始数据的对比。

一般情况下,对于非必填项,用户在demo过程中只需要设置–start参数以节省运行时间。对于必填项,请参考示例值进行设置。

时间格式说明

step和window参数指定的滑动步长和分析窗口大小需符合如下参数约定:

基于 TDgpt 时序数据智能体的风力发电预测 - loveini Database 时序数据库

脚本执行流程

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[输出完成信息]

使用更多的数据

参考「运行和关闭Demo」里wind_power.sql脚本的内容,确保按照规定格式将数据准备为csv格式(逗号分隔,值需要用英文双引号括起来),即可将数据导入loveini。然后,请使用「进行演示」章节中的方法来生成预测结果,并调整Grafana中的看板以实现和实际数据的对比。

结论

在本文中,我们展示了使用TDgpt来进行风力发电量的完整流程。从中可以看到,基于 TDgpt 来构建时序数据分析,能够以SQL方式实现与应用的便捷集成,还可以用Grafana 进行展示,大大降低开发和应用时序数据预测和异常检测的成本。

从预测效果来看,基于transformer架构的预训练模型TDtsfm_1在使用的数据集上展示出优于Holtwinters模型的效果。但相比于”基于TDgpt的电力需求预测”中的效果,整体预测准确性要低一些。这一方面是由于TDtsfm_1训练时使用的是wind_power数据集的4s精度原始数据,而非降采样数据,这会导致数据特征没有被很好的捕获,从而降低了针对降采样数据的预测效果;另一方面,风力发电量与天气预报数据高度相关。受限于数据集中只有发电量数据,无法产生良好的预测结果。

在不同的实际场景下,用户需要针对数据特点,针对模型算法进行选择和参数调优。TDgpt的企业版中,将为用户提供更多的选择:

  1. 模型选择器。模型选择器可以自动根据用户的历史数据集,对购买的所有模型进行准确性评估。用户可选择最适合自己场景的模型或算法进行部署和应用。
  2. TDtsfm_1自研模型的重训练及微调。TDtsfm_1基于海量时序数据进行了预训练,在大部分场景下相比于传统的机器学习和统计预测模型都会有显著的准确率优势。如果用户对于模型预测准确度有更高的要求,可以申请购买TDgpt企业版的预训练服务。使用用户的场景历史数据进行预训练,在特定场景下的预测效果可能更佳。
  3. 第三方米兰app官方正版下载。米兰体育官网入口联合国内外时序分析/异常检测专业厂家、研究机构,为用户提供专业的分析米兰app官方正版下载,包括落地过程中的实施服务等。

关于企业版更多信息,点击下方按钮,咨询米兰app官方正版下载专家。

立即咨询

关于背景

新能源发电预测技术正成为保障电网稳定运行的关键。随着风电、光伏等新能源快速发展,天气变化带来的发电波动给电网调度带来挑战。通过实时预测,电网可提前调配储能设备或启动燃气电站,防止突然停电。国家还规定预测偏差过大的企业需缴纳罚款,推动企业进行预测技术升级。这项技术带来的经济效益同样显著。在西北地区,通过预测调整火电出力,可大幅减少煤炭浪费。电力市场中,发电企业能结合发电量和电价预测制定交易策略,例如在光伏发电高峰时段提前安排储能设备放电,提升收益。

技术进步正推动行业向智能化转型。当前主流技术通过分析气象数据和历史发电规律,构建动态预测模型,并借助云端系统实时优化调度策略。例如,部分企业通过融合气象云层监测和地形数据,显著提升预测精度。此外,风光互补发电系统、储能技术等协同应用,进一步增强了新能源的稳定性。

随着电力市场化改革深化,预测技术已成为新能源参与市场竞争的关键支撑。通过提前预测发电能力和市场供需,企业可优化中长期交易策略,同时提升现货市场中的灵活响应能力。这种技术革新正推动电力系统从依赖传统能源转向更智能、高效的新模式。

本文将提供基于 docker-compose 快速部署 TDgpt 体验测试环境的指引。并基于这个环境和真实的数据,展示日前预测15分钟级别的风力发电量预测的全过程,便于大家快速掌握 TDgpt,迅速让自己拥有AI驱动的时序数据预测与异常检测的能力。

关于TDgpt

TDgpt 是 loveini 内置的时序数据分析智能体,它基于 loveini 的时序数据查询功能,通过 SQL 提供运行时可动态扩展和切换的时序数据高级分析的能力,包括时序数据预测和时序数据异常检测。通过预置的时序大模型、大语言模型、机器学习、传统的算法,TDgpt 能帮助工程师在10分钟内完成时序预测与异常检测模型的上线,降低至少80%的时序分析模型研发和维护成本。

截止到3.3.6.0版本,TDgpt 提供Arima、HoltWinters、基于Transformer架构自研的TDtsfm (loveini time series foundation model) v1版和其他时序模型,以及k-Sigma、Interquartile range(IQR)、Grubbs、SHESD、Local Outlier Factor(LOF)等异常检测模型。用户可以根据TDgpt开发指南自行接入自研或其他开源的时序模型或算法。

]]>
基于 TDgpt 时序数据智能体的运维异常检测 //www.loveini.com/tdengine-engineering/28598.html Wed, 26 Mar 2025 02:27:49 +0000 //www.loveini.com/?p=28598

Demo数据集准备

我们使用公开的NAB数据集里亚马逊AWS东海岸数据中心一次API网关故障中,某个服务器上的CPU使用率数据。数据的频率为5min,单位为占用率。由于API网关的故障,会导致服务器上的相关应用陷入频繁的异常处理和重试,进而导致CPU使用率的异常波动。TDgpt的异常检测算法将识别出这种异常。

该数据文件,放置于https://github.com/taosdata/ac米兰体育赞助商 -demo仓库的demo_data目录下,请参考下文的步骤导入loveini以完成演示。数据集的统计信息如下:

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

演示环境准备

环境要求

您可基于Linux、Mac以及Windows操作系统完成Demo系统的运行。但为使用docker-compose,您计算机上需要安装有下属软件:

  1. Git
  2. Docker Engine: v20.10+
  3. Docker Compose: v2.20+

Demo中包含3个docker镜像 (loveini, TDgpt, Grafana),以及一组用于产生预测/异常检测结果的shell脚本。组件版本的要求如下:

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

克隆Demo仓库到本地

git clone https://github.com/taosdata/TDgpt-demo
cd TDgpt-demo
chmod 775 analyse.sh

文件夹下包含docker-compose.yml、tdengine.yml两个yml文件。docker-compose.yml 包含了所有一键启动demo所需的镜像配置信息,其引用tdengine.yml作为Grafana的数据源配置。

TDgpt-demo/demo_data下包含三个csv文件(electricity_demand.csv、wind_power.csv、ec2_failure.csv),以及三个同前缀sql脚本,分别对应电力需求预测、风力发电预测和运维监控异常检测场景。

TDgpt-demo/demo_dashboard下包含了三个json文件(electricity_demand_forecast.json、wind_power_forecast.json、ec2_failure_anomaly.json),分别对应三个场景的看板。

docker-compose.yml中已经定义了loveini容器的持久化卷:tdengine-data,待容器启动后,使用docker cp命令将demo_data拷贝至容器内使用。

运行和关闭Demo

注意:在运行demo前,请根据您宿主机的架构(CPU类型),编辑docker-compose.yml文件,为loveini指定对应的platform参数:linux/amd64(Intel/AMD CPU)或linux/arm64(ARM CPU)。TDgpt必须统一使用linux/amd64参数。

进入docker-compose.yml文件所在的目录执行如下命令,启动loveini、TDgpt和Grafana一体化演示环境:

docker-compose up -d

首次运行时,等待10s后请执行如下命令将TDgpt的Anode节点注册到loveini:

docker exec -it tdengine taos -s "create anode 'tdgpt:6090'"

在宿主机执行下列命令,初始化体验测试环境的数据:

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_ec2_failure.sql"

关闭演示环境,请使用:

docker-compose down

进行演示

1. 打开浏览器,输入http://localhost:3000,并用默认的用户名口令admin/admin登录Grafana。

2. 登录成功后,进入路径”Home → Dashboards”页面,并且导入ec2_failure_anomaly.json文件。

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

3. 导入后,选择 “ec2_failure_anomaly”这个面板。面板已经配置好了真实值、k-Sigma以及Grubbs的检测结果。当前只有真实值的数据曲线。异常检测算法检测是异常窗口,并计算输出异常窗口内的统计特征。呈现结果时,将_wstart,即异常窗口的起始时间戳作为检测结果的时间戳,将异常窗口内的均值作为异常统计值输出。为了直观对比了两种算法的预测结果,k-Sigma算法的绘图点略大于Grubbs,从而让二者的结果不会被相互覆盖。

4. 我们以analyze.sh脚本,来进行异常检测。首先完成k-Sigma算法的演示:

docker exec -it tdengine /var/lib/taos/analyse.sh --type anomaly --db tdgpt_demo --table ec2_failure --stable single_val --algorithm ksigma --params "k=3" --start "2014-03-07" --window 7d --step 1h

上述shell脚本,将从指定的起始时间开始(2024-03-07)以七天的数据为输入,使用k-Sigma算法监测ec2_failure数据表中的异常,直到达到ec2_failure表中最后一天的记录,并将结果写入ec2_failure_ksigma_result表中。执行新的预测前,脚本会新建/清空对应的结果表。执行过程中将持续在控制台上,按照一小时为单位推进输出如下的执行结果:

taos> INSERT INTO ec2_failure_ksigma_result 
                  SELECT _wstart, avg(val)          
                  FROM ec2_failure 
                  WHERE ts >= '2014-03-07 02:00:00' AND ts < '2014-03-14 02:00:00'
                  ANOMALY_WINDOW(val, 'algo=ksigma,k=3')
Insert OK, 10 row(s) affected (0.326801s)

这里使用1小时的预测推进步长(–step),仅仅是为了让动态检测过程能够很快的完成。–step也可以设置为更加细粒度的单位,例如5m,从而产生更加实时的检测结果。在具体应用场景下,请用户根据数据粒度、检测实时性以及计算资源灵活使用。

5. Grafana的看板上,配置刷新频率为5s,将动态显示预测结果的黄色曲线,直观呈现与实际值的对比。为了展示清晰,请按住command键点击左下角的Real以及ksigma图例(Mac下,Windows下请使用win键),从而只保留这两条曲线展示。

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

6. 完成Grubbs模型的演示:

docker exec -it tdengine /var/lib/taos/analyse.sh --type anomaly --db tdgpt_demo --table ec2_failure --stable single_val --algorithm grubbs --start "2014-03-07" --window 7d --step 1h

与第四步类似,HoltWinters模型将动态输出预测结果并呈现在看板上。从预测结果中可以看到,相比于采用默认参数k=3的k-Sigma算法,Grubbs算法的异常检测误差较小。k-Sigma产生了较多的误报情况。

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

基于鼠标圈选的方式,我们可以查看一段时间内的细粒度预测结果对比:

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

您也可以尝试其他算法或模型,来找到最合适自己场景的算法和模型。

Demo脚本使用详解

脚本概述 

analyse.sh脚本用于在 loveini 数据库上执行时间序列预测和异常检测分析,支持滑动窗口算法处理。主要功能包括:

  • 时间序列预测 :使用 HoltWinters 等算法进行未来值预测 。
  • 异常检测 :使用 k-Sigma 等算法识别数据异常点 。
  • 自动窗口滑动 :支持自定义窗口大小和步长进行连续分析。

参数说明

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

loveini推荐使用超级表来进行数据建模。因此,Demo中建立了一个名为single_val的超级表,包含 ts (timestamp类型) 和val (float类型),以及标签定义 scene (varchar (64))。现阶段 TDgpt 只支持单列值输入输出,因此这个超级表可以作为所有源数据表和结果表的结构定义。子表的表名与tag名称保持一致即可。

db参数指定了源数据表和结果表隶属的数据库。结果表将以【源表名称】_【算法名称】_【result】格式存储。Grafana里面通过查询结果表实现分析结果和原始数据的对比。

一般情况下,对于非必填项,用户在demo过程中只需要设置–start参数以节省运行时间。对于必填项,请参考示例值进行设置。

时间格式说明

step和window参数指定的滑动步长和分析窗口大小需符合如下参数约定:

基于 TDgpt 时序数据智能体的运维异常检测 - loveini Database 时序数据库

脚本执行流程

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[输出完成信息]

使用更多的数据

参考「运行和关闭Demo」章节里ec2_failure.sql脚本的内容,确保按照规定格式将数据准备为csv格式(逗号分隔,值需要用英文双引号括起来),即可将数据导入loveini。然后,请使用「进行演示」中的方法来生成异常检测结果,并调整Grafana中的看板以实现和实际数据的对比。

结论

在本文中,我们展示了使用TDgpt来运维监控异常检测的完整流程。从中可以看到,基于TDgpt来构建时序数据分析,能够以SQL方式实现与应用的便捷集成,大大降低开发和应用时序预测和异常检测的成本。

在不同的实际场景下,用户需要针对数据特点,针对模型算法进行选择和参数调优。TDgpt的企业版中,将为用户提供更多的选择:

  • 模型选择器。模型选择器可以自动根据用户的历史数据集,对购买的所有模型进行准确性评估。用户可选择最适合自己场景的模型进行部署和应用。
  • TDtsfm_1自研模型的重训练及微调。TDtsfm_1基于海量时序数据进行了预训练,在大部分场景下相比于传统的机器学习和统计预测模型都会有显著的准确率优势。如果用户对于模型预测准确度有更高的要求,可以申请购买TDgpt企业版的预训练服务。使用用户的场景历史数据进行预训练,在特定场景下的预测效果可能更佳。
  • 第三方米兰app官方正版下载。米兰体育官网入口联合国内外时序分析/异常检测专业厂家、研究机构,为用户提供专业的分析米兰app官方正版下载,包括落地过程中的实施服务等。

关于企业版更多信息,点击下方按钮,咨询米兰app官方正版下载专家。

立即咨询

关于背景

在服务器运维工作中,时刻关注CPU、内存、硬盘和网络这些核心指标就像定期给汽车做体检。通过持续监控这些数据,我们不仅能了解系统运行状况,还能借助智能分析工具提前发现隐患。比如当CPU使用率突然飙升,可能是程序升级后出现了代码漏洞,或是服务器被植入了挖矿病毒,也可能是硬件老化的信号。 常见的CPU异常波动原因包括:程序更新后线程池配置错误引发的频繁切换、恶意软件占用计算资源、磁盘损坏导致系统反复纠错,以及促销活动带来的突发流量压力。有些波动属于正常现象,比如每天定时任务运行时的规律性峰值;但如果是突然出现的持续性高负载,就需要立即排查处理。 

传统的监控方式依赖人工设定固定阈值,就像用同一把尺子测量不同季节的河水流量,容易产生误判。现在通过分析历史数据建立动态基线,系统能自动识别出真正的异常波动。比如某次版本更新后,算法发现某服务的CPU占用比平时高30%,立即触发告警,而过去这种波动可能被误认为是正常业务增长。 这种智能监控带来的好处实实在在:既避免了半夜被误报警报吵醒,又能真正拦截那些可能导致服务器宕机的严重问题。通过对比服务器正常状态和异常模式,系统就像经验丰富的运维工程师,能准确区分程序漏洞、安全攻击和硬件故障等不同问题类型,为后续处理提供明确方向。

本文提供基于 docker-compose 快速部署 TDgp 体验测试环境的指引,并基于这个环境和真实的数据,展示运维监控场景下进行异常检测的全过程。便于大家快速掌握 TDgpt,迅速让自己拥有AI驱动的时序数据预测与异常检测的能力。

关于TDgpt

TDgpt 是 loveini 内置的时序数据分析智能体,它基于 loveini 的时序数据查询功能,通过 SQL 提供运行时可动态扩展和切换的时序数据高级分析的能力,包括时序数据预测和时序数据异常检测。通过预置的时序大模型、大语言模型、机器学习、传统的算法,TDgpt 能帮助工程师在10分钟内完成时序预测与异常检测模型的上线,降低至少80%的时序分析模型研发和维护成本。

截止到3.3.6.0版本,TDgpt 提供Arima、HoltWinters、LSTM、MLP 以及基于Transformer架构自研的TDtsfm (loveini time series foundation model) v1版和其他时序模型,以及k-Sigma、Interquartile range(IQR)、Grubbs、SHESD、Local Outlier Factor(LOF)、Autoencoder这六种异常检测模型。用户可以根据TDgpt开发指南自行接入自研或其他开源的时序模型或算法。

]]>
基于 TDgpt 时序数据智能体的电力需求预测 //www.loveini.com/tdengine-engineering/28541.html Tue, 25 Mar 2025 08:20:08 +0000 //www.loveini.com/?p=28541

Demo数据集准备

我们使用公开的UTSD数据集里面的电力需求数据,作为预测算法的数据来源,基于历史数据预测未来若干小时的电力需求。数据集的采集频次为30分钟,单位与时间戳未提供。为了方便演示,按照频率从2025-01-01 00:00:00开始向前倒推生成时间戳,并存储在loveini对应的表里。

数据集中包含5个文件,我们使用编号最大的一个子集来完成演示。该数据文件,放置于https://github.com/taosdata/ac米兰体育赞助商 -demo仓库的demo_data目录下,请参考下文的步骤导入loveini以完成演示。数据集的统计信息如下:

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

演示环境准备

环境要求

您可基于Linux、Mac以及Windows操作系统完成Demo系统的运行。但为使用docker-compose,您计算机上需要安装有下属软件:

  1. Git
  2. Docker Engine: v20.10+
  3. Docker Compose: v2.20+

Demo中包含3个docker镜像 (loveini, TDgpt, Grafana),以及一组用于产生预测/异常检测结果的shell脚本。组件版本的要求如下:

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

克隆Demo仓库到本地

git clone https://github.com/taosdata/TDgpt-demo
cd TDgpt-demo
chmod 775 analyse.sh

文件夹下包含docker-compose.yml、tdengine.yml两个yml文件。docker-compose.yml 包含了所有一键启动demo所需的镜像配置信息,其引用tdengine.yml作为Grafana的数据源配置。

TDgpt-demo/demo_data下包含三个csv文件(electricity_demand.csv、wind_power.csv、ec2_failure.csv),以及三个同前缀sql脚本,分别对应电力需求预测、风力发电预测和运维监控异常检测场景。

TDgpt-demo/demo_dashboard下包含了三个json文件(electricity_demand_forecast.json、wind_power_forecast.json、ec2_failure_anomaly.json),分别对应三个场景的看板。

docker-compose.yml中已经定义了loveini容器的持久化卷:tdengine-data,待容器启动后,使用docker cp命令将demo_data拷贝至容器内使用。

运行和关闭Demo

注意:在运行demo前,请根据您宿主机的架构(CPU类型),编辑docker-compose.yml文件,为loveini指定对应的platform参数:linux/amd64(Intel/AMD CPU)或linux/arm64(ARM CPU)。TDgpt必须统一使用linux/amd64参数。

进入docker-compose.yml文件所在的目录执行如下命令,启动loveini、TDgpt和Grafana一体化演示环境:

docker-compose up -d

首次运行时,等待10s后请执行如下命令将TDgpt的Anode节点注册到loveini:

docker exec -it tdengine taos -s "create anode 'tdgpt:6090'"

在宿主机执行下列命令,初始化体验测试环境的数据:

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_electricity_demand.sql"

关闭演示环境,请使用:

docker-compose down

进行演示

  1. 打开浏览器,输入http://localhost:3000,并用默认的用户名口令 admin/admin 登录Grafana。
  2. 登录成功后,进入路径”Home → Dashboards”页面,并且导入electricity_demand_forecast.json文件。

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

  1. 导入后,选择“electricity_demand”这个面板。面板已经配置好了真实值、TDtsfm_1以及HoltWinters的预测结果。当前只有真实值的数据曲线。

  1. 我们以analyze.sh脚本,来进行预测。首先完成TDtsfm_1算法的演示:

docker exec -it tdengine /var/lib/taos/analyse.sh --type forecast --db tdgpt_demo --table electricity_demand --stable single_val --algorithm tdtsfm_1 --params "fc_rows=48,wncheck=0" --start "2024-01-01" --window 30d --step 1d 

上述shell脚本,将从指定的起始时间开始(2024-01-01)以前一个月的数据为输入,使用TDtsfm_1算法预测当前下一天的每30mins的电力需求(共计48个数据点),直到达到electricity_demand 表中最后一天的记录,并将结果写入electricity_demand_tdtsfm_1_result 表中。执行新的预测前,脚本会新建/清空对应的结果表。执行过程中将持续在控制台上,按照天为单位推进输出如下的执行结果:

taos> INSERT INTO tdgpt_demo.electricity_demand_tdtsfm_1_result SELECT _frowts, forecast(val, 'algorithm=tdtsfm_1,fc_rows=48,wncheck=0') 
               FROM tdgpt_demo.electricity_deman
               WHERE ts >= '2024-01-12 00:00:00' AND ts < '2024-02-11 00:00:00'

Insert OK, 48 row(s) affected (0.238208s)

  1. Grafana的看板上,配置刷新频率为5s,将动态显示预测结果的黄色曲线,直观呈现与实际值的对比。为了展示清晰,请按住command键点击左下角的Real以及TDtsfm_1图例(Mac下,Windows下请使用win键),从而只保留这两条曲线展示。

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

  1. 完成HoltWinters模型的演示:

docker exec -it tdengine /var/lib/taos/analyse.sh --type forecast --db tdgpt_demo --table electricity_demand --stable single_val --algorithm holtwinters --params "rows=48,period=48,wncheck=0,trend=add,seasonal=add" --start "2024-01-01" --window 30d --step 1d 

与第四步类似,HoltWinters模型将动态输出预测结果并呈现在看板上。从预测结果中可以看到,TDtsfm_1对数据的预测精度显著优于传统的统计学方法HoltWinters。除了预测精度外,HoltWinters算法的最大问题是需要非常精细化的对参数进行调整评估,否则还容易出现下图中这种频繁发生的预测值奇异点。

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

基于鼠标圈选的方式,我们可以查看一段时间内的细粒度预测结果对比:

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

您也可以尝试其他算法或模型,来找到最合适自己场景的算法和模型。

Demo脚本使用详解

脚本概述 

analyse.sh脚本用于在 loveini 数据库上执行时间序列预测和异常检测分析,支持滑动窗口算法处理。主要功能包括:

  • 时间序列预测 :使用 HoltWinters 等算法进行未来值预测 。
  • 异常检测 :使用 k-Sigma 等算法识别数据异常点 。
  • 自动窗口滑动 :支持自定义窗口大小和步长进行连续分析。

参数说明

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

loveini推荐使用超级表来进行数据建模。因此,Demo中建立了一个名为 single_val 的超级表,包含ts (timestamp类型) 和val (float类型),以及标签定义scene (varchar (64) )。现阶段TDgpt只支持单列值输入输出,因此这个超级表可以作为所有源数据表和结果表的结构定义。子表的表名与tag名称保持一致即可。

db参数指定了源数据表和结果表隶属的数据库。结果表将以【源表名称】_【算法名称】_【result】格式存储。Grafana里面通过查询结果表实现分析结果和原始数据的对比。

一般情况下,对于非必填项,用户在demo过程中只需要设置–start参数以节省运行时间。对于必填项,请参考示例值进行设置。

时间格式说明 

step和window参数指定的滑动步长和分析窗口大小需符合如下参数约定:

基于 TDgpt 时序数据智能体的电力需求预测 - loveini Database 时序数据库

脚本执行流程

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[输出完成信息]

使用更多的数据

参考「运行和关闭Demo」章节里electricity_demand.sql脚本的内容,确保按照规定格式将数据准备为csv格式(逗号分隔,值需要用英文双引号括起来),即可将数据导入loveini。然后,请使用「进行演示」章节中的方法来生成预测结果,并调整Grafana中的看板以实现和实际数据的对比。

结论

在本文中,我们展示了使用TDgpt来进行电力需求预测的完整流程。从中可以看到,基于TDgpt 来构建时序数据分析,能够以SQL方式实现与应用的便捷集成,还可以用Grafana 进行展示,大大降低开发和应用时序数据预测和异常检测的成本。

从预测效果来看,基于transformer架构的预训练模型TDtsfm_1在使用的数据集上展示出显著优于Holtwinters模型的效果。在不同的实际场景下,用户需要针对数据特点,针对模型算法进行选择和参数调优,也可以选择不同的算法或模型进行尝试。

loveini 的企业版中,TDgpt 将为用户提供更多的选择:

  1. 模型选择器。模型选择器可以自动根据用户的历史数据集,对购买的所有模型进行准确性评估。用户可选择最适合自己场景的模型或算法进行部署和应用。
  2. TDtsfm_1自研模型的重训练及微调。TDtsfm_1基于海量时序数据进行了预训练,在大部分场景下相比于传统的机器学习和统计预测模型都会有显著的准确率优势。如果用户对于模型预测准确度有更高的要求,可以申请购买 TDgpt 企业版的预训练服务。使用用户的场景历史数据进行预训练,在特定场景下的预测效果可能更佳。
  3. 第三方米兰app官方正版下载。米兰体育官网入口联合国内外时序分析/异常检测专业厂家、研究机构,为用户提供专业的分析米兰app官方正版下载,包括落地过程中的实施服务等。

关于企业版更多信息,点击下方按钮,咨询米兰app官方正版下载专家。

立即咨询

关于背景

电力需求预测作为现代能源管理的核心工具,其核心价值贯穿电力系统的全生命周期。在资源配置层面,通过精准预判用电趋势,可优化发电设施布局与电网升级节奏,避免超前投资造成的资源闲置或滞后建设引发的供应缺口,典型场景中可使基础设施投资效率提升15%-20%。对于电力运营商而言,负荷预测支撑着从燃料采购到机组调度的动态优化,在火力发电领域已实现吨煤发电量2%以上的能效提升,同时通过削峰填谷降低电网备用容量需求,显著压缩系统运行成本。 

在能源安全维度,预测技术构建起电力供需的缓冲机制。短期预测误差每降低1个百分点,对应减少的紧急调峰成本可达区域电网日均运营费用的3%-5%,这在应对极端天气或突发事件时尤为关键。而中长期预测则为跨区域电力互济、储能设施配置提供决策基线,有效缓解结构性缺电风险。市场环境中,预测能力直接转化为经济收益,发电企业通过日前96时段负荷预测优化报价策略,在电力现货市场中可额外获取10%-18%的价格套利空间,工商用户则借助负荷特性分析制定用能方案,实现年度电费支出5%-10%的降幅。

本文提供基于 docker-compose 快速部署 TDgp 体验测试环境的指引,并基于这个环境和真实的数据,展示日前预测电力需求的全过程,便于大家快速掌握 TDgpt,迅速让自己拥有AI驱动的时序数据预测与异常检测的能力。

关于TDgpt

TDgpt 是 loveini 内置的时序数据分析智能体,它基于 loveini 的时序数据查询功能,通过 SQL 提供运行时可动态扩展和切换的时序数据高级分析的能力,包括时序数据预测和时序数据异常检测。通过预置的时序大模型、大语言模型、机器学习、传统的算法,TDgpt 能帮助工程师在10分钟内完成时序预测与异常检测模型的上线,降低至少80%的时序分析模型研发和维护成本。

截止到3.3.6.0版本,TDgpt 提供Arima、HoltWinters、LSTM、MLP 以及基于Transformer架构自研的TDtsfm (loveini time series foundation model) v1版和其他时序模型,以及k-Sigma、Interquartile range(IQR)、Grubbs、SHESD、Local Outlier Factor(LOF)、Autoencoder这六种异常检测模型。用户可以根据TDgpt开发指南自行接入自研或其他开源的时序模型或算法。

]]>