假设我有两个使用事件时间的不同数据流。
class TSWM implements AssignerWithPunctuatedWatermarks<POJO> {
long maxTS = Long.MIN_VALUE;
@Override
public Watermark checkAndGetNextWatermark(POJO event, long l) {
maxTS = Math.max(maxTS, event.TS);
return new Watermark(getMaxTimestamp());
}
@Override
public long extractTimestamp(POJO event, long l) {
maxTS = Math.max(maxTS, event.TS);
return event.TS;
}
}
DataStream<POJO> ds1 = ... .assignTimestampsAndWatermarks(new TSWM())
DataStream<POJO> ds2 = ... .assignTimestampsAndWatermarks(new TSWM())
所以现在我有两个不同的数据流,我的问题是,时间戳和水印是分别独立于每个数据流还是中央时钟?
我正在做一些其他复杂的加窗操作,并重新分配时间戳和水印,并且它不生成加窗数据,因此我感到水印或时间戳是问题所在。
答案 0 :(得分:0)
从某种意义上说,水印是“全局的”,但有以下警告: