我正在寻找标记我的流中的数据及其到达flink的时间,以便我可以执行一些计算。我知道在使用事件时间模型的时候我可以直接控制它,但是我希望有一些简单的方法来发现flink在流上做出Window决策时使用的Timestamp。
答案 0 :(得分:0)
Flink支持三种模式与时间一起使用:
根据您的描述,您似乎正在寻找摄取时间。在内部,摄取时间就像事件时间一样,但不同之处在于时间戳是自动分配的(并且会自动生成水印)。
时间模式通过StreamExecutionEnvironment.setStreamTimeCharacteristic()
方法设置。
除ProcessFunction
之外,事件时间和摄取时间时间戳不会暴露给任何函数。 ProcessFunction
可以通过ProcessFunction.processElement()
方法在Context.timestamp()
中读取事件的时间戳。