

慎重に検討した結果、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)」を参照してください。

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

# 例 : ストリーム上のホットスポットの検出 (HOTSPOTS 関数)
<a name="app-hotspots-detection"></a>

Amazon Kinesis Data Analytics は、データの相対的に高密度なリージョンを検索してその情報を返す `HOTSPOTS` 関数を提供しています。詳細については、「Amazon Managed Service for Apache Flink SQL リファレンス」の「[HOTSPOTS](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sqlrf-hotspots.html)」を参照してください。

この実習では、アプリケーションのストリーミングソースのホットスポットを見つけるアプリケーションコードを作成します。アプリケーションをセットアップするには、以下のステップを実行します。

1. **ストリーミングソースのセットアップ** – Kinesis ストリームをセットアップして、次のようにサンプル座標データを書き込みます。

   ```
   {"x": 7.921782426109737, "y": 8.746265312709893, "is_hot": "N"}
   {"x": 0.722248626528026, "y": 4.648868803193405, "is_hot": "Y"}
   ```

   この例では、ストリームに入力するための Python スクリプトを提供しています。`x` および `y` 値はランダムに生成され、一部のレコードは特定の場所の周りにクラスター化されます。

   スクリプトがホットスポットの一部として意図的に値を生成した場合、`is_hot` フィールドはインジケータとして提供されます。これは、ホットスポット検出関数が正常に動作しているかどうかを評価するのに役立ちます。

1. **アプリケーションの作成** – AWS マネジメントコンソールを使用して Kinesis Data Analytics アプリケーションを作成します。ストリーミングソースをアプリケーション内ストリーム (`SOURCE_SQL_STREAM_001`) にマッピングして、アプリケーション入力を設定します。アプリケーションが起動すると、Kinesis Data Analytics は継続的にストリーミングソースを読み取り、アプリケーション内ストリームにレコードを挿入します。

   この演習では、アプリケーションに次のコードを使用します。

   ```
   CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
       "x" DOUBLE, 
       "y" DOUBLE, 
       "is_hot" VARCHAR(4),
       HOTSPOTS_RESULT VARCHAR(10000)
   ); 
   CREATE OR REPLACE PUMP "STREAM_PUMP" AS 
       INSERT INTO "DESTINATION_SQL_STREAM" 
       SELECT "x", "y", "is_hot", "HOTSPOTS_RESULT" 
       FROM TABLE (
           HOTSPOTS(   
               CURSOR(SELECT STREAM "x", "y", "is_hot" FROM "SOURCE_SQL_STREAM_001"), 
               1000, 
               0.2, 
               17)
       );
   ```

   コードは `SOURCE_SQL_STREAM_001` の行を読み取り、重要なホットスポットを分析し、結果のデータを別のアプリケーション内ストリーム (`DESTINATION_SQL_STREAM`) に書き込みます。ポンプを使用して、アプリケーション内ストリームに行を挿入します。詳細については、「[アプリケーション内ストリームとポンプ](streams-pumps.md)」を参照してください。

1. **出力の設定** – アプリケーションから別の Kinesis データストリームである外部送信先にデータを送信するように、アプリケーション出力を設定します。ホットスポットのスコアを確認し、ホットスポットが発生したことを示すスコア (およびアラートが必要なスコア) を判断します。 AWS Lambda 関数を使用して、ホットスポット情報をさらに処理し、アラートを設定できます。

1. **出力を確認する** – この例には、出力ストリームからデータを読み込んでグラフィカルに表示する JavaScript アプリケーションが含まれているので、アプリケーションが生成するホットスポットをリアルタイムで表示できます。



この実習では、米国西部 (オレゴン) (`us-west-2`) を使用して、これらのストリームとアプリケーションを作成します。他のリージョンも使用する場合は、それに応じてコードを更新してください。

**Topics**
+ [ステップ 1: 入力ストリームと出力ストリームを作成する](app-hotspots-prepare.md)
+ [ステップ 2: Kinesis Data Analytics アプリケーションを作成する](app-hotspot-create-app.md)
+ [ステップ 3: アプリケーション出力を設定する](app-hotspots-create-ka-app-config-destination.md)
+ [ステップ 4: アプリケーション出力を検証する](app-hotspots-verify-output.md)