Hi Ning,

Answer you question:

*And why is rich functions not allowed here?*

If you need access to the state API, you can consider using
ProcessWindowFunction[1], which allows you to use ProcessWindowFunction.

Thanks, vino.

[1]:
https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/operators/windows.html#processwindowfunction

Ning Shi <nings...@gmail.com> 于2018年9月10日周一 上午11:28写道:

> Since the aggregate() function on a keyed window stream does not allow
> using rich functions, I can only use an AggregateFunction. Is the
> accumulator state of the AggregateFunction backed by RocksDB and
> persisted in checkpoints if I use the RocksDB backend. My job looks
> like the following,
>
> sourceStream.keyBy(…)
>     .timeWindow(Time.seconds(…))
>     .trigger(CountTrigger.of(…))
>     .aggregate(new MyAggFunc());
>
> Since the stream has high cardinality keys, each window could have
> millions of them. If the accumulator state is not backed by RocksDB,
> there might be a lot of data stored on the heap.
>
> And why is rich functions not allowed here?
>
> Thanks,
>
> —
> Ning
>

Reply via email to