Указанная программа преобразуется в StreamGroupedReduce
с SumAggregator
. StreamGroupedReduce
будет постоянно уменьшать входящий поток данных и выводить новое уменьшенное значение после каждой входящей записи.
Внутренне StreamGroupedReduce
использует ValueState
, который сохраняет текущее значение уменьшения. Всякий раз, когда поступает новая запись, текущее значение уменьшения объединяется с входящей записью, вызывая ReduceFunction
(в вашем случае SumAggregator
). Результат этой операции затем сохраняется в ValueState
оператора и выводится потребителям нисходящего потока.
Например: входной поток 1, 2, 3, 4, 5
будет генерировать следующий вывод при суммировании: 1, 3, 5, 9, 14
.
Если вы хотите, то вы можете реализовать то же поведение с keyBy(0).process(...)
.