我看到的所有窗口示例都涉及定义窗口。 例如,翻滚的 1 分钟窗口或滑动 1 分钟窗口等。在我的情况下,我的所有数据都有时间戳事件,但这不是主要兴趣。
我的所有数据还有一个我无法控制的关联周期。就我而言,这是所需的窗口。这些时期是基于时间的,但它们大致从 2-3 周不等。
所以,如果我只看一个值流的周期可能看起来像这样(几乎所有来自当前时期的东西,一些来自当前时期早期的最后一个时期的落伍者),
... PERIOD 6, PERIOD 5, PERIOD 6, PERIOD 6, PERIOD 6, PERIOD 6, ...
我不清楚如何处理水印/触发器/等情况?如果我正确理解了所有这些术语,我会想到这样的事情:PERIOD N
的水印发生在处理第一个带有PERIOD (N+1)
的事件时。PERIOD N
窗口的延迟范围(对于垃圾回收状态)可以是第一个事件的时间戳后 1-2 天,带有PERIOD (N+1)
。我希望触发器accumulating
并且每 5 分钟一次(理想情况下,我希望此触发器持续时间增加:在窗口开始时更频繁,随着时间的推移越来越少)。
我正在尝试使用本文中的术语,如果不正确,https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-102 抱歉
我对水印似乎是连续的并且基于事件时间感到特别困惑。就我而言,我同时拥有事件时间(时间戳)和事件时间(时间段)。如果我理解正确,我的情况曲线(如上一篇文章所示)看起来像阶梯函数?
我还没有选择要使用的流处理框架。我的情况对他们中的任何一个有意义吗?这需要很多自定义逻辑吗?是否有任何框架使这更容易?这是名称的已知问题吗?
任何帮助,不胜感激。
在 Flink 中,实现此目的的一种方法是使用处理时间窗口进行聚合。然后,使用丰富的映射函数来维护窗口之前的累积计数。最后,您将聚合下沉到长期数据存储中
你可以看看我的博客文章,我们做了类似的事情。看看第A peek into Milestone Two
节