AK
04/15/2023, 11:41 AMDavid Anderson
04/15/2023, 4:54 PMAK
04/15/2023, 5:28 PM// Instance variable
long maxTimestampInX=Long.MIN_VALUE;
long maxTimestampInY=Long.MIN_VALUE;
// Method
public void onEvent(MyEvent event, long eventTimestamp, WatermarkOutput output) {
if(event.isRegionX()) {
maxTimestampInX = Math.max(maxTimestampInX, eventTimestamp);
} else if(event.isRegionY()) {
maxTimestampInY = Math.max(maxTimestampInY, eventTimestamp);
} else {
throw new RuntimeException("Region is not X OR Y");
}
}
public void onPeriodicEmit(WatermarkOutput output) {
output.emitWatermark(new Watermark(Math.min(maxTimestampInX, maxTimestampInY)));
}David Anderson
04/15/2023, 5:33 PMnew Watermark(Math.min(maxTimestampInX, maxTimestampInY) - this.outOfOrdernessMillis - 1)AK
04/15/2023, 5:34 PMDavid Anderson
04/15/2023, 5:37 PMDavid Anderson
04/15/2023, 5:43 PMAK
04/15/2023, 5:44 PMDavid Anderson
04/15/2023, 5:45 PMAK
04/15/2023, 5:46 PMDavid Anderson
04/15/2023, 5:47 PMAK
04/15/2023, 5:47 PM