From af68768b2bd75490b56d5e7467a142422ac83957 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 31 Oct 2024 16:53:26 +0800 Subject: [PATCH] Update index.md --- docs/zh/06-advanced/06-data-analysis/index.md | 62 +++++++++++++------ 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/docs/zh/06-advanced/06-data-analysis/index.md b/docs/zh/06-advanced/06-data-analysis/index.md index 1ab36d4178..fb72808150 100644 --- a/docs/zh/06-advanced/06-data-analysis/index.md +++ b/docs/zh/06-advanced/06-data-analysis/index.md @@ -125,7 +125,6 @@ model-dir=/usr/local/taos/taosanode/model/ # default log level log-level = DEBUG - ``` **提示** @@ -167,7 +166,12 @@ DROP ANODE {anode_id} ### 时序数据分析功能 #### 时序数据异常检测 -异常窗口寻找时间序列中可能出现异常的多个时间区间,可基于此窗口边界,对数据进行聚合或标量查询。 时间序列异常窗口中的所有数据均是依据指定算法判断出来的异常值。 +异常检测是针对输入的时序数据,使用预设或用户指定的算法确定时间序列中**可能**出现异常时间序列点,对于时间序列中若干个连续的异常点,将自动合并成为一个连续的(闭区间)异常窗口。对于只有单个点的场景,异常窗口窗口退化成为一个起始时间和结束时间相同的点。 +异常检测生成的异常窗口受检测算法和算法参数的共同影响,对于异常窗口范围内的数据,可以应用 TDengine 提供的聚合和标量函数进行查询或变换处理。 +对于输入时间序列 (1, 20), (2, 22), (3, 91), (4, 120), (5, 18), (6, 19)。系统检测到 (3, 91), (4, 120) 为异常点,那么返回的异常窗口是闭区间 [3, 4]。 + + +##### 语法 ```SQL ANOMALY_WINDOW(column_name, option_expr) @@ -179,11 +183,12 @@ algo=expr1 "} ``` -**语法说明** 1. `column`:进行时序数据异常检测的输入数据列,当前只支持单列输入,且只能是数值类型,不能是字符类型(例如:`NCHAR` `VARCHAR` `VARBINARY`等类型),**不支持函数表达式**。 2. `options`:字符串。其中使用 K/V 调用异常检测的算法,及与算法相关的参数。采用 逗号分隔的K/V字符串表示,其中的字符串不需要使用单引号、双引号、或转意号等符号,不能使用中文及其他宽字符。例如:`algo=ksigma, k=2` 表示进行异常检测的算法是 ksigma,该算法接受的输入参数是 2。 +3. 异常检测的结果可以作为外层查询的子查询输入,在 `SELECT` 子句中使用的聚合函数或标量函数与其他类型的窗口查询相同。 +4. 输入数据默认进行白噪声检查,如果检查结果是输入数据是白噪声,将不会有任何(异常)窗口信息返回。 -全部支持的参数列表如下: +**参数说明** |参数|含义|默认值| |---|---|---| |algo|异常检测调用的算法|iqr| @@ -207,12 +212,16 @@ FROM ai.atb 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 | +Query OK, 1 row(s) in set (0.028946s) +``` -**使用说明** -1. 异常检测的结果可以作为外层查询的子查询输入,在 `SELECT` 子句中使用的聚合函数或标量函数与其他类型的窗口查询相同。 -2. 输入数据默认进行白噪声检查,如果检查结果是输入数据是白噪声,将不会有任何(异常)窗口信息返回。 -**当前支持异常检测算法** +**可用异常检测算法** - iqr - ksigma - grubbs @@ -222,7 +231,9 @@ ANOMALY_WINDOW(i32, "algo=ksigma,k=2"); #### 时序数据预测 -数据预测以一段训练数据作为输入,预测接下来若干时间点的后续运行结果。其调用的语法如下: +数据预测以一段训练数据作为输入,预测接下来一个连续时间区间内,时序数据的趋势。 + +##### 语法 ```SQL FORECAST(column_expr, option_expr) @@ -237,11 +248,11 @@ algo=expr1 "} ``` - -**语法说明** 1. `column_expr`:预测的时序数据列。与异常检测相同,只支持数值类型输入。 2. `options`:异常检测函数的参数,使用规则与 anomaly_window 相同。预测还支持`conf`, `every`, `rows`, `start`, `rows` 几个参数,其含义如下: +**参数说明** + |参数|含义|默认值| |---|---|---| |algo|预测分析使用的算法|holtwinters| @@ -251,10 +262,10 @@ algo=expr1 |start|预测结果的开始时间戳|输入数据最后一个时间戳加上一个采样时间段| |rows|预测结果的记录数|10| -预测查询结果新增了三个伪列,具体如下: -1. `_FROWTS`:预测结果的时间戳 -2. `_FLOW`:置信区间下界 -3. `_FHIGH`:置信区间上界, 对于没有置信区间的预测算法,其置信区间同预测结果 +1. 预测查询结果新增了三个伪列,具体如下: `_FROWTS`:预测结果的时间戳、`_FLOW`:置信区间下界、`_FHIGH`:置信区间上界, 对于没有置信区间的预测算法,其置信区间同预测结果 +2. 更改参数 `START`:返回预测结果的起始时间,改变这个起始时间不会影响返回的预测数值,只影响起始时间。 +3. `EVERY`:可以与输入数据的采样频率不同。采样频率只能低于或等于输入数据采样频率,不能**高于**输入数据的采样频率。 +4. 对于某些不需要计算置信区间的算法,即使指定了置信区间,返回的结果中其上下界退化成为一个点。 **示例** @@ -267,12 +278,23 @@ FROM ai.ftb; SELECT _flow, _fhigh, _frowts, FORECAST(i32, "algo=arima,alpha=95,period=10") FROM ai.ftb; ``` +``` +taos> select _flow, _fhigh, _frowts, forecast(i32) from ai.ftb; + _flow | _fhigh | _frowts | forecast(i32) | +======================================================================================== + 10.5286684 | 41.8038254 | 2020-01-01 00:01:35.001 | 26 | + -21.9861946 | 83.3938904 | 2020-01-01 00:01:36.001 | 30 | + -78.5686035 | 144.6729126 | 2020-01-01 00:01:37.001 | 33 | + -154.9797363 | 230.3057709 | 2020-01-01 00:01:38.001 | 37 | + -253.9852905 | 337.6083984 | 2020-01-01 00:01:39.001 | 41 | + -375.7857971 | 466.4594727 | 2020-01-01 00:01:40.001 | 45 | + -514.8043823 | 622.4426270 | 2020-01-01 00:01:41.001 | 53 | + -680.6343994 | 796.2861328 | 2020-01-01 00:01:42.001 | 57 | + -868.4956665 | 992.8603516 | 2020-01-01 00:01:43.001 | 62 | + -1076.1566162 | 1214.4498291 | 2020-01-01 00:01:44.001 | 69 | +``` -**使用说明** -1. `START`:返回预测结果的起始时间,改变这个起始时间不会影响返回的预测数值,只影响起始时间。 -2. `EVERY`:可以与输入数据的采样频率不同。采样频率只能低于或等于输入数据采样频率,不能**高于**输入数据的采样频率。 -3. 对于某些不需要计算置信区间的算法,即使指定了置信区间,返回的结果中其上下界退化成为一个点。 -**支持预测算法** +**可用预测算法** - arima - holtwinters