このトピックでは、異なる時間間隔に分布する時系列データの周期性を推定するために使用できる複数期間の推定関数について説明します。 このトピックでは、フーリエ変換 (FT) などの一連の演算を使用して周期性を抽出する方法についても説明します。

機能一覧

機能説明
ts_period_detect異なる時間間隔で分布する時系列データの周期性を推定します。
ts_period_classifyFTを使用して、指定した時系列曲線の周期を計算します。 この関数は、周期曲線を識別するために使用できます。

ts_period_detect

関数の形式:
select ts_period_detect( x, y, minPeriod, maxPeriod)
次の表に、関数のパラメーターを示します。
パラメーター説明
xタイムシーケンス。 時間内のポイントは、横軸に沿って昇順にソートされます。 各時点はUNIXタイムスタンプです。 単位:秒。
y特定の時点での数値データのシーケンス。 なし。
minPeriod時系列データの全長に対する、期間内の時系列データの最小長の比率。 比率は、時系列曲線に基づいて推定されます。 パラメーター値は10進数である必要があります。 有効な値: (0.0, 1.0) 。
maxPeriod時系列データの全長に対する期間内の時系列の最大長の比率。 比率は、時系列曲線に基づいて推定されます。
重要 maxPeriodパラメーターの値は、minPeriodパラメーターの値よりも大きくする必要があります。 値は0.5未満である必要があります。 maxPeriodパラメーターを0.5より大きい値に設定すると、システムは自動的に値を0.5に変更します。
パラメーター値は10進数である必要があります。 有効な値: (0.0, 1.0) 。
  • 次のクエリ文が実行されます。
    * | select ts_period_detect(stamp, value, 0.2, 0.5) from ( select __time__ - __time__ % 120をstamp、avg(v) 値としてlog GROUP BYスタンプ注文からスタンプ)
  • 出力結果

    出力結果は配列型です。 結果には、UNIXタイムスタンプ、統計値 (平均トラフィックなど) 、およびステータスコードが含まれます。 次の図の赤い丸は、値が1.0のステータスコードを表しています。 以下の図にテスト結果を示します。

    次の図の2つの連続する赤い円の間の斜線部分は、期間を表します。 各周期のカーブは同じになる傾向があります。

    出力結果

ts_period_classify

関数の形式:
ts_period_classify( stampvalueinstanceName) を選択します。
次の表に、関数のパラメーターを示します。
パラメーター説明
スタンプタイムシーケンス。 時間内のポイントは、横軸に沿って昇順にソートされます。 各時点はUINXタイムスタンプです。 単位:秒。
value特定の時点での数値データのシーケンス。 なし。
instanceName時系列カーブの名前。 なし。
例:
  • 次のクエリ文が実行されます。
    * およびh : nu2h05202.nu8 | ログからts_period_classify (スタンプ、値、名前) を選択
  • レスポンス出力結果
表示项目一覧を次の表に示します。
表示項目説明
line_name時系列カーブの名前。
prob時系列曲線上の値の総数に対するプライマリ期間内の値の数の比率。 有効な値: [0, 1] テスト用に値を0.15に設定できます。
type時系列曲線のタイプ。 有効な値: -1、-2、および0。
  • 値-1は、時系列曲線の長さが短すぎる (64ポイント未満) ことを示します。
  • 値 − 2は、時系列曲線が高い故障率 (20% より高い) を有することを示す。
  • 値0は、時系列曲線が周期的であることを示す。