Apache flink 事件时间和水印你能解释一下吗

Apache flink 事件时间和水印你能解释一下吗,apache-flink,Apache Flink,我是弗林克的新手,正在努力学习 你能解释一下什么是水印,它解决了什么问题吗?我不清楚这个例子 是否只需要事件时间(无序处理)?水印的目的是定义基于时间的窗口何时启动 水印允许这样一种想法,即事件可能稍微有点无序,因此从中“提取”的时间可能与您希望绘制触发该窗口的“低水位”标记的位置存在一定程度的差异。例如,如果您的数据是从不同的源生成的,这些源在到达之前具有不同的延迟(考虑分布式日志记录的情况)。但是,如果您的数据保证只有递增的时间戳,例如,如果它是从传感器读数生成的,则可能不需要这样做 所以,

我是弗林克的新手,正在努力学习

你能解释一下什么是水印,它解决了什么问题吗?我不清楚这个例子


是否只需要事件时间(无序处理)?

水印的目的是定义基于时间的窗口何时启动

水印允许这样一种想法,即事件可能稍微有点无序,因此从中“提取”的时间可能与您希望绘制触发该窗口的“低水位”标记的位置存在一定程度的差异。例如,如果您的数据是从不同的源生成的,这些源在到达之前具有不同的延迟(考虑分布式日志记录的情况)。但是,如果您的数据保证只有递增的时间戳,例如,如果它是从传感器读数生成的,则可能不需要这样做


所以,这和其中一些选项是齐头并进的,这并不奇怪

在你的链接后面已经有了一个解释,它解释了什么是水印,以及它们解决了什么问题。除非你问一个更具体的问题,而先前的解释没有给出答案(理想情况下,谈谈先前解释中有意义和没有意义的具体方面,即“我理解水印为事件时间设定了界限,但为什么这很重要?”),有人怎么知道他们的新解释会比旧解释对你更有意义呢?我留下了一个答案,但我同意@CharlesDuffy的说法,如果有什么问题的话,我的答案可能会让事情变得不那么清楚,因为弗林克文件试图解释他们正在做的事情。@zivroz我相信你可以找到足够好的数据解释工匠博客。对我来说,从中更容易理解水印的概念,并与窗口处理相关,这本质上就是流处理在Flink中的工作原理。