Hi, Xiangyu. Thanks for driving this. I have a question to confirm: Considering the case that different Sources use different columns[1], will the Schema of CatalogTable[2] contain all target columns for Sources? And for SinkWriter, the data structure to be processed should be fixed. Is there a node or an operator to fill in the inconsistent field of Rowdata that passed from different Sources?
[1] https://cwiki.apache.org/confluence/display/FLINK/FLIP-506%3A+Support+Reuse+Multiple+Table+Sinks+in+Planner [2] https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/sourcessinks/#planning > 2025年2月6日 17:06,xiangyu feng <xiangyu...@gmail.com> 写道: > > Hi devs, > > I'm opening this thread to discuss FLIP-506: Support Reuse Multiple Table > Sinks in Planner[1]. > > Currently if users want to partial-update a downstream table from multiple > source tables in one datastream, they would have to manually union all > source tables and add lots of "cast(null as string) as xxx" in Flink SQL. > This will make the SQL here hard to use and maintain. > > After discussing with Weijie Guo, we think that by supporting reuse sink > nodes in planner, the usability can be greatly improved in this case. > > Therefore, we propose to add a new option > *`table.optimizer.reuse-sink-enabled`* here to support this feature. More > details can be found in the FLIP. > > Looking forward to your feedback, thanks. > > [1] > https://cwiki.apache.org/confluence/display/FLINK/FLIP-506%3A+Support+Reuse+Multiple+Table+Sinks+in+Planner > > Best regards, > Xiangyu Feng