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

Flink中的事件时间窗口不会触发

方宏才
2023-03-14

当我使用 flink 事件时间窗口时,窗口只是不触发。如何解决问题,有没有办法调试?

共有2个答案

古棋
2023-03-14

请确保您正在设置< code > environment . setstreamtimecharacter istic(time character istic。事件时间)。

严项明
2023-03-14

由于您使用的是事件时间窗口,这可能是水印问题。窗口仅在水印取得进展时输出。事件时间没有提前有一些原因:

  1. 没有来自源的数据
  2. 其中一个源并行度没有数据
  3. 从记录中提取的时间字段应为毫秒而不是秒。
  4. 数据应涵盖比窗口大小更长的时间跨度,以提前事件时间。

如果我们将事件时间更改为流转时长,窗口将输出。此外,我们可以通过检查Web仪表板[1]中的水印来监控事件时间,或者使用可以查找当前水印的ProcessFunction对其进行打印调试

[1] https://ci.apache.org/projects/flink/flink-docs-master/monitoring/debugging_event_time.html#monitoring-current-event-time

 类似资料:
  • 我想知道是否可以创建类似于以下内容的WindowAssigner: 但我不希望窗口在每个元素的事件时间中保持增长。我希望在接收到的第一个元素(对于该键)处定义窗口的开头,并在1秒后精确结束,无论有多少元素到达该秒。 所以它可能看起来像这样的假设: 谢谢

  • 我很难让apache beam管道触发基于事件时间的触发器,但似乎能够随着处理时间触发窗口触发。 我的管道相当基本: > 我提取二级时间戳 我打开数据窗口进行处理 我按秒对数据进行分组,以便以后按秒对流数据进行分类。 我最终在分类的秒数上使用滑动窗口,有条件地每秒向pubsub发出两条消息中的一条。 我的问题似乎在步骤3中。 我试图在第3阶段使用与第5阶段相同的窗口策略,在分类秒数上运行滑动平均计

  • 假设我有一个股票市场交易事件流,如下所示: 使得technicalN(其中N是一些数字)代表给定公司的日终股票市场交易数据的第N个技术交易条目[开盘(浮动)、高位(浮动)、低位(浮动)、收盘(浮动)、成交量(int)]。(即ticker GOOG的技术1不同于ticker MSFT的技术1。)如: (请注意,这些交易价格/交易量完全是虚构的。 假设我想创建一个大小为2、时间间隔为1天的窗口,这样我

  • 我的Flink工作必须在每次工作轮班后计算某个集合。换挡是可配置的,看起来类似于: 出于操作目的,每天的班次都是一样的,一周/一年中的几天之间没有区别。轮班配置可以随时间变化,并且可以不单调,因此表中留下了一个简单的EventTime窗口,如:,因为一些轮班可能会缩小或超时,或者在中间插入几个小时... 我想出了一些基于GlobalWindow和自定义触发器的东西: 在我的自定义触发器中,我尝试识

  • 在流处理问题中,我们有3个传感器,每个传感器每8毫秒生成一个时间戳样本(传感器的时间是同步的)。所以我想合并每个时间戳的数据(对于3个传感器,我们应该为每个时间戳输出3个合并的样本数据)。此外,我们有一个160毫秒的时间限制,这样每个数据在生成时间戳后最多应该在160毫秒后输出。所以我决定使用Flink事件时间概念和时间窗口。因为时间戳在每个传感器的样本中都是唯一的,所以我们认为它是数据流的关键。