弗林克的标点与周期性水印



我对apache flink中的标点与周期性水印有点混乱。

假设我有一个带有传入数据的datastream和数据式类型类型的POJO的时间戳字段,始终是按上升顺序。

所以它会像[{id: 1, ts: 12}, {id: 2, ts: 13}, ... , {id: 5, ts: 233445}]

我想知道在这种情况下要使用哪种类型的水印分配器。我应该使用AscendingTimestampExtractor..或创建自定义punctuated吗?

我从未遇到过在生产中需要标点的水印的情况,但是有时我在尝试时会使用它,并且想明确控制何时将插入水印进入流。例如,在每个事件之后放水标记是一个坏主意,因为涉及的头顶很容易使用标点的水印,这很容易使计时器在溪流中的特定点发射。在生产中,我不会这样做,虽然需要在测试中进行这种控制水平,但是有更好的方法可以做到这一点(例如,使用某种测试安全带)。

标点水印后的设计意图是在溪流中有特殊事件的情况下用作水印的信号。例如,上游的工作可能已经为溪流提供了水印,并将其写给了Kafka,其中包括水印,或者某些事件来自带有值得信赖的时钟的设备,而另一些事件则没有。

相关内容

  • 没有找到相关文章

最新更新