Hi,
My pipeline step is something like this:

SingleOutputStreamOperator<ReducedData> reducedData =
    data
        .keyBy(new KeySelector())
        .window(
            TumblingEventTimeWindows.of(Time.seconds(secs)))
        .reduce(new DataReducer())
        .name("reduce");


This works fine for secs = 300.
However once I increase the time window to say 1 hour or 3600 the state
size increases as now it has a lot more records to reduce.

Hence I need to allocate much more memory to the task manager.

However there is no upper limit to this memory allocated. If the volume of
data increases by say 10 fold I would have no option but to again increase
the memory.

Is there a better way to perform long window aggregation so overall this
step has a small memory footprint.

Thanks
Sachin

Reply via email to