Flink - 有多少水印被注入到这个有界流中?

问题描述 投票:0回答:1

在下面的代码中:

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

        SingleOutputStreamOperator<Tuple2<String, Integer>> dataStream = env.fromElements(
            Tuple2.of("01", 1),
            Tuple2.of("02", 2),
            Tuple2.of("03", 3),
            Tuple2.of("04", 4),
            Tuple2.of("05", 5)
            ).assignTimestampsAndWatermarks(
                                WatermarkStrategy.<Tuple2<String, Integer>>forMonotonousTimestamps()
                                        .withTimestampAssigner(
                                                (tuple,  ts) -> System.currentTimeMillis()));
  env.execute("dfjghf")

 env.execute("gghh");

flink-1.17.1, Java 11


这个有界流中将注入多少个水印?是5吗?

2) 如何打印这些水印元素?只是为了调试...

java apache-flink streaming flink-streaming watermark
1个回答
0
投票
  1. forMonotonousTimestamps
    是一个周期性水印生成器,每 200 毫秒发出一次水印(默认情况下)。这项工作不会持续足够长的时间来实现这一目标。所以我希望在工作结束时只有一个水印。 (有关作业结束水印的更多信息,请参阅此答案。)

  2. 可以在 Flink Web UI 中检查水印——这是调试它们的最简单方法。否则,您可以通过传递到键控处理函数的

    processElement
    onTimer
    方法的上下文来访问当前水印。

© www.soinside.com 2019 - 2024. All rights reserved.