应用程序代码 - 适用于 SQL 应用程序的 Amazon Kinesis Data Analytics 开发人员指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

对于新项目,建议您使用新的适用于 Apache Flink Studio 的托管服务,而不是使用适用于 SQL 应用程序的 Kinesis Data Analytics。Managed Service for Apache Flink Studio 不仅操作简单,还具有高级分析功能,使您能够在几分钟内构建复杂的流处理应用程序。

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

应用程序代码

应用程序代码是处理输入和生产输出的一系列 SQL 语句。这些 SQL 语句运行于应用程序内部流和引用表中。有关更多信息,请参阅 适用于 SQL 应用程序的 Amazon Kinesis Data Analytics:工作原理

有关 Kinesis Data Analytics 支持的 SQL 语言元素的信息,请参阅 Amazon Kinesis Data Analytics SQL 参考

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

  • SELECT 语句始终用于 INSERT 语句的上下文中。即,在选择行时,您将结果插入另一个应用程序内部流中。

  • INSERT 语句始终用于数据泵的上下文中。即,您使用数据泵对应用程序内部流进行写入。

以下示例应用程序代码读取一个应用程序内部流 (SOURCE_SQL_STREAM_001) 中的记录,并将其写入另一个应用程序内部流 (DESTINATION_SQL_STREAM)。您可以使用数据泵将记录插入应用程序内部流中,如下所示:

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 参考中的标识符

您的应用程序代码可包含多个 SQL 语句。例如:

  • 您可以按顺序编写 SQL 查询,其中一个 SQL 语句的结果将馈送到下一个 SQL 语句。

  • 您也可以编写彼此单独运行的 SQL 查询。例如,您可以编写两个 SQL 语句,它们查询同一应用程序内部流,但将输出发送到不同的应用程序内部流。随后,您可以单独查询新创建的应用程序内部流。

您可以创建应用程序内部流来保存中间结果。可使用数据泵将数据插入应用程序内部流。有关更多信息,请参阅 应用程序内部流和数据泵

如果您添加一个应用程序内部引用表,则可编写 SQL 以联接应用程序内部流和引用表中的数据。有关更多信息,请参阅 示例:在 应用程序中添加引用数据

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

有关更多信息,请参阅以下主题: