Merge pull request #29135 from taosdata/doc/ana_doc
doc: fix error in tdgpt docs.
This commit is contained in:
commit
a7062349d2
|
@ -4,11 +4,10 @@ sidebar_label: "安装部署"
|
||||||
---
|
---
|
||||||
|
|
||||||
### 环境准备
|
### 环境准备
|
||||||
使用 TDgpt 的高级时序数据分析功能需要在 TDengine 集群中安装部署 AI node(Anode)。Anode 可以运行在 Linux/Windows/MacOS 等平台上,同时需要 3.10 或以上版本的 Python 环境支持。
|
使用 TDgpt 的高级时序数据分析功能需要在 TDengine 集群中安装部署 AI node(Anode)。Anode 运行在 Linux 平台上,并需要 3.10 或以上版本的 Python 环境支持。
|
||||||
> 部署 Anode 需要 TDengine Enterprise 3.3.4.3 及以后版本,请首先确认搭配 Anode 使用的 TDengine 能够支持 Anode。
|
> 部署 Anode 需要 TDengine Enterprise 3.3.4.3 及以后版本,请首先确认搭配 Anode 使用的 TDengine 能够支持 Anode。
|
||||||
|
|
||||||
### 安装及卸载
|
### 安装及卸载
|
||||||
不同操作系统上安装及部署 Anode 有一些差异,主要是卸载操作、安装路径、服务启停等方面。本文以 Linux 系统为例,说明安装部署的流程。
|
|
||||||
使用 Linux 环境下的安装包 TDengine-enterprise-anode-1.x.x.tar.gz 可进行 Anode 的安装部署工作,命令如下:
|
使用 Linux 环境下的安装包 TDengine-enterprise-anode-1.x.x.tar.gz 可进行 Anode 的安装部署工作,命令如下:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -37,7 +36,7 @@ systemctl status taosanoded
|
||||||
|/usr/local/taos/taosanode/bin|可执行文件目录|
|
|/usr/local/taos/taosanode/bin|可执行文件目录|
|
||||||
|/usr/local/taos/taosanode/resource|资源文件目录,链接到文件夹 /var/lib/taos/taosanode/resource/|
|
|/usr/local/taos/taosanode/resource|资源文件目录,链接到文件夹 /var/lib/taos/taosanode/resource/|
|
||||||
|/usr/local/taos/taosanode/lib|库文件目录|
|
|/usr/local/taos/taosanode/lib|库文件目录|
|
||||||
|/var/lib/taos/taosanode/model/|模型文件目录,链接到文件夹 /var/lib/taos/taosanode/model|
|
|/usr/local/taos/taosanode/model/|模型文件目录,链接到文件夹 /var/lib/taos/taosanode/model|
|
||||||
|/var/log/taos/taosanode/|日志文件目录|
|
|/var/log/taos/taosanode/|日志文件目录|
|
||||||
|/etc/taos/taosanode.ini|配置文件|
|
|/etc/taos/taosanode.ini|配置文件|
|
||||||
|
|
||||||
|
@ -64,7 +63,7 @@ pidfile = /usr/local/taos/taosanode/taosanode.pid
|
||||||
# conflict with systemctl, so do NOT uncomment this
|
# conflict with systemctl, so do NOT uncomment this
|
||||||
# daemonize = /var/log/taos/taosanode/taosanode.log
|
# daemonize = /var/log/taos/taosanode/taosanode.log
|
||||||
|
|
||||||
# log directory
|
# uWSGI log files
|
||||||
logto = /var/log/taos/taosanode/taosanode.log
|
logto = /var/log/taos/taosanode/taosanode.log
|
||||||
|
|
||||||
# wWSGI monitor port
|
# wWSGI monitor port
|
||||||
|
@ -74,7 +73,7 @@ stats = 127.0.0.1:8387
|
||||||
virtualenv = /usr/local/taos/taosanode/venv/
|
virtualenv = /usr/local/taos/taosanode/venv/
|
||||||
|
|
||||||
[taosanode]
|
[taosanode]
|
||||||
# default app log file
|
# default taosanode log file
|
||||||
app-log = /var/log/taos/taosanode/taosanode.app.log
|
app-log = /var/log/taos/taosanode/taosanode.app.log
|
||||||
|
|
||||||
# model storage directory
|
# model storage directory
|
||||||
|
|
|
@ -12,7 +12,7 @@ import wndata from './pic/white-noise-data.png'
|
||||||
<img src={activity} width="560" alt="预处理流程" />
|
<img src={activity} width="560" alt="预处理流程" />
|
||||||
|
|
||||||
TDgpt 首先对输入数据进行白噪声检查(White Noise Data check), 检查通过以后针对预测分析,还要进行输入(历史)数据的重采样和时间戳对齐处理(异常检测跳过数据重采样和时间戳对齐步骤)。
|
TDgpt 首先对输入数据进行白噪声检查(White Noise Data check), 检查通过以后针对预测分析,还要进行输入(历史)数据的重采样和时间戳对齐处理(异常检测跳过数据重采样和时间戳对齐步骤)。
|
||||||
预处理完成以后,再进行预测或异常检测操作。预处理过程部署于预测或异常检测处理逻辑的一部分。
|
预处理完成以后,再进行预测或异常检测操作。预处理过程不属于预测或异常检测处理逻辑的一部分。
|
||||||
|
|
||||||
### 白噪声检查
|
### 白噪声检查
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ description: 预测算法
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
taos> select * from foo;
|
taos> select * from foo;
|
||||||
ts | k |
|
ts | i32 |
|
||||||
========================================
|
========================================
|
||||||
2020-01-01 00:00:12.681 | 13 |
|
2020-01-01 00:00:12.681 | 13 |
|
||||||
2020-01-01 00:00:13.727 | 14 |
|
2020-01-01 00:00:13.727 | 14 |
|
||||||
|
@ -42,7 +42,7 @@ algo=expr1
|
||||||
|
|
||||||
```
|
```
|
||||||
1. `column_expr`:预测的时序数据列。与异常检测相同,只支持数值类型列输入。
|
1. `column_expr`:预测的时序数据列。与异常检测相同,只支持数值类型列输入。
|
||||||
2. `options`:异常检测函数的参数,使用规则与 anomaly_window 相同。预测支持 `conf`, `every`, `rows`, `start`, `rows` 几个控制参数,其含义如下:
|
2. `options`:预测函数的参数。字符串类型,其中使用 K=V 方式调用算法及相关参数。采用逗号分隔的 K=V 字符串表示,其中的字符串不需要使用单引号、双引号、或转义号等符号,不能使用中文及其他宽字符。预测支持 `conf`, `every`, `rows`, `start`, `rows` 几个控制参数,其含义如下:
|
||||||
|
|
||||||
### 参数说明
|
### 参数说明
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,8 @@ return {
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from service import AbstractForecastService
|
from taosanalytics.service import AbstractForecastService
|
||||||
|
|
||||||
|
|
||||||
# 算法实现类名称 需要以下划线 "_" 开始,并以 Service 结束
|
# 算法实现类名称 需要以下划线 "_" 开始,并以 Service 结束
|
||||||
class _MyForecastService(AbstractForecastService):
|
class _MyForecastService(AbstractForecastService):
|
||||||
|
@ -51,12 +52,12 @@ class _MyForecastService(AbstractForecastService):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
def execute(self):
|
def execute(self):
|
||||||
""" 算法逻辑的核心实现"""
|
""" 算法逻辑的核心实现"""
|
||||||
res = []
|
res = []
|
||||||
|
|
||||||
"""这个预测算法固定返回 1 作为预测值,预测值的数量是用户通过 self.fc_rows 指定"""
|
"""这个预测算法固定返回 1 作为预测值,预测值的数量是用户通过 self.fc_rows 指定"""
|
||||||
ts_list = [self.start_ts + i * self.time_step for i in range(self.fc_rows)]
|
ts_list = [self.start_ts + i * self.time_step for i in range(self.fc_rows)]
|
||||||
res.app(ts_list) # 设置预测结果时间戳列
|
res.append(ts_list) # 设置预测结果时间戳列
|
||||||
|
|
||||||
"""生成全部为 1 的预测结果 """
|
"""生成全部为 1 的预测结果 """
|
||||||
res_list = [1] * self.fc_rows
|
res_list = [1] * self.fc_rows
|
||||||
|
@ -64,18 +65,18 @@ class _MyForecastService(AbstractForecastService):
|
||||||
|
|
||||||
"""检查用户输入,是否要求返回预测置信区间上下界"""
|
"""检查用户输入,是否要求返回预测置信区间上下界"""
|
||||||
if self.return_conf:
|
if self.return_conf:
|
||||||
"""对于没有计算预测置信区间上下界的算法,直接返回预测值作为上下界即可"""
|
"""对于没有计算预测置信区间上下界的算法,直接返回预测值作为上下界即可"""
|
||||||
bound_list = [1] * self.fc_rows
|
bound_list = [1] * self.fc_rows
|
||||||
res.append(bound_list) # 预测结果置信区间下界
|
res.append(bound_list) # 预测结果置信区间下界
|
||||||
res.append(bound_list) # 预测结果执行区间上界
|
res.append(bound_list) # 预测结果执行区间上界
|
||||||
|
|
||||||
"""返回结果"""
|
"""返回结果"""
|
||||||
return { "res": res, "mse": 0}
|
return {"res": res, "mse": 0}
|
||||||
|
|
||||||
|
|
||||||
def set_params(self, params):
|
def set_params(self, params):
|
||||||
"""该算法无需任何输入参数,直接重载父类该函数,不处理算法参数设置逻辑"""
|
"""该算法无需任何输入参数,直接调用父类函数,不处理算法参数设置逻辑"""
|
||||||
pass
|
return super().set_params(params)
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
将该文件保存在 `./taosanalytics/algo/fc/` 目录下,然后重启 taosanode 服务。在 TDengine 命令行接口中执行 `SHOW ANODES FULL` 能够看到新加入的算法。应用就可以通过 SQL 语句调用该预测算法。
|
将该文件保存在 `./taosanalytics/algo/fc/` 目录下,然后重启 taosanode 服务。在 TDengine 命令行接口中执行 `SHOW ANODES FULL` 能够看到新加入的算法。应用就可以通过 SQL 语句调用该预测算法。
|
||||||
|
|
|
@ -16,7 +16,7 @@ sidebar_label: "异常检测"
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from service import AbstractAnomalyDetectionService
|
from taosanalytics.service import AbstractAnomalyDetectionService
|
||||||
|
|
||||||
# 算法实现类名称 需要以下划线 "_" 开始,并以 Service 结束
|
# 算法实现类名称 需要以下划线 "_" 开始,并以 Service 结束
|
||||||
class _MyAnomalyDetectionService(AbstractAnomalyDetectionService):
|
class _MyAnomalyDetectionService(AbstractAnomalyDetectionService):
|
||||||
|
|
|
@ -19,24 +19,25 @@ Anode的主要目录结构如下图所示
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
.
|
.
|
||||||
|
├── bin
|
||||||
├── cfg
|
├── cfg
|
||||||
├── model
|
├── lib
|
||||||
│ └── ad_autoencoder
|
│ └── taosanalytics
|
||||||
├── release
|
│ ├── algo
|
||||||
├── script
|
│ │ ├── ad
|
||||||
└── taosanalytics
|
│ │ └── fc
|
||||||
├── algo
|
│ ├── misc
|
||||||
│ ├── ad
|
│ └── test
|
||||||
│ └── fc
|
├── log -> /var/log/taos/taosanode
|
||||||
├── misc
|
├── model -> /var/lib/taos/taosanode/model
|
||||||
└── test
|
└── venv -> /var/lib/taos/taosanode/venv
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|目录|说明|
|
|目录|说明|
|
||||||
|---|---|
|
|---|---|
|
||||||
|taosanalytics| 源代码目录,其下包含了算法具体保存目录 algo,放置杂项目录 misc,单元测试和集成测试目录 test。 algo 目录下 ad 保存异常检测算法代码,fc 目录保存预测算法代码|
|
|taosanalytics| 源代码目录,其下包含了算法具体保存目录 algo,放置杂项目录 misc,单元测试和集成测试目录 test。 algo 目录下 ad 保存异常检测算法代码,fc 目录保存预测算法代码|
|
||||||
|script|是安装脚本和发布脚本放置目录|
|
|venv| Python 虚拟环境|
|
||||||
|model|放置针对数据集完成的训练模型|
|
|model|放置针对数据集完成的训练模型|
|
||||||
|cfg|配置文件目录|
|
|cfg|配置文件目录|
|
||||||
|
|
||||||
|
@ -63,7 +64,8 @@ Anode采用算法自动加载模式,因此只识别符合命名约定的 Pytho
|
||||||
|
|
||||||
```SQL
|
```SQL
|
||||||
--- algo 后面的参数 name 即为类属性 `name`
|
--- algo 后面的参数 name 即为类属性 `name`
|
||||||
SELECT COUNT(*) FROM foo ANOMALY_WINDOW(col_name, 'algo=name')
|
SELECT COUNT(*)
|
||||||
|
FROM foo ANOMALY_WINDOW(col_name, 'algo=name')
|
||||||
```
|
```
|
||||||
|
|
||||||
## 添加具有模型的分析算法
|
## 添加具有模型的分析算法
|
||||||
|
@ -76,19 +78,10 @@ SELECT COUNT(*) FROM foo ANOMALY_WINDOW(col_name, 'algo=name')
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
.
|
.
|
||||||
├── cfg
|
└── model
|
||||||
├── model
|
└── ad_autoencoder
|
||||||
│ └── ad_autoencoder
|
├── ad_autoencoder_foo.dat
|
||||||
│ ├── ad_autoencoder_foo.dat
|
└── ad_autoencoder_foo.info
|
||||||
│ └── ad_autoencoder_foo.info
|
|
||||||
├── release
|
|
||||||
├── script
|
|
||||||
└── taosanalytics
|
|
||||||
├── algo
|
|
||||||
│ ├── ad
|
|
||||||
│ └── fc
|
|
||||||
├── misc
|
|
||||||
└── test
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue