スライディング ウィンドウ関数を使用すると、 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 クエリ
価格
Advanced および Core 計算料金プランをご利用の場合、スライディング ウィンドウ関数を使用して単価を積算に変換すると、追加の CCU 料金が発生する場合があります。 この方法は変動を平滑化することでデータ分析を強化しますが、重複するクエリ ウィンドウ内に存在するイベントは、表示されるウィンドウごとに 1 回ずつ、複数回カウントされるため、他の方法よりもコストが増加する可能性があります。つまり、同じイベントを含む異なるウィンドウが重複しているため、同じイベントが複数回クエリされる可能性があります。
たとえば、10 分間の時系列ウィンドウ期間に 1 つのイベントがあり、スライドバイ間隔が 2 分の場合、イベントは 5 つの重複するウィンドウに分割されます。 一致したイベントの繰り返しは、時系列ウィンドウの期間をスライドバイ間隔で割ることによって計算されます。

Advanced または Core のどちらの料金プランをご利用かを確認するには、注文を参照してください。
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
のインスタンスをチェックすることを検討してください。