

经过仔细考虑，我们决定停用适用于 SQL 应用程序的 Amazon Kinesis Data Analytics：

1. 从 **2025年9月1日起，**我们将不再为适用于SQL应用程序的Amazon Kinesis Data Analytics Data Analytics提供任何错误修复，因为鉴于即将停产，我们对其的支持将有限。

2. 从 **2025 年 10 月 15 日**起，您将无法为 SQL 应用程序创建新的 Kinesis Data Analytics。

3. 从 **2026 年 1 月 27 日**起，我们将删除您的应用程序。您将无法启动或操作 Amazon Kinesis Data Analytics for SQL 应用程序。从那时起，将不再提供对 Amazon Kinesis Data Analytics for SQL 的支持。有关更多信息，请参阅 [Amazon Kinesis Data Analytics for SQL 应用程序停用](discontinuation.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 步骤 2：创建分析应用程序
<a name="app-anom-with-exp-create-app"></a>

在本节中，您将创建一个 Amazon Kinesis Data Analytics 应用程序，然后将其配置为使用在 [步骤 1：准备数据](app-anomaly-with-ex-prepare.md) 中作为流式传输源创建的 Kinesis 数据流。然后，运行使用 `RANDOM_CUT_FOREST_WITH_EXPLANATION` 函数的应用程序代码。

**创建应用程序**

1. [在 /kinesis 上打开 Kinesis 控制台。https://console.aws.amazon.com](https://console.amazonaws.cn/kinesis)

1. 在导航窗格中选择 **Data Analytics (数据分析)**，然后选择**创建应用程序**。

1. 提供应用程序名称和描述 (可选)，并选择 **Create application**。

1. 选择 **Connect 流式传输数据**，然后**ExampleInputStream**从列表中进行选择。

1. 选择 **Discover schema**，并确保 `Systolic` 和 `Diastolic` 显示为 `INTEGER` 列。如果二者为另一种类型，则选择 **Edit schema**，并将 `INTEGER` 类型分配给二者。

1. 在 **Real time analytics** 下，选择 **Go to SQL editor**。出现提示时，选择运行您的应用程序。

1. 将以下代码粘贴到 SQL 编辑器中，然后选择 **Save and run SQL**。

   ```
   --Creates a temporary stream.
   CREATE OR REPLACE STREAM "TEMP_STREAM" (
   	        "Systolic"                  INTEGER,
   	        "Diastolic"                 INTEGER,
   	        "BloodPressureLevel"        varchar(20),
   	        "ANOMALY_SCORE"             DOUBLE,
   	        "ANOMALY_EXPLANATION"       varchar(512));
   
   --Creates another stream for application output.	        
   CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
   	        "Systolic"                  INTEGER,
   	        "Diastolic"                 INTEGER,
   	        "BloodPressureLevel"        varchar(20),
   	        "ANOMALY_SCORE"             DOUBLE,
   	        "ANOMALY_EXPLANATION"       varchar(512));
   
   -- Compute an anomaly score with explanation for each record in the input stream
   -- using RANDOM_CUT_FOREST_WITH_EXPLANATION
   CREATE OR REPLACE PUMP "STREAM_PUMP" AS 
      INSERT INTO "TEMP_STREAM"
         SELECT STREAM "Systolic", "Diastolic", "BloodPressureLevel", ANOMALY_SCORE, ANOMALY_EXPLANATION 
         FROM TABLE(RANDOM_CUT_FOREST_WITH_EXPLANATION(
                 CURSOR(SELECT STREAM * FROM "SOURCE_SQL_STREAM_001"), 100, 256, 100000, 1, true));
   
   -- Sort records by descending anomaly score, insert into output stream
   CREATE OR REPLACE PUMP "OUTPUT_PUMP" AS 
      INSERT INTO "DESTINATION_SQL_STREAM"
         SELECT STREAM * FROM "TEMP_STREAM"
         ORDER BY FLOOR("TEMP_STREAM".ROWTIME TO SECOND), ANOMALY_SCORE DESC;
   ```

**下一个步骤**  
[步骤 3：检查结果](examine-results-with-exp.md)