異常を検出するには、予測および異常検出関数を使用して時系列曲線を予測し、予測曲線と実際の曲線の間のエラーのKsigmaと分位数を特定します。
機能一覧
機能 | 説明 |
---|---|
ts_predicate_simple | デフォルトパラメータを使用して時系列データをモデル化し、単純な時系列予測と異常検出を実行します。 |
ts_predicate_ar | 自己回帰モデル (AR) モデルを使用して時系列データをモデル化し、単純な時系列予測と異常検出を実行します。 |
ts_predicate_arma | 自己回帰移動平均 (ARMA) モデルを使用して時系列データをモデル化し、単純な時系列予測と異常検出を実行します。 |
ts_predicate_arima | 自己回帰統合移動平均 (ARIMA) モデルを使用して時系列データをモデル化し、単純な時系列予測と異常検出を実行します。 |
ts_regression_predict | 周期的な時系列曲線の傾向を正確に予測する。 シナリオ: この関数は、測定データ、ネットワークトラフィック、財務データ、および特定のルールに従うさまざまなビジネスデータを予測するために使用できます。 |
ts_anomaly_filter | カスタム異常モードに基づいて、複数の時系列曲線で異常検出中に検出された異常をフィルタリングします。 この機能は、異常な曲線をすばやく見つけるのに役立ちます。 |
ts_predicate_simple
関数の形式:
select ts_predicate_simple( x, y, nPred, isSmooth)
関数形式のパラメーターを次の表に示します。
項目 | 説明 | 値 |
---|---|---|
x | タイムシーケンス。 時間内のポイントは、横軸に沿って昇順にソートされます。 | 各時点はUnixタイムスタンプです。 単位は秒です。 |
y | 指定された各時点に対応する数値データのシーケンス。 | N/A |
nPred | 予測のポイント数。 | 値はlongデータ型で、1以上でなければなりません。 |
isSmooth | 生データをフィルタリングするかどうかを指定します。 | 値はBooleanデータ型です。 デフォルト値はtrueで、生データがフィルター処理されることを示します。 |
例:
- クエリステートメントは次のとおりです。
* | select ts_predicate_simple(stamp, value, 6) from (select __time__ - __time__ % 60をスタンプとして、avg(v) を値としてログのGROUP BYスタンプ注文からスタンプ)
- 出力結果
The次の表を表示項目。
表示項目 | 説明 | |
---|---|---|
横軸 | unixtime | データのUnixタイムスタンプ。 単位は秒です。 |
垂直軸 | src | 生データ。 |
predict | フィルタリング演算後に生成されたデータが実行される。 | |
upper | 信頼区間の上限。 信頼レベルは0.85であり、変更することはできない。 | |
lower | 信頼区間の下限。 信頼レベルは0.85であり、変更することはできない。 | |
anomaly_prob | ポイントが異常である確率。 有効な値: [0, 1] |
ts_predicate_ar
関数の形式:
select ts_predicate_ar( x, y, p, nPred, isSmooth)
関数形式のパラメーターを次の表に示します。
項目 | 説明 | 値 |
---|---|---|
x | タイムシーケンス。 時間内のポイントは、横軸に沿って昇順にソートされます。 | 各時点はUnixタイムスタンプです。 単位は秒です。 |
y | 指定された各時点に対応する数値データのシーケンス。 | N/A |
p | ARモデルの順序。 | 値はlongデータ型です。 有効な値: 2、3、4、5、6、7、および8。 |
nPred | 予測のポイント数。 | 値はlongデータ型です。 有効値: [1, 5 × p] 。 |
isSmooth | 生データをフィルタリングするかどうかを指定します。 | 値はBooleanデータ型です。 デフォルト値はtrueで、生データがフィルター処理されることを示します。 |
クエリ文の例を次に示します。
* | select ts_predicate_ar(stamp, value, 3,4) from (select __time__ - __time__ % 60をstampとして、avg(v) を値としてlog GROUP BY stamp order by stamp)
説明 出力結果は、ts_predicate_simple関数と同様です。 詳細については、ts_predicate_simple関数の出力結果をご参照ください。
ts_predicate_arma
関数の形式:
select ts_predicate_arma( x, y, p, q, nPred, isSmooth)
関数形式のパラメーターを次の表に示します。
項目 | 説明 | 値 |
---|---|---|
x | タイムシーケンス。 時間内のポイントは、横軸に沿って昇順にソートされます。 | 各時点はUnixタイムスタンプです。 単位は秒です。 |
y | 指定された各時点に対応する数値データのシーケンス。 | N/A |
p | ARモデルの順序。 | 値はlongデータ型です。 有効な値: [2, 100] 。 |
q | ARMAモデルの順序。 | 値はlongデータ型です。 有効な値: 2、3、4、5、6、7、および8。 |
nPred | 予測のポイント数。 | 値はlongデータ型です。 有効値: [1, 5 × p] 。 |
isSmooth | 生データをフィルタリングするかどうかを指定します。 | 値はBooleanデータ型です。 デフォルト値はtrueで、生データがフィルター処理されることを示します。 |
クエリ文の例を次に示します。
* | 選択ts_predicate_arma (スタンプ、値、3、2、4) から (選択__時間__ - __時間__ % 60としてスタンプ、avg(v) 値ログからGROUP BYスタンプによる注文スタンプ)
説明 出力結果は、ts_predicate_simple関数と同様です。 詳細については、ts_predicate_simple関数の出力結果をご参照ください。
ts_predicate_arima
関数の形式:
select ts_predicate_arima( x, y, p, d, q, nPred, isSmooth)
関数形式のパラメーターを次の表に示します。
項目 | 説明 | 値 |
---|---|---|
x | タイムシーケンス。 時間内のポイントは、横軸に沿って昇順にソートされます。 | 各時点はUnixタイムスタンプです。 単位は秒です。 |
y | 指定された各時点に対応する数値データのシーケンス。 | N/A |
p | ARモデルの順序。 | 値はlongデータ型です。 有効な値: 2、3、4、5、6、7、および8。 |
d | ARIMAモデルの順序。 | 値はlongデータ型です。 有効な値: [1, 3] 。 |
q | ARMAモデルの順序。 | 値はlongデータ型です。 有効な値: 2、3、4、5、6、7、および8。 |
nPred | 予測のポイント数。 | 値はlongデータ型です。 有効値: [1, 5 × p] 。 |
isSmooth | 生データをフィルタリングするかどうかを指定します。 | 値はBooleanデータ型です。 デフォルト値はtrueで、生データがフィルター処理されることを示します。 |
クエリ文の例を次に示します。
* | select ts_predicate_arima(stamp, value, 3, 1, 2, 4, 1, 'avg') from (select __time__ - __time__ % 60 as stamp, avg(v) as value from log GROUP BY stamp order by stamp)
説明 出力結果は、ts_predicate_simple関数と同様です。 詳細については、ts_predicate_simple関数の出力結果をご参照ください。
ts_regression_predict
関数の形式:
select ts_regression_predict( x, y, nPred, algotype, processType)
関数形式のパラメーターを次の表に示します。
項目 | 説明 | 値 |
---|---|---|
x | タイムシーケンス。 時間内のポイントは、横軸に沿って昇順にソートされます。 | 各時点はUnixタイムスタンプです。 単位は秒です。 |
y | 指定された各時点に対応する数値データのシーケンス。 | N/A |
nPred | 予測のポイント数。 | 値はlongデータ型です。 有効な値: [1, 500] 。 |
アルゴタイプ | 予測のアルゴリズムタイプ。 | 有効な値:
|
processType | データを前処理するかどうかを指定します。 | 有効な値:
|
例:
- クエリステートメントは次のとおりです。
* およびh : nu2h05202.nu8およびm: NET | select ts_regression_predict(stamp, value, 200, 'origin') from (select __time__ - _time__ % 60 as stamp, avg(v) as value from log GROUP BY stamp order by stamp order BY stamp)
- 出力結果
表示项目一覧を次の表に示します。
表示項目 | 説明 | |
---|---|---|
横軸 | unixtime | データのUnixタイムスタンプ。 単位は秒です。 |
垂直軸 | src | 生データ。 |
predict | フィルタリング演算後に生成されたデータが実行される。 |
ts_anomaly_filter
関数の形式:
select ts_anomaly_filter( lineName、ts、ds、preds、probs、nWatch、anomalyType)
関数形式のパラメーターを次の表に示します。
項目 | 説明 | 値 |
---|---|---|
lineName | 各カーブの名前。 値はvarchar型です。 | N/A |
ts | 現在のカーブの時間を示すカーブの時間シーケンス。 パラメーター値は、昇順でソートされたdoubleデータ型の時点の配列です。 | N/A |
ds | カーブの実際の値シーケンス。 パラメーター値は、doubleデータ型のデータポイントの配列です。 このパラメーター値はtsパラメーター値と同じ長さです。 | N/A |
プレド | カーブの予測値シーケンス。 パラメーター値は、doubleデータ型のデータポイントの配列です。 このパラメーター値はtsパラメーター値と同じ長さです。 | N/A |
probs | カーブの異常検出結果のシーケンス。 パラメーター値は、doubleデータ型のデータポイントの配列です。 このパラメーター値はtsパラメーター値と同じ長さです。 | N/A |
nWatch | 曲線上の最近観察された実際の値の数。 値はlongデータ型です。 値は、カーブ上の時点の数よりも小さくなければなりません。 | N/A |
anomalyType | フィルタリングする異常のタイプ。 値はlongデータ型です。 | 有効な値:
|
例:
- クエリステートメントは次のとおりです。
* | t res.name、res.ts、res.ds、res.preds、res.probs from ( select ts_anomaly_filter(name、ts、ds、preds、probs、cast(5 as bigint) 、cast(1 as bigint)) as res from ( select name, res[1] as ts, res[2] as ds, res[3] as preds, res[4] as uppers, res[5] as lower, res[6] as probs from ( select name, array_transpose(ts_predicate_ar(stamp, value, 10)) as res from ( 名前で '% asg-%') グループのような名前のログから名前、スタンプ、値を選択します。
- 出力結果
| name | ts | ds | preds | probs | | ------------------------ | ---------------------------------------------------- | --------- | --------- | -------- | ---------- | | asg-bp1hylzdi2wx7civ0ivk | [1.5513696E9, 1.5513732E9, 1.5513768E9, 1.5513804E9] | [1,2,3,NaN] | [1,2,3,4] | [0,0,1,NaN] |