数据库 | 使用timescaledb和大模型进行数据分析

news2025/12/14 22:05:29

时序数据库:timescaledb
大模型:通义千问2.5

对话开始前提示词:

我正在做数据分析,以下是已知信息:
数据库:timescaledb,表名:dm_tag_value,tag_name列是位号名,app_time列是时间,tag_value列是值计算前要转换下CAST(tag_value AS FLOAT),
其中DRLZM.FIC3101A.DACA.PV是位号1,DRLZM.AT0502A.DACA.PV是位号2,TAG82是位号3
表数据如下:
---
"id","ds_id","tag_name","tag_value","tag_time","app_time","quality","create_time"
1002364859414740992,,DRLZM.FIC3101A.DACA.PV,"20.695463180541992",2024-05-29 00:00:04.000,2024-05-29 00:00:04.000,192,2024-05-29 00:00:05.000
1002364859435712513,,DRLZM.AT0502A.DACA.PV,-24.399999618530273,2024-05-29 00:00:04.000,2024-05-29 00:00:04.000,192,2024-05-29 00:00:05.000
1002364859460878336,,TAG40,"20.695463180541992",2024-05-29 00:00:04.000,2024-05-29 00:00:05.000,192,2024-05-29 00:00:05.000
1002364859469266945,,DRLZM.AT0502A.DACA.PV,"21.059999465942383",2024-05-29 00:00:04.000,2024-05-29 00:00:04.000,192,2024-05-29 00:00:05.000
1002364863663570944,,DRLZM.AT0502A.DACA.PV,-62.939998626708984,2024-05-29 00:00:04.000,2024-05-29 00:00:05.000,192,2024-05-29 00:00:06.000
1002364863684542465,,TAG7000_ISYS7.1,-6.4000000953674316,2024-05-29 00:00:04.000,2024-05-29 00:00:05.000,192,2024-05-29 00:00:06.000
1002364863709708288,,TAG6000_ISYS7.1,-84.94000244140625,2024-05-29 00:00:05.000,2024-05-29 00:00:05.000,192,2024-05-29 00:00:06.000
1002364863709708288,,TAG6000_ISYS7.1,-84.94000244140625,2024-05-29 00:00:05.000,2024-05-29 00:00:05.000,192,2024-05-29 00:00:06.000
1002364880306569217,,DRLZM.FIC3101A.DACA.PV,"4.3653912544250488",2024-05-29 00:00:09.000,2024-05-29 00:00:09.000,192,2024-05-29 00:00:10.000
1002364901273894912,,DRLZM.FIC3101A.DACA.PV,"0.26307547092437744",2024-05-29 00:00:14.000,2024-05-29 00:00:14.000,192,2024-05-29 00:00:15.000
1002364922245414913,,DRLZM.FIC3101A.DACA.PV,"9.4877281188964844",2024-05-29 00:00:19.000,2024-05-29 00:00:19.000,192,2024-05-29 00:00:20.000
1002364943279849472,,TAG81,"20.695463180541992",2024-05-29 00:00:04.000,2024-05-29 00:00:04.000,192,2024-05-29 00:00:25.000
1002364943279849473,,TAG81,"9.4877281188964844",2024-05-29 00:00:19.000,2024-05-29 00:00:19.000,192,2024-05-29 00:00:25.000
1002364943279849474,,TAG82,"20.695463180541992",2024-05-29 00:00:04.000,2024-05-29 00:00:04.000,192,2024-05-29 00:00:25.000
1002364943279849475,,TAG82,"9.4877281188964844",2024-05-29 00:00:19.000,2024-05-29 00:00:19.000,192,2024-05-29 00:00:25.000
1002364943279849476,,TAG83,"20.695463180541992",2024-05-29 00:00:04.000,2024-05-29 00:00:04.000,192,2024-05-29 00:00:25.000
---
根据上面的已知信息,我会问一系列数据分析的问题,分析位号、时间和值,每个问题的回答要求:
生成SQL语句,要避免ambiguous错, 注意:(仅输出SQL查询语句,不要包含任何其他文本或解释)

测试CASE

**提示词:**将今天位号1数据从小到大排序,请注意输出格式,我只需要SQL查询语句,不需要其他解释或信息.
返回:

SELECT app_time, CAST(tag_value AS FLOAT) AS value
FROM dm_tag_value
WHERE tag_name = 'DRLZM.FIC3101A.DACA.PV' AND DATE(app_time) = CURRENT_DATE
ORDER BY value ASC;

**提示词:**使用线性拟合今天位号1与位号2数据,我只需要SQL查询语句,不需要其他解释或信息.
不支持,需要UDF配合
**提示词:**使用均值滤波对位号1进行处理,我只需要SQL查询语句,不需要其他解释或信息.
返回:

WITH ordered_data AS (
    SELECT
        app_time,
        CAST(tag_value AS FLOAT) AS value,
        ROW_NUMBER() OVER (ORDER BY app_time) AS row_num
    FROM dm_tag_value
    WHERE tag_name = 'DRLZM.FIC3101A.DACA.PV' AND DATE(app_time) = CURRENT_DATE
),
smoothed_data AS (
    SELECT
        o1.app_time,
        AVG(o1.value + COALESCE(o2.value, o1.value) + COALESCE(o3.value, o1.value)) AS mean_filtered_value
    FROM ordered_data o1
    LEFT JOIN ordered_data o2 ON o1.row_num = o2.row_num - 1
    LEFT JOIN ordered_data o3 ON o1.row_num = o3.row_num + 1
    GROUP BY o1.app_time, o1.value
)
SELECT * FROM smoothed_data;

**提示词:**针对今天A位号1与位号2数据做相关性分析,请注意输出格式,我只需要SQL查询语句,不需要其他解释或信息.
返回:

WITH today_data AS (
    SELECT 
        CAST(tag_value AS FLOAT) AS value, 
        LAG(CAST(tag_value AS FLOAT)) OVER (PARTITION BY tag_name ORDER BY app_time) AS prev_value,
        app_time
    FROM dm_tag_value
    WHERE 
        tag_name IN ('DRLZM.FIC3101A.DACA.PV', 'DRLZM.AT0502A.DACA.PV')
        AND DATE(app_time) = CURRENT_DATE
),
correlation_data AS (
    SELECT
        CASE WHEN tag_name = 'DRLZM.FIC3101A.DACA.PV' THEN value ELSE prev_value END AS value_a,
        CASE WHEN tag_name = 'DRLZM.AT0502A.DACA.PV' THEN value ELSE prev_value END AS value_b
    FROM today_data
    WHERE tag_name IN ('DRLZM.FIC3101A.DACA.PV', 'DRLZM.AT0502A.DACA.PV')
),
agg_data AS (
    SELECT
        SUM(value_a * value_b) AS sum_ab,
        SUM(value_a * value_a) AS sum_aa,
        SUM(value_b * value_b) AS sum_bb,
        COUNT(*) AS count
    FROM correlation_data
)
SELECT
    (sum_ab * count - SUM(value_a) * SUM(value_b)) / 
    (SQRT(sum_aa * count - POWER(SUM(value_a), 2)) * SQRT(sum_bb * count - POWER(SUM(value_b), 2))) AS correlation_coefficient
FROM agg_data;
------------------------------需要修改后才能运行

WITH today_data AS (
    SELECT 
    tag_name,
        CAST(tag_value AS FLOAT) AS value, 
        LAG(CAST(tag_value AS FLOAT)) OVER (PARTITION BY tag_name ORDER BY app_time) AS prev_value,
        app_time
    FROM dm_tag_value
    WHERE 
        tag_name IN ('DRLZM.FIC3101A.DACA.PV', 'DRLZM.AT0502A.DACA.PV')
        AND DATE(app_time) = CURRENT_DATE
),
correlation_data AS (
    SELECT
        CASE WHEN tag_name = 'DRLZM.FIC3101A.DACA.PV' THEN value ELSE prev_value END AS value_a,
        CASE WHEN tag_name = 'DRLZM.AT0502A.DACA.PV' THEN value ELSE prev_value END AS value_b
    FROM today_data
    WHERE tag_name IN ('DRLZM.FIC3101A.DACA.PV', 'DRLZM.AT0502A.DACA.PV')
),
agg_data AS (
    select
    	sum(value_a) as sum_a,
    	sum(value_b) as sum_b,
        SUM(value_a * value_b) AS sum_ab,
        SUM(value_a * value_a) AS sum_aa,
        SUM(value_b * value_b) AS sum_bb,
        COUNT(*) AS count
    FROM correlation_data
)
SELECT
    (sum_ab * count - sum_a * sum_b) / 
    (SQRT(sum_aa * count - POWER(sum_a, 2)) * SQRT(sum_bb * count - POWER(sum_b, 2))) AS correlation_coefficient
FROM agg_data;

**提示词:**我们把超过平均值1个标准差的数据定义为异常值,请你给出今天位号1异常值有哪些
请仅输出SQL查询语句,不要包含任何其他文本或解释
返回:

WITH today_data AS (
    SELECT 
        CAST(tag_value AS FLOAT) AS value,
        app_time
    FROM dm_tag_value
    WHERE 
        tag_name = 'DRLZM.FIC3101A.DACA.PV'
        AND DATE(app_time) = CURRENT_DATE
),
stats AS (
    SELECT
        AVG(value) AS average,
        STDDEV(value) AS std_dev
    FROM today_data
)
SELECT
    td.app_time,
    td.value
FROM today_data td
JOIN stats ON TRUE
WHERE td.value > stats.average + stats.std_dev OR td.value < stats.average - stats.std_dev;

**提示词:**给出本月位号1与位号2对比趋势,请仅输出SQL查询语句,不要包含任何其他文本或解释
返回:

SELECT
dv1.app_time,
CAST(dv1.tag_value AS FLOAT) AS DRLZM_FIC3101A_DACA_PV_value,
CAST(dv2.tag_value AS FLOAT) AS DRLZM_AT0502A_DACA_PV_value
FROM
dm_tag_value dv1
JOIN
dm_tag_value dv2
ON dv1.app_time = dv2.app_time
WHERE
dv1.tag_name = 'DRLZM.FIC3101A.DACA.PV'
AND dv2.tag_name = 'DRLZM.AT0502A.DACA.PV'
AND dv1.app_time >= DATE_TRUNC('month', CURRENT_DATE)
AND dv1.app_time < DATE_TRUNC('month', CURRENT_DATE) + INTERVAL '1 month'
ORDER BY
dv1.app_time;

**提示词:**分析今日位号1的平均值和最大值,请仅输出SQL查询语句,不要包含任何其他文本或解释
返回:

SELECT
AVG(CAST(tag_value AS FLOAT)) AS TAG80_avg,
MAX(CAST(tag_value AS FLOAT)) AS TAG80_max
FROM
dm_tag_value
WHERE
tag_name = 'DRLZM.FIC3101A.DACA.PV'
AND app_time >= CURRENT_DATE
AND app_time < CURRENT_DATE + INTERVAL '1 day';

**提示词:**分析今日位号1如何变化,按小时取平均,请仅输出SQL查询语句,不要包含任何其他文本或解释
返回:

SELECT
date_trunc('hour', app_time) AS hour_bucket,
AVG(CAST(tag_value AS FLOAT)) AS TAG80_avg
FROM
dm_tag_value
WHERE
tag_name = 'DRLZM.FIC3101A.DACA.PV'
AND app_time >= CURRENT_DATE
AND app_time < CURRENT_DATE + INTERVAL '1 day'
GROUP BY
hour_bucket
ORDER BY
hour_bucket;

**提示词:**分析位号1和位号2这个月的趋势,按小时分组取平均,每个位号一列,请仅输出SQL查询语句,不要包含任何其他文本或解释
返回:

SELECT 
    DATE_TRUNC('hour', t1.app_time) AS hour,
    AVG(CAST(t1.tag_value AS FLOAT)) AS FIC3101A_avg_value,
    AVG(CAST(t2.tag_value AS FLOAT)) AS AT0502A_avg_value
FROM 
    dm_tag_value t1
JOIN 
    dm_tag_value t2 ON DATE_TRUNC('hour', t1.app_time) = DATE_TRUNC('hour', t2.app_time)
WHERE 
    t1.tag_name = 'DRLZM.FIC3101A.DACA.PV' AND 
    t2.tag_name = 'DRLZM.AT0502A.DACA.PV' AND 
    EXTRACT(MONTH FROM t1.app_time) = EXTRACT(MONTH FROM CURRENT_DATE) AND 
    EXTRACT(YEAR FROM t1.app_time) = EXTRACT(YEAR FROM CURRENT_DATE)
GROUP BY 
    DATE_TRUNC('hour', t1.app_time)
ORDER BY 
    hour;

**提示词:**分析位号1,取整点数据,请仅输出SQL查询语句,不要包含任何其他文本或解释
返回:

SELECT 
    app_time, 
    CAST(tag_value AS FLOAT) AS value
FROM 
    dm_tag_value
WHERE 
    tag_name = 'DRLZM.FIC3101A.DACA.PV' AND 
    EXTRACT(MINUTE FROM app_time) = 0 AND 
    EXTRACT(SECOND FROM app_time) = 0
ORDER BY 
    app_time;

总结

用大模型对时序数据进行分析,对于简单的数据分析没有问题,对于复杂或高级的分析有概率说错或处理不了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2395008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java Class类文件结构

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

quasar electron mode如何打包无边框桌面应用程序

预览 开源项目Tokei Kun 一款简洁的周年纪念app&#xff0c;现已发布APK&#xff08;安卓&#xff09;和 EXE&#xff08;Windows&#xff09; 项目仓库地址&#xff1a;Github Repo 应用下载链接&#xff1a;Github Releases Preparation for Electron quasar dev -m elect…

【HW系列】—Windows日志与Linux日志分析

文章目录 一、Windows日志1. Windows事件日志2. 核心日志类型3. 事件日志分析实战详细分析步骤 二、Linux日志1. 常见日志文件2. 关键日志解析3. 登录爆破检测方法日志分析核心要点 一、Windows日志 1. Windows事件日志 介绍&#xff1a;记录系统、应用程序及安全事件&#x…

VIN码识别解析接口如何用C#进行调用?

一、什么是VIN码识别解析接口&#xff1f; VIN码不仅是车辆的“身份证”&#xff0c;更是连接制造、销售、维修、保险、金融等多个环节的数字纽带。而VIN码查询API&#xff0c;正是打通这一链条的关键工具。 无论是汽车电商平台、二手车商、维修厂&#xff0c;还是保险公司、金…

动态规划之网格图模型(一)

文章目录 动态规划之网格图模型&#xff08;一&#xff09;LeetCode 64. 最小路径和思路Golang 代码 LeetCode 62. 不同路径思路Golang 代码 LeetCode 63. 不同路径 II思路Golang 代码 LeetCode 120. 三角形最小路径和思路Golang 代码 LeetCode 3393. 统计异或值为给定值的路径…

PCB设计实践(三十)地平面完整性

在高速数字电路和混合信号系统设计中&#xff0c;地平面完整性是决定PCB性能的核心要素之一。本文将从电磁场理论、信号完整性、电源分配系统等多个维度深入剖析地平面设计的关键要点&#xff0c;并提出系统性解决方案。 一、地平面完整性的电磁理论基础 电流回流路径分析 在PC…

使用ray扩展python应用之流式处理应用

流式处理就是数据一来&#xff0c;咱们就得赶紧处理&#xff0c;不能攒批再算。这里的实时不是指瞬间完成&#xff0c;而是要在数据产生的那一刻&#xff0c;或者非常接近那个时间点&#xff0c;就做出响应。这种处理方式&#xff0c;我们称之为流式处理。 流式处理的应用场景…

IP证书的作用与申请全解析:从安全验证到部署实践

在网络安全领域&#xff0c;IP证书&#xff08;IP SSL证书&#xff09;作为传统域名SSL证书的补充方案&#xff0c;专为公网IP地址提供HTTPS加密与身份验证服务。本文将从技术原理、应用场景、申请流程及部署要点四个维度&#xff0c;系统解析IP证书的核心价值与操作指南。 一…

【Linux系列】Linux/Unix 系统中的 CPU 使用率

博客目录 多核处理器时代的 CPU 使用率计算为什么要这样设计&#xff1f; 解读实际案例&#xff1a;268.76%的 CPU 使用率性能分析的意义 相关工具与监控实践1. top 命令2. htop 命令3. mpstat 命令4. sar 命令 实际应用场景容量规划性能调优故障诊断 深入理解&#xff1a;CPU …

C++语法系列之模板进阶

前言 本次会介绍一下非类型模板参数、模板的特化(特例化)和模板的可变参数&#xff0c;不是最开始学的模板 一、非类型模板参数 字面意思,比如&#xff1a; template<size_t N 10> 或者 template<class T,size_t N 10>比如&#xff1a;静态栈就可以用到&#…

基于图神经网络的自然语言处理:融合LangGraph与大型概念模型的情感分析实践

在企业数字化转型进程中&#xff0c;非结构化文本数据的处理与分析已成为核心技术挑战。传统自然语言处理方法在处理客户反馈、社交媒体内容和内部文档等复杂数据集时&#xff0c;往往难以有效捕获文本间的深层语义关联和结构化关系。大型概念模型&#xff08;Large Concept Mo…

R 语言科研绘图 --- 热力图-汇总

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…

解决访问网站提示“405 很抱歉,由于您访问的URL有可能对网站造成安全威胁,您的访问被阻断”问题

一、问题描述 本来前几天都可以正常访问的网站&#xff0c;但是今天当我们访问网站的时候会显示“405 很抱歉&#xff0c;由于您访问的URL有可能对网站造成安全威胁&#xff0c;您的访问被阻断。您的请求ID是&#xff1a;XXXX”&#xff0c;而不能正常的访问网站&#xff0c;如…

机器学习中的关键术语及其含义

神经元及神经网络 机器学习中的神经网络是一种模仿生物神经网络的结构和功能的数学模型或计算模型。它是指按照一定的规则将多个神经元连接起来的网络。 神经网络是一种运算模型&#xff0c;由大量的节点&#xff08;或称神经元&#xff09;之间相互联接构成。每个节点代表一…

网络编程1_网络编程引入

为什么需要网络编程&#xff1f; 用户再在浏览器中&#xff0c;打开在线视频资源等等&#xff0c;实质上说通过网络&#xff0c;获取到从网络上传输过来的一个资源。 与打开本地的文件类似&#xff0c;只是这个文件的来源是网络。相比本地资源来说&#xff0c;网络提供了更为…

【Day38】

DAY 38 Dataset和Dataloader类 对应5. 27作业 知识点回顾&#xff1a; Dataset类的__getitem__和__len__方法&#xff08;本质是python的特殊方法&#xff09;Dataloader类minist手写数据集的了解 作业&#xff1a;了解下cifar数据集&#xff0c;尝试获取其中一张图片 import …

HTML Day04

Day04 0.引言1. HTML字符实体2. HTML表单2.1 表单标签2.2 表单示例 3. HTML框架4. HTML颜色4.1 16进制表示法4.2 rgba表示法4.3 名称表达法 5. HTML脚本 0.引言 刚刚回顾了前面几篇博客&#xff0c;感觉写的内容倒是很详细&#xff0c;每个知识点都做了说明。但是感觉在知识组织…

云原生安全基石:Kubernetes 核心概念与安全实践指南

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. Kubernetes 架构全景 Kubernetes&#xff08;简称 K8s&#xff09;采用主从架构&#xff0c;由控制平面&#xff08;Control Plane&…

autodl 安装了多个conda虚拟环境 选择合适虚拟环境的语句

1.conda env list 列出所有虚拟环境 可以看到&#xff0c;我有两个虚拟环境&#xff0c;一个是joygen&#xff0c;一个是base conda activate base 或者 conda activate joygen 激活对应的环境。我选择激活 joygen 环境 然后就可以在joygen环境下进行操作了 base环境也是同理…

ansible-playbook 进阶 接上一章内容

1.异常中断 做法1&#xff1a;强制正常 编写 nginx 的 playbook 文件 01-zuofa .yml - hosts : web remote_user : root tasks : - name : create new user user : name nginx-test system yes uid 82 shell / sbin / nologin - name : test new user shell : gete…