时序数据库 TDengine + 高级分析软件 Seeq,助力企业挖掘时序数据潜力

作为一款制造业和工业互联网(IIOT)高级分析软件,Seeq 支持在工艺制造组织中使用机器学习创新的新功能。这些功能使组织能够将自己或第三方机器学习算法部署到前线流程工程师和主题专家使用的高级分析应用程序,从而使单个数据科学家的努力扩展到许多前线员工。通过 TDengine Java connector,Seeq 可以轻松支持查询 TDengine 提供的时序数据,并提供数据展现、分析、预测等功能。本文将对此进行介绍。

如何配置 Seeq 访问 TDengine

1. 查看 data 存储位置

sudo seeq config get Folders/Data

2. 从 maven.org 下载 TDengine Java connector 包,目前最新版本为 3.2.7 (Maven Central: com.taosdata.jdbc:taos-jdbcdriver)。并拷贝至 data 存储位置的 plugins\lib 中。

3. 重新启动 seeq server

sudo seeq restart

4. 输入 License

使用浏览器访问 ip:34216 并按照说明输入 license。

使用 Seeq 分析 TDengine 时序数据

下文将为大家演示如何使用 Seeq 软件配合 TDengine 进行时序数据分析。

场景介绍

示例场景为一个电力系统,用户每天从电站仪表收集用电量数据,并将其存储在 TDengine 集群中。现在用户想要预测电力消耗将会如何发展,并购买更多设备来支持它。用户电力消耗随着每月订单变化而不同,另外考虑到季节变化,电力消耗量会有所不同。这个城市位于北半球,所以在夏天会使用更多的电力。我们模拟数据来反映这些假定。

数据 Schema

CREATE STABLE meters (ts TIMESTAMP, num INT, temperature FLOAT, goods INT) TAGS (device NCHAR(20));
create table goods (ts1 timestamp, ts2 timestamp, goods float);

时序数据库 TDengine + 高级分析软件 Seeq,助力企业挖掘时序数据潜力 - TDengine Database 时序数据库

构造数据方法

python mockdata.pytaos -s "insert into power.goods select _wstart, _wstart + 10d, avg(goods) from power.meters interval(10d);"

源代码托管在 https://github.com/sangshuduo/td-forecasting。

使用 Seeq 进行数据分析

配置数据源(Data Source)

使用 Seeq 管理员角色的帐号登录,并新建数据源。

  • Power
{"QueryDefinitions": [{"Name": "PowerNum","Type": "SIGNAL","Sql": "SELECT  ts, num FROM meters","Enabled": true,"TestMode": false,"TestQueriesDuringSync": true,"InProgressCapsulesEnabled": false,"Variables": null,"Properties": [{"Name": "Name","Value": "Num","Sql": null,"Uom": "string"},{"Name": "Interpolation Method","Value": "linear","Sql": null,"Uom": "string"},{"Name": "Maximum Interpolation","Value": "2day","Sql": null,"Uom": "string"}],"CapsuleProperties": null}],"Type": "GENERIC","Hostname": null,"Port": 0,"DatabaseName": null,"Username": "root","Password": "taosdata","InitialSql": null,"TimeZone": null,"PrintRows": false,"UseWindowsAuth": false,"SqlFetchBatchSize": 100000,"UseSSL": false,"JdbcProperties": null,"GenericDatabaseConfig": {"DatabaseJdbcUrl": "jdbc:TAOS-RS://127.0.0.1:6041/power?user=root&password=taosdata","SqlDriverClassName": "com.taosdata.jdbc.rs.RestfulDriver","ResolutionInNanoseconds": 1000,"ZonedColumnTypes": []}
}
  • Goods
{"QueryDefinitions": [{"Name": "PowerGoods","Type": "CONDITION","Sql": "SELECT ts1, ts2, goods FROM power.goods","Enabled": true,"TestMode": false,"TestQueriesDuringSync": true,"InProgressCapsulesEnabled": false,"Variables": null,"Properties": [{"Name": "Name","Value": "Goods","Sql": null,"Uom": "string"},{"Name": "Maximum Duration","Value": "10days","Sql": null,"Uom": "string"}],"CapsuleProperties": [{"Name": "goods","Value": "${columnResult}","Column": "goods","Uom": "string"}]}],"Type": "GENERIC","Hostname": null,"Port": 0,"DatabaseName": null,"Username": "root","Password": "taosdata","InitialSql": null,"TimeZone": null,"PrintRows": false,"UseWindowsAuth": false,"SqlFetchBatchSize": 100000,"UseSSL": false,"JdbcProperties": null,"GenericDatabaseConfig": {"DatabaseJdbcUrl": "jdbc:TAOS-RS://127.0.0.1:6041/power?user=root&password=taosdata","SqlDriverClassName": "com.taosdata.jdbc.rs.RestfulDriver","ResolutionInNanoseconds": 1000,"ZonedColumnTypes": []}
}
  • Temperature
{"QueryDefinitions": [{"Name": "PowerNum","Type": "SIGNAL","Sql": "SELECT  ts, temperature FROM meters","Enabled": true,"TestMode": false,"TestQueriesDuringSync": true,"InProgressCapsulesEnabled": false,"Variables": null,"Properties": [{"Name": "Name","Value": "Temperature","Sql": null,"Uom": "string"},{"Name": "Interpolation Method","Value": "linear","Sql": null,"Uom": "string"},{"Name": "Maximum Interpolation","Value": "2day","Sql": null,"Uom": "string"}],"CapsuleProperties": null}],"Type": "GENERIC","Hostname": null,"Port": 0,"DatabaseName": null,"Username": "root","Password": "taosdata","InitialSql": null,"TimeZone": null,"PrintRows": false,"UseWindowsAuth": false,"SqlFetchBatchSize": 100000,"UseSSL": false,"JdbcProperties": null,"GenericDatabaseConfig": {"DatabaseJdbcUrl": "jdbc:TAOS-RS://127.0.0.1:6041/power?user=root&password=taosdata","SqlDriverClassName": "com.taosdata.jdbc.rs.RestfulDriver","ResolutionInNanoseconds": 1000,"ZonedColumnTypes": []}
}
使用 Seeq Workbench

登录 Seeq 服务页面并新建 Seeq Workbench,通过选择数据源搜索结果和根据需要选择不同的工具,可以进行数据展现或预测,详细使用方法参见官方知识库:Seeq Workbench。

时序数据库 TDengine + 高级分析软件 Seeq,助力企业挖掘时序数据潜力 - TDengine Database 时序数据库

使用 Seeq Data Lab Server 进行进一步的数据分析

登录 Seeq 服务页面并新建 Seeq Data Lab,可以进一步使用 Python 编程或其他机器学习工具进行更复杂的数据挖掘功能。

from seeq import spy
spy.options.compatibility = 189
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import mlforecast
import lightgbm as lgb
from mlforecast.target_transforms import Differences
from sklearn.linear_model import LinearRegressionds = spy.search({'ID': "8C91A9C7-B6C2-4E18-AAAF-XXXXXXXXX"})
print(ds)sig = ds.loc[ds['Name'].isin(['Num'])]
print(sig)data = spy.pull(sig, start='2015-01-01', end='2022-12-31', grid=None)
print("data.info()")
data.info()
print(data)
#data.plot()print("data[Num].info()")
data['Num'].info()
da = data['Num'].index.tolist()
#print(da)li = data['Num'].tolist()
#print(li)data2 = pd.DataFrame()
data2['ds'] = da
print('1st data2 ds info()')
data2['ds'].info()#data2['ds'] = pd.to_datetime(data2['ds']).to_timestamp()
data2['ds'] = pd.to_datetime(data2['ds']).astype('int64')
data2['y'] = li
print('2nd data2 ds info()')
data2['ds'].info()
print(data2)data2.insert(0, column = "unique_id", value="unique_id")print("Forecasting ...")forecast = mlforecast.MLForecast(models = lgb.LGBMRegressor(),freq = 1,lags=[365],target_transforms=[Differences([365])],
)forecast.fit(data2)
predicts = forecast.predict(365)pd.concat([data2, predicts]).set_index("ds").plot(title = "current data with forecast")
plt.show()

运行程序输出结果:

时序数据库 TDengine + 高级分析软件 Seeq,助力企业挖掘时序数据潜力 - TDengine Database 时序数据库

写在最后

通过集成 Seeq 和 TDengine,用户能够充分利用到 TDengine 高性能的时序数据存储和检索,确保数据的高效处理;同时也将受益于 Seeq 提供的强大数据可视化和分析功能,如数据可视化、异常检测、相关性分析和预测建模,方便用户获得有价值的数据洞察并基于此进行决策。

未来 Seeq 和 TDengine 将共同为制造业、工业物联网和电力系统等各行各业的时序数据分析提供综合解决方案,将高效数据存储和先进数据分析相结合,赋予企业深入挖掘时序数据潜力的能力,推动业务发展与改进。如果你想要了解 Seeq 的更全面设置、Seeq 与全托管的云服务平台 TDengine Cloud 的具体连接详情,请移步官方文档 Seeq | TDengine 文档 | 涛思数据 进行查阅。


了解更多 TDengine Database的具体细节,可在GitHub上查看相关源代码。

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

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

相关文章

20.有效的括号(LeetCode)

思路:用栈的后进先出的特性,来完成题目的要求 因为C有库,可以直接用,而C语言没有,所以我们直接把写好的栈拷贝上来用。 首先,完成框架的搭建 其次,再实现循环内的部分。1.左括号入栈 2.右括…

react函数式组件props形式子向父传参

父组件中定义 子组件中触发回调传值 import { useState } from "react"; function Son(params) {const [count, setCount] useState(0);function handleClick() {console.log(params, paramsparamsparamsparamsparamsparams);params.onClick(111)setCount(count 1…

Rust-使用dotenvy加载和使用环境变量

系统的开发,测试和部署离不开环境变量,今天分享在Rust的系统开发中,使用dotenvy来读取和使用环境变量。 安装 cargo add dotenvy dotenv_codegen 加载环境变量 use dotenvy::dotenv;fn main() {dotenv().expect(".env不存在");…

TensorFlow学习笔记--(3)张量的常用运算函数

损失函数及求偏导 通过 tf.GradientTape 函数来指定损失函数的变量以及表达式 最后通过 gradient(%损失函数%,%偏导对象%) 来获取求偏导的结果 独热编码 给出一组特征值 来对图像进行分类 可以用独热编码 0的概率是第0种 1的概率是第1种 0的概率是第二种 tf.one_hot(%某标签…

Python高级语法----使用Python进行模式匹配与元组解包

文章目录 1. 模式匹配的新特性2. 高级元组解包技巧3. 数据类的匹配与应用1. 模式匹配的新特性 Python自3.10版本起引入了结构化模式匹配的新特性,这是一种强大的工具,允许开发者用更清晰、更直观的方式处理数据结构。模式匹配类似于其他编程语言中的switch-case语句,但它更…

Kubernetes介绍

Kubernetes介绍 1.应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不能为应用程序…

利用uni-app 开发的iOS app 发布到App Store全流程

1.0.3 20200927 更新官方对应用审核流程的状态。 注:最新审核后续将同步社区另一篇记录 AppStore 审核被拒原因记录及解决措施 :苹果开发上架常见问题 | appuploader使用教程 1.0.2 20200925 新增首次驳回拒绝邮件解决措施。 1.0.1 20200922 首次…

目标检测问题总结

目标检测问题总结 目标检测二阶段和一阶段的核心区别目标检测二阶段比一阶段的算法精度高的原因1. 正负样本不平衡2.样本的不一致性 如何解决目标检测中遮挡问题如何解决动态目标检测FPN的作用如何解决训练数据样本过少的问题IOU代码实现NMS代码实现NMS的改进思路 目标检测二阶…

Rust语言基础:从Hello World开始

大家好,我是[lincyang]。 我们将一起探索Rust语言的基础,从最经典的程序入手——“Hello, World!”。 Rust简介 Rust是一种系统编程语言,由Mozilla赞助开发,旨在提供内存安全、并发性和实用性。它的设计思想强调安全性和性能&…

【EI会议征稿】第七届结构工程与工业建筑国际学术会议(ICSEIA 2024)

第七届结构工程与工业建筑国际学术会议(ICSEIA 2024) 2024 7th International Conference on Structural Engineering and Industrial Architecture 随着城市化进程的不断深入,建筑领域的需求也在优化、调整。结构工程的发展依旧受到重视&am…

c语言-数据结构-链表分割

链表分割实际上是给定一个值,遍历链表把链表中小于该值的节点与大于该值的节点分开,一般是将小于该值的节点放到链表的前面部分,大于该值的节点放在链表的后面部分。 链表分割示意图如下: 思路: 首先创建两条带哨兵位节…

CSDN每日一题学习训练——Java版(字符串相乘、子集、删除链表的倒数第 N 个结点)

版本说明 当前版本号[20231112]。 版本修改说明20231112初版 目录 文章目录 版本说明目录字符串相乘题目解题思路代码思路补充说明参考代码 子集题目解题思路代码思路参考代码 删除链表的倒数第 N 个结点题目解题思路代码思路参考代码 字符串相乘 题目 给定两个以字符串形…

【Linux】第十六站:进程地址空间

文章目录 一、程序地址空间1.内存的分布2.static修饰后为什么不会被释放3.一个奇怪的现象 二、进程地址空间1.前面现象的原因2.地址空间究竟是什么?3.为什么要有进程地址空间4.页表5.什么叫进程?6.进程具有独立性。为什么?怎么做到呢&#xf…

解决 Django 开发中的环境配置问题:Windows 系统下的实战指南20231113

简介: 在本文中,我想分享一下我最近在 Windows 环境下进行 Django 开发时遇到的一系列环境配置问题,以及我是如何一步步解决这些问题的。我的目标是为那些可能遇到类似困难的 Django 开发者提供一些指导和帮助。 问题描述: 最近…

2023.11.14-hive之表操作练习和文件导入练习

目录 需求1.数据库基本操作 需求2. 默认分隔符案例 需求1.数据库基本操作 -- 1.创建数据库test_sql,cs1,cs2,cs3 create database test_sql; create database cs1; create database cs2; create database cs3; -- 2.1删除数据库cs2 drop database cs2; -- 2.2在cs3库中创建…

Spark数据倾斜优化

1 数据倾斜现象 1、现象 绝大多数task任务运行速度很快,但是就是有那么几个task任务运行极其缓慢,慢慢的可能就接着报内存溢出的问题。 2、原因 数据倾斜一般是发生在shuffle类的算子,比如distinct、groupByKey、reduceByKey、aggregateByKey…

链表相关部分OJ题

💓作者简介👏:在校大二迷茫大学生 💖个人主页🎉:小李很执着 💗系列专栏:Leetcode经典题 每日分享:人总是在离开一个地方后开始原谅它❣️❣️❣️———————————…

【Hadoop】MapReduce详解

🦄 个人主页——🎐开着拖拉机回家_大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁&#x1f…

nodejs+vue+python+PHP+微信小程序-安卓-房产中介管理信息系统的设计与实现-计算机毕业设计

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…