このトピックでは、異なる時間間隔に分布する時系列データの周期性を推定するために使用できる複数期間の推定関数について説明します。 このトピックでは、フーリエ変換 (FT) などの一連の演算を使用して周期性を抽出する方法についても説明します。
機能一覧
機能 | 説明 |
異なる時間間隔で分布する時系列データの周期性を推定します。 | |
FTを使用して、指定した時系列曲線の周期を計算します。 この関数は、周期曲線を識別するために使用できます。 |
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))' as stamp, avg(v) as value from log GROUP BY stamp order by stamp )
出力結果
出力結果は配列型です。 結果には、UNIXタイムスタンプ、統計値 (平均トラフィックなど) 、およびステータスコードが含まれます。 次の図の赤い丸は、値が1.0のステータスコードを表しています。 以下の図にテスト結果を示します。
次の図の2つの連続する赤い円の間の斜線部分は、期間を表します。 各周期のカーブは同じになる傾向があります。
ts_period_classify
関数の形式:
select ts_period_classify(stamp,value,instanceName)
次の表に、関数のパラメーターを示します。
パラメーター | 説明 | 値 |
スタンプ | タイムシーケンス。 時間内のポイントは、横軸に沿って昇順にソートされます。 | 各時点はUINXタイムスタンプです。 単位:秒。 |
value | 特定の時点での数値データのシーケンス。 | なし。 |
instanceName | 時系列カーブの名前。 | なし。 |
例:
次のクエリ文が実行されます。
* and h : nu2h05202.nu8 | select ts_period_classify(stamp, value, name) from log
レスポンス
表示项目一覧を次の表に示します。
表示項目 | 説明 |
line_name | 時系列カーブの名前。 |
prob | 時系列曲線上の値の総数に対するプライマリ期間内の値の数の比率。 有効な値: [0, 1] テスト用に値を0.15に設定できます。 |
type | 時系列曲線のタイプ。 有効な値: -1、-2、および0。
|