时序数据预测
TDgpt 提供了 SQL 函数 FORECAST 来实现时序数据的预测
FORECAST(column_expr, option_expr)
option_expr: { "algo=expr1[,wncheck=1|0][,conf=conf_val][,every=every_val][,rows=rows_val][,start=start_ts_val][,expr2]"}
Note
column_expr:预测的时序数据列,只支持数值类型列输入。options:预测函数的参数,字符串类型,其中使用 K=V 方式调用算法及相关参数,采用逗号分隔的 K=V 字符串表示,其中的字符串不需要使用单引号、双引号、或转义号等符号,不能使用中文及其他宽字符,预测支持 conf, every, rows, start, rows 几个控制参数。
使用 lstm 算法进行预测,调用 lstm_foo模型,输入数据的是周期数据,每 10 个采样点是一个周期,返回置信区间是95%的上下边界,同时忽略白噪声检查
SELECT _flow, _fhigh, _frowts, FORECAST(i32, "algo=lstm,model=lstm_foo,alpha=95,period=10,wncheck=0") FROM foo;
时序数据异常检测
TDgpt 提供了 SQL 函数 ANOMALY_WINDOW 来提供时序数据异常检测:
ANOMALY_WINDOW(column_name, option_expr)
option_expr: {"algo=expr1 [,wncheck=1|0] [,expr2]"}
Note
column_name:进行时序数据异常检测的输入数据列,当前只支持单列,且只能是数值类型,不能是字符类型(例如:NCHAR VARCHAR VARBINARY等类型)。options:字符串,其中使用 K=V 调用异常检测算法及与算法相关的参数,采用逗号分隔的 K=V 字符串表示,其中的字符串不需要使用单引号、双引号、或转义号等符号,不能使用中文及其他宽字符,例如 algo=ksigma,k=2 表示进行异常检测的算法是 ksigma,该算法接受的输入参数是 2。
异常检测的结果可以作为外层查询的子查询输入,在 SELECT 子句中使用的聚合函数或标量函数与其他类型的窗口查询相同。输入数据默认进行白噪声检查,如果输入数据是白噪声,将不会有任何(异常)窗口信息返回。
使用自编码器(autoencoder)进行异常检测,调用了使用自编码器训练的 ad_autoencoder_foo 模型来检测输入数据的异常窗口
SELECT COUNT(*), _WSTART FROM foo ANOMALY_WINDOW(col1, 'algo=autoencoder, model=ad_autoencoder_foo');
历史校正函数
TDGPT 提供了 SQL 函数 Historic 用于时序数据缺失值补值:
historic(ts, val, interval, [, confidence-level][, 'option str'])
使用方法与 forecast 函数相似,但返回值是预测的历史值及其插值。