我无法理解流式传输,以工作计数为例,对于像 Kafka 这样的无限源,“sum”到底是做什么的?
DataStream<Tuple2<String, Long>> counts = input ...... .returns(Types.TUPLE(Types.STRING, Types.LONG)) .keyBy(0) .sum(1);
当有时间窗口时我有点理解,对我来说就像一个“批次”,因为它有开始和结束时间,但是当根本没有时间窗口时,
开始时间和结束时间是什么时候?
当 Flink 第三次接收到单词 'foo' 时,'sum' 是否会遍历所有旧的 'foo',做 1+1+1,并给出结果 '3'。或者,Flink 以某种方式在上一步中保存了一个中间结果 '2',所以 'sum' 只做 2+1?
有没有另一种方法来求和,我的意思是,使用 keyBy(0).process(...) 什么的?
jeck猫
相关分类