Thanks Shuiqiang for starting this discussion. Big +1 for this feature. State access support can further improve the functionality of our existing Python DataStream.
I have 2 comments regarding to the design doc: a) I think that `StateDescriptor` needs to hold the variable `typeInfo` instead of letting each implementation class hold `typeInfo` itself.For example, `ListStateDescriptor` does not hold `elem_type_info`, but passes `ListTypeInfo(elem_type_info)` to the construct method of `StateDescriptor`. b) I think we need to add the `MergingState` and `AppendingState` interfaces, and then extract the `get` and `add` methods from `ListState`, `AggregatingState`, and `ReducingState` into `AppendingState`. Then let `ListState`, `AggregatingState` and `ReducingState` inherit `MergingState`. Best, Xingbo Shuiqiang Chen <acqua....@gmail.com> 于2020年12月11日周五 下午9:44写道: > Hi devs, > > In FLIP-130, we have already supported Python DataStream stateless APIs so > that users are able to perform some basic data transformations. To > implement more complex data processing, we need to provide state access > support. So I would propose to add state access APIs in Python DataStream > API to support stateful operations on a KeyedStream. More details are in > the FLIP wiki page [1]. > > Any feedback will be highly appreciated! > > [1] > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-153%3A+Support+state+access+in+Python+DataStream+API > > Best, > Shuiqiang >