应用程序内部流和数据泵 - Amazon Kinesis Data Analytics for SQL 应用程序开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

应用程序内部流和数据泵

当您配置应用程序输入时,您需要将一个流式传输源映射到已创建的应用程序内部流。数据从流式传输源持续流动到应用程序内部流。应用程序内部流类似于可使用 SQL 语句进行查询的表,但是,它之所以称为流是因为它表示连续的数据流。

注意

不要将应用程序内部流与 Amazon Kinesis 数据流和 Kinesis Data Firehose 传输流混淆。应用程序内部流只存在于 Amazon Kinesis Data Analytics 应用程序上下文中。Kinesis 数据流和 Kinesis Data 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参考.

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

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

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

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

注意

查询流时,会使用基于行或基于时间的窗口绑定大多数 SQL 语句。有关更多信息,请参阅 窗口式查询。)

您还可以联接流。有关联接流的示例,请参阅流数据操作: 流联接