Similar to the efforts done in
FLINK-8240. We need unified ways to configure and instantiate TableSinks. Among other applications, this is necessary in order to declare table sinks in an environment file of the SQL client. Such that the sink can be used for INSERT INTO statements.
Below are a few major changes in mind.
1) Add TableSinkFactory/TableSinkFactoryService similar to TableSourceFactory/TableSourceFactoryService
2) Add a common property called "type" with values (source, sink and both) for both TableSource and TableSink.
3) in yaml file, replace "sources" with "tables", and use tableType to identify whether it's source or sink.