

经过仔细考虑，我们决定停用适用于 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="streams-pumps"></a>

当您配置[应用程序输入](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html)时，您需要将一个流式传输源映射到已创建的应用程序内部流。数据从流式传输源持续流动到应用程序内部流。应用程序内部流类似于可使用 SQL 语句进行查询的表，但是，它之所以称为流是因为它表示连续的数据流。

**注意**  
不要将应用程序内部流与 Amazon Kinesis 数据流和 Firehose 传输流混淆。应用程序内部流仅存在于 Amazon Kinesis Data Analytics 应用程序环境中。Kinesis 数据流和 Firehose 传输流不依赖于您的应用程序而独立存在。您可以将它们配置为应用程序输入配置中的流式源，或者配置为输出配置中的一个目标。

您还可以根据需要创建更多的应用程序内部流来存储中间查询结果。创建应用程序内部流是一个两步过程。首先，创建应用程序内部流，然后将数据泵送到其中。例如，假设您应用程序的输入配置创建了名为 `INPUTSTREAM` 的应用程序内部流。在以下示例中，您将创建另一个流 (`TEMPSTREAM`)，然后从 `INPUTSTREAM` 将数据泵送到其中。

1. 按如下所示使用三列创建应用程序内部流 (`TEMPSTREAM`)：

   ```
   CREATE OR REPLACE STREAM "TEMPSTREAM" ( 
      "column1" BIGINT NOT NULL, 
      "column2" INTEGER, 
      "column3" VARCHAR(64));
   ```

   在引号内指定列名，输入时区分大小写。有关更多信息，请参阅* Amazon Kinesis Data Analytics SQL 参考*中的[标识符](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-identifiers.html)。

1. 使用数据泵将数据插入流。数据泵是连续运行的插入查询，它将数据从一个应用程序内部流插入另一个应用程序内部流。以下语句创建一个数据泵 (`SAMPLEPUMP`)，然后通过从另一个流 (`INPUTSTREAM`) 选择记录，将数据插入 `TEMPSTREAM`。

   ```
   CREATE OR REPLACE PUMP "SAMPLEPUMP" AS 
   INSERT INTO "TEMPSTREAM" ("column1", 
                             "column2", 
                             "column3") 
   SELECT STREAM inputcolumn1, 
                 inputcolumn2, 
                 inputcolumn3
   FROM "INPUTSTREAM";
   ```

您可以使多个写入器插入一个应用程序内部流，可以从该流选择多个读取器。可以将应用程序内流视为实现 publish/subscribe 消息传递范式。在此范式中，数据行（包括创建时和接收时）可以通过一串关联的流式 SQL 语句进行处理、解释和转发，无需存储在传统的 RDBMS 中。

在创建应用程序内部流后，您可以执行普通 SQL 查询。

**注意**  
查询流时，会使用基于行或基于时间的窗口绑定大多数 SQL 语句。有关更多信息，请参阅 [窗口式查询](windowed-sql.md)。

您还可以联接流。有关联接流的示例，请参阅[流数据操作：流联接](stream-joins-concepts.md)。