Support passing stateBackend through pipeline options in python sdks
- Dominant language
- Java
- Stars
- 8.7k
- Forks
- 4.7k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 196
Description
Currently the only way for python sdks to instruct flink to use a StateBackend different than the default (MemoryStateBackend) would be to specify state.backend in flink-conf.yaml, which creates the limitation of using the same statebackend for every job running on the same flink cluster. Ideally we should be able to pass it in to flink runner through PipelineOptions. Here's the error it spits out when I flag \--state_backend=RocksDBStateBackend:
```
RuntimeError: Pipeline failed in state FAILED: com.fasterxml.jackson.databind.exc.InvalidDefinitionException:
Cannot construct instance of `org.apache.flink.runtime.state.StateBackend` (no Creators, like default
construct, exist): abstract types either need to be mapped to concrete types, have custom deserializer,
or contain additional type information
at [Source: (String)""RocksDBStateBackend""; line: 1, column:
1]
```
Acceptance Criteria:
Flink StateBackend is configurable via command line options from python.
Imported from Jira [BEAM-8112](https://issues.apache.org/jira/browse/BEAM-8112). Original Jira may contain additional context.
Reported by: catlynk.
Contributor guide
Assessment
This issue has not been assessed yet.