当前位置: 首页 > 知识库问答 >
问题:

操作符实例的事件时间是否可能变得更短?

鲜于允晨
2023-03-14

从下面URL中的“并行流中的水印”一节中,我们知道“操作员的当前事件时间是其输入流事件时间的最小值”https://ci.apache.org/projects/flink/flink-docs-release-1.5/dev/event_time.html

现在我们以window(1)实例的事件时间为例,我们知道事件时间是14(min(29,14)),但是如果发生以下序列的水印事件会发生什么呢?

如果水印事件29在水印事件14之前到达窗口(1)会发生什么?

例如,假设水印事件29首先到达窗口(1)实例,由于水印事件14还没有到达,所以首先将窗口(1)实例的事件时间设置为29,然后假设水印事件14也到达窗口(1)实例,则将窗口(1)实例的事件时间设置为14?(如果是这样,则窗口(1)的事件时间将从29变为14,变小),也假设源(2)生成水印39后,到达窗口(1)实例,则窗口(1)实例的事件时间将设置为29或39?

共有1个答案

陈富
2023-03-14

最后,我也从源代码处得到了答案,正如David所说的“窗口的水印将保持在long.min_value直到两个输入流都有一个更大的值。”

https://github.com/apache/flink/blob/57b950796deebed46ae95f97152e09b2e2655de8/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operator/abstractstreamoperator.java

public void processWatermark1(Watermark mark) throws Exception {
input1Watermark = mark.getTimestamp();
long newMin = Math.min(input1Watermark, input2Watermark);
if (newMin > combinedWatermark) {
  combinedWatermark = newMin;
  processWatermark(new Watermark(combinedWatermark));
}
}

public void processWatermark2(Watermark mark) throws Exception {
input2Watermark = mark.getTimestamp();
long newMin = Math.min(input1Watermark, input2Watermark);
if (newMin > combinedWatermark) {
  combinedWatermark = newMin;
  processWatermark(new Watermark(combinedWatermark));
}
}
 类似资料:
  • 这可不是一个简单的话题。其中涉及了应用程序中的诸多领域,你可能想要同步 API 的响应,或者你想要处理其它类型的流,比如 UI 中的点击事件或键盘事件。 有大量的操作符以它们各自的方式来处理时间,比如 delay、 debounce、 throttle、 interval, 等等。 interval 这个操作符用来创建一个 Observable,基本上它所做的就是按固定的时间间隔提供值,函数签名如

  • 问题内容: 当用户编辑with 属性的内容时,我想运行一个函数。什么相当于一个事件? 我使用的是jQuery,因此首选使用jQuery的解决方案。谢谢! 问题答案: 我建议将侦听器附加到由editable元素触发的关键事件上,尽​​管您需要注意,并且在更改内容本身之前会触发事件。这不会涵盖更改内容的所有可能方法:用户还可以从“编辑”或上下文浏览器菜单中使用剪切,复制和粘贴,因此您可能也想处理和事件

  • 本文向大家介绍js操作滚动条事件实例,包括了js操作滚动条事件实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js操作滚动条事件的方法。分享给大家供大家参考。具体分析如下: 之前一直很纳闷,如何监视滚动条的事件,今天终于有点明白了。 下边代码,是监听滚动条只要移动,下方的返回顶部的div显示与隐藏的代码 注: t:滚动条距离top端的距离 t>0,即滚动条一旦滚动,立即执行if()语句

  • 本文向大家介绍Java对时间的简单操作实例,包括了Java对时间的简单操作实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java对时间的简单操作方法。分享给大家供大家参考。具体分析如下: 这里所用的Date指的是java.util.Date。 ps:使用java操作时间感觉真真蛋疼,还是我大C#舒服,一个DateTime全部搞定 获取当前时间: 蛋疼的地方,对时间增、减操作: 再次蛋

  • 问题内容: 答案 (请在下面阅读,他们各自的作者提供了宝贵的见解): “ writable:false”防止分配新值, 但是 Object.defineProperty不是分配操作,因此将忽略“ writable”的值 属性属性是继承的,因此,在每个子类/实例上,一个属性将保持不可写状态,直到一个子类(或子类实例)将“可写”的值本身更改回true为止 问题 : 有关属性“可写”描述符的MDN文档指

  • 本文向大家介绍jQuery级联操作绑定事件实例,包括了jQuery级联操作绑定事件实例的使用技巧和注意事项,需要的朋友参考一下 级联操作绑定事件是jQuery非常具有实用价值的一个技巧,本文即以实例形式实现这一功能。分享给大家供大家参考之用。具体方法如下: 本文所述实例主要实现jQuery操作一个列表,根据类别选出学校,点击学校出现院系,点击院系出现专业,然后链接至专业申请页面。 具体功能代码如下