我们正在构建一个流处理管道,以使用 Flink v1.11 和事件时间特性来处理 Kinesis 消息。在定义源水印策略时,在官方文档中,我遇到了两种开箱即用的水印策略;forBoundedOutOfOrderness 和 forMonotonousTimestamps。但是根据我对上述内容的理解,我认为这些不适合我的用例。以下是我的用例的详细信息:
来自输入流的数据:(包含每分钟时间戳的数据)
{11:00, Data1}
{11:01, Data2}
{11:00, Data3}
{11:00, Data4}
{11:01, Data5}
...
现在,我想在时间戳为 11:00 的第一个事件到达后正好 20 秒处理包含 [Data1, Data3, Data4] 的 11:00-11:01 的窗口(翻滚事件时间:1 分钟)。同样,11:01-11:02 包含 [Data2, Data5] 的下一个窗口需要在第一个时间戳为 11:01 的事件进来后 20s 执行。这种水印策略在 Flink 中是否可行?