Datastream - 过去日期的 TimeWindow
Datastream - TimeWindow for past date
我有过去事件时间的数据集
01-12-2015 01:10:10
01-12-2015 01:10:20
01-12-2015 01:10:30
01-12-2015 01:10:40
.... (millions of records)
我想为此应用时间窗口timeWindow(Time.seconds(30))
我可以使用 TimeExtractor class 来获取数据中的 EventTime
。但是我如何实现 getCurrentWatermark
方法。它应该得到过去的日期和时间
在您的情况下,最好使用提供的 TimeStampAssigners
之一,请参阅 here。
所以我推荐的是这样的:
DataStream<MyEvent> stream = ...
DataStream<MyEvent> withTimestampsAndWatermarks =
stream.assignTimestampsAndWatermarks(new AscendingTimestampExtractor<MyEvent>() {
@Override
public long extractAscendingTimestamp(MyEvent element) {
return element.getCreationTime();
}
});
还要记得设置正确的TimestampCharacteristic
:
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
我有过去事件时间的数据集
01-12-2015 01:10:10
01-12-2015 01:10:20
01-12-2015 01:10:30
01-12-2015 01:10:40
.... (millions of records)
我想为此应用时间窗口timeWindow(Time.seconds(30))
我可以使用 TimeExtractor class 来获取数据中的 EventTime
。但是我如何实现 getCurrentWatermark
方法。它应该得到过去的日期和时间
在您的情况下,最好使用提供的 TimeStampAssigners
之一,请参阅 here。
所以我推荐的是这样的:
DataStream<MyEvent> stream = ...
DataStream<MyEvent> withTimestampsAndWatermarks =
stream.assignTimestampsAndWatermarks(new AscendingTimestampExtractor<MyEvent>() {
@Override
public long extractAscendingTimestamp(MyEvent element) {
return element.getCreationTime();
}
});
还要记得设置正确的TimestampCharacteristic
:
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);