

慎重に検討した結果、Amazon Kinesis Data Analytics for SQL アプリケーションを中止することにしました。

1. **2025 年 9 月 1** 日以降、Amazon Kinesis Data Analytics for SQL アプリケーションのバグ修正は提供されません。これは、今後の廃止によりサポートが制限されるためです。

2. **2025 年 10 月 15** 日以降、新しい Kinesis Data Analytics for SQL アプリケーションを作成することはできません。

3. **2026 年 1 月 27 日**以降、アプリケーションは削除されます。Amazon Kinesis Data Analytics for SQL アプリケーションを起動することも操作することもできなくなります。これ以降、Amazon Kinesis Data Analytics for SQL のサポートは終了します。詳細については、「[Amazon Kinesis Data Analytics for SQL アプリケーションのサポート終了](discontinuation.md)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# タンブリングウィンドウ (GROUP BY を使用した集計)
<a name="tumbling-window-concepts"></a>

ウィンドウクエリが各ウィンドウを重複しない方式で処理する場合、ウィンドウは *タンブリングウィンドウ*と呼ばれます。この場合、アプリケーション内ストリームの各レコードは特定のウィンドウに属します。これは 1 回 (そのレコードが属するウィンドウをクエリが処理するとき) のみ処理されます。

![\[Timeline showing non-overlapping windows processing data streams at distinct time intervals.\]](http://docs.aws.amazon.com/ja_jp/kinesisanalytics/latest/dev/images/window-tumbling-20.png)


たとえば、`GROUP BY` 句を使用した集計クエリは、タンブリングウィンドウの行を処理します。[「使用開始」実習](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/get-started-exercise.html)のデモストリームは、アプリケーションのアプリケーション内ストリーム `SOURCE_SQL_STREAM_001` にマッピングされた株価データを受信します。このストリームには、次のスキーマがあります。

```
(TICKER_SYMBOL VARCHAR(4), 
 SECTOR varchar(16), 
 CHANGE REAL, 
 PRICE REAL)
```

アプリケーションコードで、1 分のウィンドウに対して各ティッカーでの合計 (最低、最高) 価格を検索するとします。以下のクエリを使用できます。

```
SELECT STREAM ROWTIME,
              Ticker_Symbol,
              MIN(Price) AS Price,
              MAX(Price) AS Price
FROM     "SOURCE_SQL_STREAM_001"
GROUP BY Ticker_Symbol, 
         STEP("SOURCE_SQL_STREAM_001".ROWTIME BY INTERVAL '60' SECOND);
```

上記は、時間ベースのウィンドウクエリの例です。クエリは、`ROWTIME` 値でレコードをグループ化します。分単位でレポートするために、`STEP` 関数は `ROWTIME` 値を直近の分に四捨五入します。

**注記**  
また、`FLOOR` 関数を使用してレコードをウィンドウにグループ化することもできます。ただし、`FLOOR` は時間値を時間単位 (時間、分、秒など) に丸めることのみできます。`STEP` は、値を任意の間隔 (たとえば 30 秒など) に丸めることができるため、レコードをタンブリングウィンドウにグループ化する場合に使用することをお勧めします。

このクエリは、重複しない (タンブリング) ウィンドウの例です。`GROUP BY` 句によって、レコードが 1 分のウィンドウにグループ化されます。各レコードは特定のウィンドウに属します (重複しない)。クエリでは、1 分ごとに 1 つの出力レコードが発行され、特定の分にレコードされた最低/最高ティッカー価格が提供されます。このタイプのクエリは、入力データストリームから定期的にレポートを生成する場合に便利です。この例では、1 分ごとにレポートが生成されます。

**クエリをテストするには**

1. [「使用開始」実習](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/get-started-exercise.html)に従ってアプリケーションをセットアップします。

1. アプリケーションコード内の `SELECT` ステートメントを前述の `SELECT` クエリに置き換えます。アプリケーションコードは次のようになります。

   ```
   CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
                                      ticker_symbol VARCHAR(4), 
                                      Min_Price     DOUBLE, 
                                      Max_Price     DOUBLE);
   -- CREATE OR REPLACE PUMP to insert into output
   CREATE OR REPLACE PUMP "STREAM_PUMP" AS 
     INSERT INTO "DESTINATION_SQL_STREAM" 
       SELECT STREAM Ticker_Symbol,
                     MIN(Price) AS Min_Price,
                     MAX(Price) AS Max_Price
       FROM    "SOURCE_SQL_STREAM_001"
       GROUP BY Ticker_Symbol, 
                STEP("SOURCE_SQL_STREAM_001".ROWTIME BY INTERVAL '60' SECOND);
   ```