我看到的所有窗口示例都涉及到定义窗口。e、 例如,翻滚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 抱歉,如果不正确
我对水印是如何连续的和基于事件时间的感到特别困惑。在我的例子中,我有事件时间(timestamp)和事件时间(period)。如果我正确地理解了这一点,那么我的情况曲线(如上面的文章所示)看起来像一个阶跃函数?
我还没有选择要使用的流处理框架。我的处境对他们有意义吗?这需要很多自定义逻辑吗?有什么框架能让这更简单吗?这是一个已知的名字问题吗?
感谢您的帮助。
1条答案
按热度按时间cygmwpex1#
在flink中,实现这一点的一种方法是使用聚合的处理时间窗口。然后使用richmap函数来维护窗口前的累计计数。最后,您将聚合放入长期数据存储
你可以看看我的博客,在那里我们做了类似的事情。请看一节
A peek into Milestone Two