From 57086a0a0f3b09e451e2edeab7fdfdab6ffafbc2 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Tue, 12 Nov 2024 10:31:27 +0800 Subject: [PATCH] Update index.md --- .../06-TDgpt/05-anomaly-detection/index.md | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md index f00ef9b4f6..0815db3a67 100644 --- a/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md +++ b/docs/zh/06-advanced/06-TDgpt/05-anomaly-detection/index.md @@ -3,12 +3,19 @@ title: 异常检测算法 description: 异常检测算法 --- -异常检测是针对输入的时序数据,使用预设或用户指定的算法确定时间序列中**可能**出现异常的时间序列点,对于时间序列中若干个连续的异常点,将自动合并成为一个连续的(闭区间)异常窗口。对于只有单个点的场景,异常窗口窗口退化成为一个起始时间和结束时间相同的点。 -异常检测生成的异常窗口受检测算法和算法参数的共同影响,对于异常窗口范围内的数据,可以应用 TDengine 提供的聚合和标量函数进行查询或变换处理。 -对于输入时间序列 (1, 20), (2, 22), (3, 91), (4, 120), (5, 18), (6, 19)。系统检测到 (3, 91), (4, 120) 为异常点,那么返回的异常窗口是闭区间 [3, 4]。 -如下图所示,分析平台将返回时序数据异常窗口 [10:51:30, 10:54:40] (红色背景部分数据)。 +时序数据异常检测,在TDengine 查询处理中以异常窗口的形式服务。因此,可以将异常检测获得的窗口视为一种特殊的**事件窗口**,区别在于异常窗口的触发条件和结束条件不是用户指定,而是检测算法自动识别。因此,可以应用在事件窗口上的函数均可应用在异常窗口中。由于异常检测结果是一个时间窗口,因此调用异常检测的方式也与使用事件窗口的方式相同,在 `WHERE` 子句中使用 `ANOMALY_WINDOW` 关键词即可调用时序数据异常检测服务,同时窗口伪列(`_WSTART`, `_WEND`, `_WDURATION`)也能够像其他窗口函数一样使用。例如: + +```SQL +SELECT _wstart, _wend, SUM(i32) +FROM foo +ANOMALY_WINDOW(i32, "algo=iqr"); +``` + +如下图所示,Anode 将返回时序数据异常窗口 [10:51:30, 10:54:40] 异常检测 +在此基础上,用户可以 + ### 语法 @@ -22,7 +29,7 @@ algo=expr1 "} ``` -1. `column`:进行时序数据异常检测的输入数据列,当前只支持单列,且只能是数值类型,不能是字符类型(例如:`NCHAR` `VARCHAR` `VARBINARY`等类型),**不支持函数表达式**。 +1. `column_name`:进行时序数据异常检测的输入数据列,当前只支持单列,且只能是数值类型,不能是字符类型(例如:`NCHAR` `VARCHAR` `VARBINARY`等类型),**不支持函数表达式**。 2. `options`:字符串。其中使用 K=V 调用异常检测算法及与算法相关的参数。采用逗号分隔的 K=V 字符串表示,其中的字符串不需要使用单引号、双引号、或转义号等符号,不能使用中文及其他宽字符。例如:`algo=ksigma,k=2` 表示进行异常检测的算法是 ksigma,该算法接受的输入参数是 2。 3. 异常检测的结果可以作为外层查询的子查询输入,在 `SELECT` 子句中使用的聚合函数或标量函数与其他类型的窗口查询相同。 4. 输入数据默认进行白噪声检查,如果输入数据是白噪声,将不会有任何(异常)窗口信息返回。 @@ -33,7 +40,7 @@ algo=expr1 |algo|异常检测调用的算法|iqr| |wncheck|对输入数据列是否进行白噪声检查|取值为 0 或者 1,默认值为 1,表示进行白噪声检查| -异常检测的返回结果以窗口形式呈现,因此窗口查询相关的伪列在这种场景下仍然可用。可以使用的伪列如下: +异常检测的返回结果以窗口形式呈现,因此窗口查询相关的伪列在这种场景下仍然可用。可用的伪列如下: 1. `_WSTART`: 异常窗口开始时间戳 2. `_WEND`:异常窗口结束时间戳 3. `_WDURATION`:异常窗口持续时间 @@ -55,7 +62,7 @@ ANOMALY_WINDOW(i32, "algo=ksigma,k=2"); taos> SELECT _wstart, _wend, count(*) FROM ai.atb ANOMAYL_WINDOW(i32); _wstart | _wend | count(*) | ==================================================================== - 2020-01-01 00:00:16.000 | 2020-01-01 00:00:16.001 | 1 | + 2020-01-01 00:00:16.000 | 2020-01-01 00:00:17.000 | 2 | Query OK, 1 row(s) in set (0.028946s) ```