ops > Alternatively, you can modify a code of your function/operator for which you want to modify the state. For example in the `org.apache.flink.streaming.api.checkpoint.CheckpointedFunction#initializeState` method you could add some code that would do a migration of your old state to a new one. > And you can drop such code later, in the next savepoint.
That was not entirely true. This would work for the non-keyed state. For the keyed state there is no easy alternative (you would have to iterate through all of the keys, which I think is not exposed via Public API) - best to use StateProcessor API. Best, Piotrek pt., 21 paź 2022 o 10:54 Sriram Ganesh <srigns...@gmail.com> napisał(a): > Thanks !. Will try this. > > On Fri, Oct 21, 2022 at 2:22 PM Piotr Nowojski <pnowoj...@apache.org> > wrote: > >> Hi Sriram, >> >> You can read and modify savepoints using StateProcessor API [1]. >> >> Alternatively, you can modify a code of your function/operator for which >> you want to modify the state. For example in the >> `org.apache.flink.streaming.api.checkpoint.CheckpointedFunction#initializeState` >> method you could add some code that would do a migration of your old state >> to a new one. >> >> ``` >> private transient ValueState<Foo> old; >> private transient ValueState<Foo> new; >> (...) >> initializeState(...) { >> (...) >> if (new.value() == null && old.value() != null) { >> // code to migrate from old to new one >> new.update(migrate(old.value()); >> old.update(null); >> } >> } >> ``` >> >> And you can drop such code later, in the next savepoint. >> >> Best, >> Piotrek >> >> [1] >> https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/libs/state_processor_api/ >> >> pt., 21 paź 2022 o 10:05 Sriram Ganesh <srigns...@gmail.com> napisał(a): >> >>> Hi All, >>> >>> I am working on a scenario where I need to modify the existing savepoint >>> operator state. Ex: Wanted to remove some offset of the savepoint. >>> >>> What is the better practice for these scenarios?. Could you please help >>> me with any example as such? >>> >>> Thanks in advance. >>> >>> -- >>> *Sriram G* >>> *Tech* >>> >>> > > -- > *Sriram G* > *Tech* > >