変化点検出関数は、時系列データの変化点を検出します。

変化点検出関数は、2 種類の変化点をサポートしています。
  • 指定期間内の統計的特性の変化
  • シーケンス内の明らかな障害

関数リスト

関数 説明
ts_cp_detect この関数は、ある時系列で異なる統計的特性を持つ間隔を検出します。 間隔のエンドポイントは変化点です。
ts_breakout_detect この関数は、時系列で統計が急激に増減する時点を検出します。

ts_cp_detect

関数の形式:
  • ウィンドウサイズが不明な場合は、次の形式で tscpdetect 関数を使用してください。 次に、関数によって呼び出されるアルゴリズムは、変化点を検出するために長さ "10" のウィンドウを使用します。

    select ts_cp_detect(x, y, amplePeriod,sampleMethod)
  • サービス曲線の表示効果を調整する必要がある場合は、次の形式で ts_cp_detect 関数を使用します。 次に、minSize パラメーターを設定して、表示効果を最適化することができます。

    select ts_cp_detect(x, y, minSize, samplePeriod, sampleMethod) 
パラメータについて、次の表に説明します。
パラメータ 説明
x 時間の列 (昇順) Unixtime timestamp (秒)
y 指定時点のデータに対応する数値列 -
minSize 連続間隔の最小長 最小値は "3" で、最大値は現在の入力データ長の 1⁄10 までです。
samplePeriod 現在の時系列データをサンプリングする期間 1〜86399 秒の long 型の値
sampleMethod サンプリングウィンドウ内データのサンプリング方法 値の範囲:
  • avg:ウィンドウ内データの平均値
  • max:ウィンドウ内データの最大値
  • min:ウィンドウ内データの最小値
  • sum:ウィンドウ内データの合計
例:
  • 照会と分析の命令文:
    * | select ts_cp_detect(stamp, value, 3, 1, 'avg') from (select __time__ - __time__ % 10 as stamp, avg(v) as value from log GROUP BY stamp order by stamp) 
  • 結果:
表示項目について、次の表に説明します。
表示項目 説明
横軸 unixtime データの timestamp (秒)。(例:1537071480)
縦軸 src フィルタリング前のデータ (例:1956092.7647745228)
prob ある時点が変化点である確率。 値の範囲は 0〜1 です。

ts_breakout_detect

関数の形式:
select ts_breakout_detect(x, y, winSize, samplePeriod, sampleMethod) 
パラメーター、ついて、次の表に説明します。
パラメータ 説明
x 時間の列 (昇順) Unixtime timestamp (秒)
y 指定した時点のデータに対応する数値列 -
winSize 連続する間隔の最小長 最小値は "3" で、最大値は現在の入力データ長の 1⁄10 までです。
samplePeriod 現在の時系列データをサンプリングする期間 1〜86399 秒の long 型の値
sampleMethod サンプリングウィンドウ内データのサンプリング方法 値の範囲:
  • avg:ウィンドウ内データの平均値
  • max:ウィンドウ内データの最大値
  • min:ウィンドウ内データの最小値
  • sum:ウィンドウ内データの合計
例:
  • 照会と分析の命令文:
    * | select ts_breakout_detect(stamp, value, 3, 1, 'avg') from (select __time__ - __time__ % 10 as stamp, avg(v) as value from log GROUP BY stamp order by stamp) 
  • 結果:

表示項目について、次の表に説明します。
表示項目 説明
横軸 unixtime データの timestamp (秒)。(例:1537071480)
縦軸 src フィルタリング前のデータ (例:1956092.7647745228)
prob ある時点が変化点である確率。 値の範囲は 0〜1 です。