スライディング ウィンドウ関数を使用すると、 SLIDE BY
句をTIMESERIES
句と組み合わせてグラフを作成できます。これにより、互いに重なり合う時間「ウィンドウ」でデータを収集できます。
ヒント
高度な信号設定の状態で UI を介してスライディング ウィンドウを使用することもできます。
例えば、下の画像では、クエリが5分間のウィンドウでデータを収集しています。ウィンドウ"は" を1分ずつスライドさせています。各ウィンドウは、前のウィンドウと4分ずつ重なっています。
5 分間のウィンドウと 1 分間の"スライド"
スライディング ウィンドウとは対照的に、「タンブリング」または「カスケード」ウィンドウは重なりません。 たとえば、このTIMESERIES 3 minutes
NRQL クエリでは、ウィンドウの長さは 3 分で、測定間隔が重複することなく、それぞれのウィンドウがもう一方の終了時に始まります。
オーバーラップしない3分間のウィンドウ"スライド".
スライドウィンドウを使用する場合
スライディング ウィンドウは、「尖った」チャートを滑らかにする必要がある場合に役立ちます。 スライディング ウィンドウを使用すると、短期間で変化が大きい折れ線グラフを滑らかにすることができます。 これは、ローリング集計 (ローリング平均など) が狭い時間枠からの集計よりも重要な場合に最も役立ちます。
下の例では、データが1分ごとに大きく変化しているため、1分足のタンブリングウィンドウチャートでは、高い山と低い谷が多く見られます。
SLIDE BY 句を含まない TIMESERIES クエリ
ただし、この例では、幅 5 分のTIMESERIES
ウィンドウが 1 分のSLIDE BY
間隔を使用して平滑化されています。クエリは同様のデータを返しますが、より滑らかなグラフを作成します。
SLIDE BY 句を含む TIMESERIES クエリ
SLIDE BY
構文
SLIDE BY
句の有効な NRQL 構文は、以下の形式に従います。
SELECT ... TIMESERIES integer1 units SLIDE BY integer2 units
integer1
はスライディング ウィンドウの幅を指定し、 integer2
はSLIDE BY
間隔を指定します。units
は、 second
、 minute
、 hour
、またはday
などの時間単位です。すべての標準 NRQL 時間単位が受け入れられます。
以下は、1 分のSLIDE BY
間隔で 5 分のTIMESERIES
ウィンドウを示す実際の例です。
SELECT average(duration) from Transaction TIMESERIES 5 minutes SLIDE BY 1 minute
ヒント
SLIDE BY
と組み合わせると、 TIMESERIES
はAUTO
またはMAX
をサポートしません。TIMESERIES
値は、整数の時間単位値でなければなりません。つまり、 SLIDE BY AUTO
またはSLIDE BY MAX
は機能しますが、 TIMESERIES AUTO
またはTIMESERIES MAX
の後にSLIDE BY
とMAX
、 AUTO
、または特定の整数時間単位を指定することはサポートされていません。
PromQLスタイルのクエリからの翻訳
該当する場合、PromQL スタイルのクエリは NRQL スライディング ウィンドウ クエリに変換されます。 たとえば、PromQL スタイルのクエリが過去 60 分間にrate(request_count[5m])
を使用し、1 分間のウィンドウが重複している場合、そのクエリは NRQL にどのように変換されるかを次に示します。
SELECT rate(sum(request_count), 1 SECONDS) FROM Metric SINCE 3600 SECONDS AGO UNTIL NOW FACET dimensions() LIMIT 100 TIMESERIES 300000 SLIDE BY 60000
変換出力では、デフォルトのミリ秒単位がTIMESERIES
} 句とSLIDE BY
句に使用されます。TIMESERIES
の場合、300000 ミリ秒は 300 秒または 5 分であり、5 分のウィンドウ サイズを指定します。SLIDE BY
の場合、60000 ミリ秒は 60 秒で、スライド間隔を 1 分に指定します。
MAX
でSLIDE BY
を使用し、 AUTO
以下の例に示すように、 SLIDE BY
をMAX
およびAUTO
引数と組み合わせて、クエリ結果をさらに調整できます。
SELECT average(duration) FROM Transaction TIMESERIES 5 minutes SLIDE BY MAX
SELECT average(duration) FROM Transaction TIMESERIES 5 minutes SLIDE BY AUTO
ヒント
AUTO
またはMAX
によって決定されるSLIDE BY
値は、ウィンドウ サイズよりも大きなステップ間隔を生成する可能性があり、ギャップや予期しない結果として表示されます。クエリ結果でこれらの問題が発生した場合は、ステップ間隔がウィンドウ サイズを超えているSLIDE BY
のインスタンスをチェックすることを検討してください。