

经过仔细考虑，我们决定停用适用于 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)。

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

# 应用程序代码
<a name="how-it-works-app-code"></a>

应用程序代码是处理输入和生产输出的一系列 SQL 语句。这些 SQL 语句运行于应用程序内部流和引用表中。有关更多信息，请参阅 [Amazon Kinesis Data Analytics for SQL 应用程序：工作原理](how-it-works.md)。

有关 Kinesis Data Analytics 支持的 SQL 语言元素的信息，请参阅[ Amazon Kinesis Data Analytics SQL 参考](https://docs.amazonaws.cn/kinesisanalytics/latest/sqlref/analytics-sql-reference.html)。

在关系数据库中，可使用 INSERT 语句添加记录和使用 SELECT 语句查询数据来处理表。在 Amazon Kinesis Data Analytics 中，您可以处理流。可以编写 SQL 语句来查询这些流。查询一个应用程序内部流所获得的结果始终将发送到另一个应用程序内部流。在执行复杂分析时，您可以创建多个应用程序内部流来保存中间分析的结果。最后，将应用程序输出配置为将最终分析的结果（来自一个或多个应用程序内部流）保存到外部目标。概括来说，以下是用于编写应用程序代码的典型模式：
+ SELECT 语句始终用于 INSERT 语句的上下文中。即，在选择行时，您将结果插入另一个应用程序内部流中。
+ INSERT 语句始终用于数据泵的上下文中。即，您使用数据泵对应用程序内部流进行写入。



以下示例应用程序代码读取一个应用程序内部流 (SOURCE\$1SQL\$1STREAM\$1001) 中的记录，并将其写入另一个应用程序内部流 (DESTINATION\$1SQL\$1STREAM)。您可以使用数据泵将记录插入应用程序内部流中，如下所示：

```
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (ticker_symbol VARCHAR(4), 
                                                   change DOUBLE, 
                                                   price DOUBLE);
-- Create a pump and insert into output stream.
CREATE OR REPLACE PUMP "STREAM_PUMP" AS 

  INSERT INTO "DESTINATION_SQL_STREAM" 
    SELECT STREAM ticker_symbol, change,price
    FROM   "SOURCE_SQL_STREAM_001";
```

**注意**  
为流名称和列名称指定的标识符需遵循标准 SQL 约定。例如，如果您为标识符加上引号，则可使标识符区分大小写。如果没有这样做，则标识符将默认为大写。有关标识符的更多信息，请参阅 *Amazon Managed Service for Apache Flink SQL* 参考中的[标识符](https://docs.amazonaws.cn/kinesisanalytics/latest/sqlref/sql-reference-identifiers.html)。

您的应用程序代码可包含多个 SQL 语句。例如：
+ 您可以按顺序编写 SQL 查询，其中一个 SQL 语句的结果将馈送到下一个 SQL 语句。
+ 您也可以编写彼此单独运行的 SQL 查询。例如，您可以编写两个 SQL 语句，它们查询同一应用程序内部流，但将输出发送到不同的应用程序内部流。随后，您可以单独查询新创建的应用程序内部流。

您可以创建应用程序内部流来保存中间结果。可使用数据泵将数据插入应用程序内部流。有关更多信息，请参阅 [应用程序内部流和数据泵](streams-pumps.md)。

如果您添加一个应用程序内部引用表，则可编写 SQL 以联接应用程序内部流和引用表中的数据。有关更多信息，请参阅 [示例：在 应用程序中添加引用数据](app-add-reference-data.md)。

根据应用程序的输出配置，Amazon Kinesis Data Analytics 将特定应用程序内部流中的数据写入到外部目标中。确保您的应用程序代码写入输出配置中指定的应用程序内部流。

有关更多信息，请参阅以下主题：
+  [流式 SQL 概念](streaming-sql-concepts.md)
+ [Amazon Kinesis Data Analytics SQL 参考](https://docs.amazonaws.cn/kinesisanalytics/latest/sqlref/analytics-sql-reference.html)