窗口式查询 - SQL适用于应用程序的 Amazon Kinesis Data Analytics 开发者指南

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

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

窗口式查询

对应用程序内部流连续执行应用程序代码中的 SQL 查询。应用程序内部流表示通过您的应用程序持续流动的无边界数据。因此,要从该连续更新输入获取结果集,通常可以使用根据时间或行定义的窗口来限制查询。这些查询也称为窗口式 SQL

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

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

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

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

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

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