The configuration story in Flink is not very consistent at the moment. Ideally, we should have a layered approach where pipeline executor, DataStream API, and Table API store their configuration and add it to a global configuration on request. However, this is a big change that we would like to avoid at this point.
Instead, we partially follow this approach by adding:
- Executor.getConfiguration to access the config of lower layers
- Planner.getConfiguration to access a global configuration during planning
This is required to access properties stored in StreamExecutionEnvironment.configuration.