数据流-过去日期的时间窗口

yfwxisqw  于 2021-06-25  发布在  Flink
关注(0)|答案(1)|浏览(283)

我有过去事件时间的数据集

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类来获取 EventTime 在数据中。但我该如何实施呢 getCurrentWatermark 方法。它应该得到过去的日期和时间

rn0zuynd

rn0zuynd1#

在您的情况下,最好使用提供的 TimeStampAssigners 看这里。
所以我推荐的是这样的:

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);

相关问题