Apache flink ApacheFlink时间特性

Apache flink ApacheFlink时间特性,apache-flink,stream-processing,Apache Flink,Stream Processing,如何使用ApacheFlink中的摄取时间特性。我知道我们需要设置环境时间特征。但是我如何收集带有时间戳的数据,时间戳可以称为摄取时间。目前,当我使用它时,它正在根据系统时钟时间处理窗口。我想根据数据进入flink环境的时间进行处理 有助于清晰理解的一点代码摘录: 环境的时间特征: env.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime); 窗口时间: keyedEvents.timeWindow(Time.minute

如何使用ApacheFlink中的摄取时间特性。我知道我们需要设置环境时间特征。但是我如何收集带有时间戳的数据,时间戳可以称为摄取时间。目前,当我使用它时,它正在根据系统时钟时间处理窗口。我想根据数据进入flink环境的时间进行处理

有助于清晰理解的一点代码摘录:

环境的时间特征:

env.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime);
窗口时间:

keyedEvents.timeWindow(Time.minutes(5))
源中的集合:

ctx.collect(monSourceData);
如果数据采集在11:03开始,我想在11:08结束,即5分钟。但它会在11:05停止(某种程度上表现为处理时间)


提前感谢您的帮助。

Flink中的翻滚和滑动窗口始终与时钟对齐(事件和水印定义的事件时间时钟或系统时钟);时间窗口未与第一个事件对齐。因此,如果您有5分钟长的窗口,那么将有一个从11:00到11:05的间隔窗口,例如,无论时间特征如何


但是,翻转窗口会采用可选的偏移参数,该参数可用于移动此对齐。因此,您可以指定
TumblingEventTimeWindows.of(Time.minutes(5),Time.minutes(3))
,例如将间隔移动3分钟。

Flink中的翻滚和滑动窗口始终与时钟对齐(事件和水印定义的事件时间时钟或系统时钟);时间窗口未与第一个事件对齐。因此,如果您有5分钟长的窗口,那么将有一个从11:00到11:05的间隔窗口,例如,无论时间特征如何


但是,翻转窗口会采用可选的偏移参数,该参数可用于移动此对齐。因此,您可以指定
TumblingEventTimeWindows.of(Time.minutes(5),Time.minutes(3))
,例如将间隔移动3分钟。

非常感谢您的回复。是否有可能基于第一个事件运行windows,如果我在11:03获得第一个事件/数据实体,该窗口应运行“n”分钟,正如我在所给出的示例中所提到的。我想不出任何方法可以使用windows API来实现这一点,但您可以使用ProcessFunction自己构建它。我不明白,据我所知,进程函数在窗口结束时立即执行,因此我们需要以某种方式自定义窗口时间。我猜触发器在这种情况下也很有用。但正如我刚刚开始学习flink一样,如果您能帮助我学习任何类型的代码片段或逻辑,那将是非常棒的。谢谢我的意思是说你可以用一个过程函数而不是一个窗口。非常感谢大卫对你的帮助。:)非常感谢您的回复。是否有可能基于第一个事件运行windows,如果我在11:03获得第一个事件/数据实体,该窗口应运行“n”分钟,正如我在所给出的示例中所提到的。我想不出任何方法可以使用windows API来实现这一点,但您可以使用ProcessFunction自己构建它。我不明白,据我所知,进程函数在窗口结束时立即执行,因此我们需要以某种方式自定义窗口时间。我猜触发器在这种情况下也很有用。但正如我刚刚开始学习flink一样,如果您能帮助我学习任何类型的代码片段或逻辑,那将是非常棒的。谢谢我的意思是说你可以用一个过程函数而不是一个窗口。非常感谢大卫对你的帮助。:)