Seeq は、製造および産業用モノのインターネット (IIOT) 向けの高度な分析ソフトウェアとして、プロセス製造組織で機械学習を使用した革新的な新機能を実現します。これらの機能により、組織は独自またはサードパーティの機械学習アルゴリズムを、最前線のプロセス エンジニアや対象分野の専門家が使用する高度な分析アプリケーションに導入できるようになり、1 人のデータ サイエンティストの取り組みを多くの最前線の従業員に拡張できるようになります。Seeq は、 TDengine Java コネクタを介して、 TDengine が提供する時系列データのクエリを簡単にサポートし、データのプレゼンテーション、分析、予測などの機能を提供できます。この記事ではこれを紹介します。
Seeq を設定して TDengine にアクセスする方法
- データの保存場所を表示する
sudo seeq config get Folders/Data
- maven.org から TDengine Java コネクタ パッケージをダウンロードします。最新バージョンは 3.2.7 ( https://central.sonatype.com/artifact/com.taosdata.jdbc/taos-jdbcdriver?smo=true ) です。そして、それをデータ保存場所のplugins\libにコピーします。
- Seeqサーバーを再起動します
sudo seeq restart
- ライセンスを入力してください
ブラウザを使用して ip:34216 にアクセスし、指示に従ってライセンスを入力します。
Seeq を使用して TDengine の時系列データを分析する
以下では、Seeq ソフトウェアと TDengine を使用して時系列データ分析を実行する方法を示します。
シーン紹介
このシナリオ例は、ユーザーが発電所のメーターから電力消費データを毎日収集し、TDengine クラスターに保存する電力システムです。現在、ユーザーは電力消費がどのように変化するかを予測し、それに対応するためにさらに多くのデバイスを購入したいと考えています。ユーザーの消費電力は毎月の注文の変化に応じて変化し、また季節の変化を考慮すると消費電力も変化します。この都市は北半球にあるため、夏にはより多くの電力を使用します。これらの仮定を反映するためにデータをシミュレーションします。
データスキーマ
CREATE STABLE meters (ts TIMESTAMP, num INT, temperature FLOAT, goods INT) TAGS (device NCHAR(20));
create table goods (ts1 timestamp, ts2 timestamp, goods float);
データ構築メソッド
python mockdata.py
taos -s "insert into power.goods select _wstart, _wstart + 10d, avg(goods) from power.meters interval(10d);"
ソース コードはhttps://github.com/sangshuduo/td-forecastingでホストされています。
Seeqを使ったデータ分析
データソースの設定(データソース)
Seeq 管理者ロールを持つアカウントでログインし、新しいデータ ソースを作成します。
- 力
{
"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": []
}
}
- 品
{
"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": []
}
}
- 温度
{
"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 ワークベンチの使用
Seeq サービス ページにログインし、新しい Seeq ワークベンチを作成します。データ ソースの検索結果を選択し、必要に応じてさまざまなツールを選択することで、データのプレゼンテーションや予測を実行できます。詳しい使用方法については、公式ナレッジ ベースを参照してください: https : //support.seeq.com/space/KB/146440193/Seeq+Workbench。
さらに詳しいデータ分析には Seeq Data Lab Server を使用してください
Seeq サービス ページにログインし、新しい Seeq データ ラボを作成します。さらに、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 LinearRegression
ds = 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()
プログラムを実行すると出力は次のようになります。
最後に書きます
Seeq と TDengine を統合することにより、ユーザーは TDengine の高性能時系列データの保存と取得を最大限に活用して効率的なデータ処理を確保できるほか、Seeq が提供するデータの視覚化、異常検出などの強力なデータの視覚化と分析機能の恩恵を受けることができます。検出、相関性 性的分析と予測モデリングにより、ユーザーは貴重なデータの洞察を取得し、これに基づいて意思決定を行うことができます。
Seeq と TDengine は将来的に、製造業、産業用 IoT、電力システムなどのさまざまな業界で時系列データ分析のための包括的なソリューションを共同で提供し、効率的なデータ ストレージと高度なデータ分析を組み合わせて、企業に高度なデータ分析能力を提供します。時系列データの可能性を活用し、ビジネスの開発と改善を推進します。Seeq のより包括的な設定や、Seeq とフルマネージド クラウド サービス プラットフォーム TDengine Cloud の間の具体的な接続の詳細について詳しく知りたい場合は、公式ドキュメント https://docs.taosdata.com/third-party/seeq/ にアクセスしてください。それを確認するために。
Microsoft、新しい「Windowsアプリ」 .NET 8を正式にGAリリース、最新LTSバージョン XiaomiはXiaomi Velaが完全にオープンソースであり、基盤となるカーネルはNuttXであることを正式に発表 Alibaba Cloud 11.12 障害の原因が明らかに:Access Key Service(アクセスKey) 例外 Vite 5 が正式にリリースされた GitHub レポート : TypeScript が Java に取って代わり、3 番目に人気のある言語になる Rust で Prettier を書き換えるために数十万ドルの報酬を提供 オープンソース作者に「プロジェクトはまだ生きていますか?」と尋ねる 非常に失礼で、失礼な バイトダンス: AI を使用して Linux カーネル パラメータ 演算子を自動的に調整する 魔法の操作: バックグラウンドでネットワークを切断し、ブロードバンド アカウントを無効化し、ユーザーに光モデムの変更を強制する