• 时序数据库 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

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

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

    构造数据方法

    1. python mockdata.py
    2. taos -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
    1. {
    2. "QueryDefinitions": [
    3. {
    4. "Name": "PowerNum",
    5. "Type": "SIGNAL",
    6. "Sql": "SELECT ts, num FROM meters",
    7. "Enabled": true,
    8. "TestMode": false,
    9. "TestQueriesDuringSync": true,
    10. "InProgressCapsulesEnabled": false,
    11. "Variables": null,
    12. "Properties": [
    13. {
    14. "Name": "Name",
    15. "Value": "Num",
    16. "Sql": null,
    17. "Uom": "string"
    18. },
    19. {
    20. "Name": "Interpolation Method",
    21. "Value": "linear",
    22. "Sql": null,
    23. "Uom": "string"
    24. },
    25. {
    26. "Name": "Maximum Interpolation",
    27. "Value": "2day",
    28. "Sql": null,
    29. "Uom": "string"
    30. }
    31. ],
    32. "CapsuleProperties": null
    33. }
    34. ],
    35. "Type": "GENERIC",
    36. "Hostname": null,
    37. "Port": 0,
    38. "DatabaseName": null,
    39. "Username": "root",
    40. "Password": "taosdata",
    41. "InitialSql": null,
    42. "TimeZone": null,
    43. "PrintRows": false,
    44. "UseWindowsAuth": false,
    45. "SqlFetchBatchSize": 100000,
    46. "UseSSL": false,
    47. "JdbcProperties": null,
    48. "GenericDatabaseConfig": {
    49. "DatabaseJdbcUrl": "jdbc:TAOS-RS://127.0.0.1:6041/power?user=root&password=taosdata",
    50. "SqlDriverClassName": "com.taosdata.jdbc.rs.RestfulDriver",
    51. "ResolutionInNanoseconds": 1000,
    52. "ZonedColumnTypes": []
    53. }
    54. }
    • Goods
    1. {
    2. "QueryDefinitions": [
    3. {
    4. "Name": "PowerGoods",
    5. "Type": "CONDITION",
    6. "Sql": "SELECT ts1, ts2, goods FROM power.goods",
    7. "Enabled": true,
    8. "TestMode": false,
    9. "TestQueriesDuringSync": true,
    10. "InProgressCapsulesEnabled": false,
    11. "Variables": null,
    12. "Properties": [
    13. {
    14. "Name": "Name",
    15. "Value": "Goods",
    16. "Sql": null,
    17. "Uom": "string"
    18. },
    19. {
    20. "Name": "Maximum Duration",
    21. "Value": "10days",
    22. "Sql": null,
    23. "Uom": "string"
    24. }
    25. ],
    26. "CapsuleProperties": [
    27. {
    28. "Name": "goods",
    29. "Value": "${columnResult}",
    30. "Column": "goods",
    31. "Uom": "string"
    32. }
    33. ]
    34. }
    35. ],
    36. "Type": "GENERIC",
    37. "Hostname": null,
    38. "Port": 0,
    39. "DatabaseName": null,
    40. "Username": "root",
    41. "Password": "taosdata",
    42. "InitialSql": null,
    43. "TimeZone": null,
    44. "PrintRows": false,
    45. "UseWindowsAuth": false,
    46. "SqlFetchBatchSize": 100000,
    47. "UseSSL": false,
    48. "JdbcProperties": null,
    49. "GenericDatabaseConfig": {
    50. "DatabaseJdbcUrl": "jdbc:TAOS-RS://127.0.0.1:6041/power?user=root&password=taosdata",
    51. "SqlDriverClassName": "com.taosdata.jdbc.rs.RestfulDriver",
    52. "ResolutionInNanoseconds": 1000,
    53. "ZonedColumnTypes": []
    54. }
    55. }
    • Temperature
    1. {
    2. "QueryDefinitions": [
    3. {
    4. "Name": "PowerNum",
    5. "Type": "SIGNAL",
    6. "Sql": "SELECT ts, temperature FROM meters",
    7. "Enabled": true,
    8. "TestMode": false,
    9. "TestQueriesDuringSync": true,
    10. "InProgressCapsulesEnabled": false,
    11. "Variables": null,
    12. "Properties": [
    13. {
    14. "Name": "Name",
    15. "Value": "Temperature",
    16. "Sql": null,
    17. "Uom": "string"
    18. },
    19. {
    20. "Name": "Interpolation Method",
    21. "Value": "linear",
    22. "Sql": null,
    23. "Uom": "string"
    24. },
    25. {
    26. "Name": "Maximum Interpolation",
    27. "Value": "2day",
    28. "Sql": null,
    29. "Uom": "string"
    30. }
    31. ],
    32. "CapsuleProperties": null
    33. }
    34. ],
    35. "Type": "GENERIC",
    36. "Hostname": null,
    37. "Port": 0,
    38. "DatabaseName": null,
    39. "Username": "root",
    40. "Password": "taosdata",
    41. "InitialSql": null,
    42. "TimeZone": null,
    43. "PrintRows": false,
    44. "UseWindowsAuth": false,
    45. "SqlFetchBatchSize": 100000,
    46. "UseSSL": false,
    47. "JdbcProperties": null,
    48. "GenericDatabaseConfig": {
    49. "DatabaseJdbcUrl": "jdbc:TAOS-RS://127.0.0.1:6041/power?user=root&password=taosdata",
    50. "SqlDriverClassName": "com.taosdata.jdbc.rs.RestfulDriver",
    51. "ResolutionInNanoseconds": 1000,
    52. "ZonedColumnTypes": []
    53. }
    54. }
    使用 Seeq Workbench

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

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

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

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

    1. from seeq import spy
    2. spy.options.compatibility = 189
    3. import pandas as pd
    4. import matplotlib
    5. import matplotlib.pyplot as plt
    6. import mlforecast
    7. import lightgbm as lgb
    8. from mlforecast.target_transforms import Differences
    9. from sklearn.linear_model import LinearRegression
    10. ds = spy.search({'ID': "8C91A9C7-B6C2-4E18-AAAF-XXXXXXXXX"})
    11. print(ds)
    12. sig = ds.loc[ds['Name'].isin(['Num'])]
    13. print(sig)
    14. data = spy.pull(sig, start='2015-01-01', end='2022-12-31', grid=None)
    15. print("data.info()")
    16. data.info()
    17. print(data)
    18. #data.plot()
    19. print("data[Num].info()")
    20. data['Num'].info()
    21. da = data['Num'].index.tolist()
    22. #print(da)
    23. li = data['Num'].tolist()
    24. #print(li)
    25. data2 = pd.DataFrame()
    26. data2['ds'] = da
    27. print('1st data2 ds info()')
    28. data2['ds'].info()
    29. #data2['ds'] = pd.to_datetime(data2['ds']).to_timestamp()
    30. data2['ds'] = pd.to_datetime(data2['ds']).astype('int64')
    31. data2['y'] = li
    32. print('2nd data2 ds info()')
    33. data2['ds'].info()
    34. print(data2)
    35. data2.insert(0, column = "unique_id", value="unique_id")
    36. print("Forecasting ...")
    37. forecast = mlforecast.MLForecast(
    38. models = lgb.LGBMRegressor(),
    39. freq = 1,
    40. lags=[365],
    41. target_transforms=[Differences([365])],
    42. )
    43. forecast.fit(data2)
    44. predicts = forecast.predict(365)
    45. pd.concat([data2, predicts]).set_index("ds").plot(title = "current data with forecast")
    46. plt.show()

    运行程序输出结果:

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

    写在最后

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

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


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

  • 相关阅读:
    赶紧看!阿里架构师必备“绝杀版”Tomact 架构笔记堪称绝技
    maven报错:[ERROR] 不再支持源选项 7。请使用 8 或更高版本。
    参加了个算法比赛,真是一言难尽啊
    Blend for Visual Studio 让XAML也可以像WinForm一样可视化设计,Blend 与Studio的区别
    [数据集][目标检测]焊接件表面缺陷检测数据集VOC+YOLO格式2292张10类别
    被难倒了! 针对高级前端的八个级JavaScript面试问题
    指针及其他有关的
    媒介盒子:品牌宣传的内容输出逻辑是什么
    使用 K3d 在 Docker 中运行 Kubernetes 集群
    Spring boot 整合 JWT
  • 原文地址:https://blog.csdn.net/taos_data/article/details/134380284