窗口式查询 - 适用于 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

对于基于时间的窗口式查询,需要以时间为单位指定窗口大小(例如,一分钟窗口)。这需要在应用程序内部流中有一个单调递增的时间戳列。(新行的时间戳大于或等于前一行。) Amazon Kinesis Data Analytics 为每个应用程序内部流提供名为 ROWTIME 的时间戳列。在指定基于时间的查询时,可以使用该列。对于您的应用程序,可以选择其他某个时间戳选项。有关更多信息,请参阅时间戳和 ROWTIME 列

对于基于行的窗口式查询,可以使用行数为单位指定窗口大小。

您可以根据应用程序需求指定查询以滚动窗口方式、滑动窗口方式还是交错窗口方式处理记录。Kinesis Data Analytics 支持以下窗口类型:

  • 交错窗口:一个使用基于时间的键控窗口聚合数据的查询,这种窗口在数据到达时打开。这些键允许多个重叠的窗口。这是使用基于时间的窗口聚合数据的推荐方法,因为与 Tumbling 窗口相比,Stagger Windows 可以减少延迟或 out-of-order 数据流量。

  • 滚动窗口:一个使用基于时间的不同窗口聚合数据的查询,这些窗口以固定时间间隔打开和关闭。

  • 滑动窗口:一个使用固定时间或行计数间隔连续聚合数据的查询。