步骤 3.3:添加实时分析(添加应用程序代码) - 适用于 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 不仅操作简单,还具有高级分析功能,使您能够在几分钟内构建复杂的流处理应用程序。

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

步骤 3.3:添加实时分析(添加应用程序代码)

您可以针对应用程序内部流编写您自己的 SQL 查询,但在下一步中,您将使用一个提供示例代码的模板。

  1. 在应用程序中心页面上,选择 Go to SQL editor

    
                            具有 Go to SQL editor (转到 SQL 编辑器) 按钮的示例应用程序页面的屏幕截图。
  2. 在 “你想开始跑步吗” ExampleApp “? 对话框中,选择是,启动应用程序

    控制台会发送启动应用程序(请参阅StartApplication)的请求,然后会显示 SQL 编辑器页面。

  3. 控制台将打开 SQL 编辑器页面。查看该页面,其中包含多个按钮(Add SQL from templatesSave and run SQL)和不同选项卡。

  4. 在 SQL 编辑器中,选择 Add SQL from templates

  5. 从可用模板列表中,选择 Continuous filter。示例代码读取来自一个应用程序内部流的数据 (WHERE 子句将筛选行),并将数据插入到另一个应用程序内部流,如下所示:

    • 它将创建应用程序内部流 DESTINATION_SQL_STREAM

    • 它将创建泵 STREAM_PUMP,并使用此泵从 SOURCE_SQL_STREAM_001 中选择行,并将这些行插入到 DESTINATION_SQL_STREAM

  6. 选择 Add this SQL to editor

  7. 按如下方式测试应用程序代码:

    请记住,您已启动应用程序(状态为 RUNNING)。因此,Amazon Kinesis Data Analytics 已在持续从流式传输源中读取数据,并将行添加到应用程序内部流 SOURCE_SQL_STREAM_001 中。

    1. 在 SQL 编辑器中,选择 Save and run SQL。控制台首先会发送保存应用程序代码的更新请求。然后,代码会持续执行。

    2. 您可以在 Real-time analytics 选项卡中查看结果。

      
                                    在 Real-time analytics (实时分析) 选项卡中显示结果的 SQL 编辑器的屏幕截图。

      SQL 编辑器包含以下选项卡:

      • Source data 选项卡显示映射到流式传输源的应用程序内部输入流。选择应用程序内部流,您可以看到数据不断传入。请注意应用程序内部输入流中未在输入配置中指定的其他列。其中包括以下时间戳列:

         

        • ROWTIME - 应用程序内部流中的每一行都具有一个名为 ROWTIME 的特殊列。此列是 Amazon Kinesis Data Analytics 在首个应用程序内流 (映射到流式源的应用程序内输入流) 中插入行的时间戳。

           

        • Approximate_Arrival_Time - 每个 Kinesis Data Analytics 记录都包含一个名为 Approximate_Arrival_Time 的值。此值是流式源成功接收和存储该记录时设置的大致到达时间戳。从流式传输源中读取记录时,Kinesis Data Analytics 会将该列提取到应用程序内部输入流中。

        这些时间戳值在基于时间的窗口式查询中非常有用。有关更多信息,请参阅 窗口式查询

         

      • Real-time analytics 选项卡显示应用程序代码创建的所有其他应用程序内部流。它还包括错误流。Kinesis Data Analytics 会将它无法处理的任何行发送到错误流。有关更多信息,请参阅 错误处理

         

        选择 DESTINATION_SQL_STREAM 可查看应用程序代码插入的行。请注意您的应用程序代码未创建的其他列。这些列包括 ROWTIME 时间戳列。Kinesis Data Analytics 只需从源代码中复制这些值即可 (SOURCE_SQL_STREAM_001)。

         

      • 目标 选项卡显示 Kinesis Data Analytics 将查询结果写入到的外部目标。您尚未为应用程序输出配置任何外部目标。

下一个步骤

步骤 3.4:(可选) 更新应用程序代码