Hi Dawid,

thanks for this FLIP. This solves a lot of issues with the current design for both the Flink contributors and users. +1 for this.

Some minor suggestions from my side:
- How about finding something shorter for `InitializationContext`? Maybe just `OpenContext`? - While introducing default methods for existing interfaces, shall we also create contexts for those methods? I see the following method in your FLIP and wonder if we can reduce the number of parameters while introducing a new method:

deserialize(
            byte[] recordValue,
            String partitionKey,
            String seqNum,
            long approxArrivalTimestamp,
            String stream,
            String shardId,
            Collector<T> out)

to:

deserialize(
            byte[] recordValue,
            Context c,
            Collector<T> out)

What do you think?

Regards,
Timo



On 06.04.20 11:08, Dawid Wysakowicz wrote:
Hi devs,

When working on improving the Table API/SQL connectors we faced a few shortcomings of the DeserializationSchema and SerializationSchema interfaces. Similar features were also mentioned by other users in the past. The shortcomings I would like to address with the FLIP include:

  * Emitting 0 to m records from the deserialization schema with per
    partition watermarks
      o https://github.com/apache/flink/pull/3314#issuecomment-376237266
      o differentiate null value from no value
      o support for Debezium CDC format
        
(https://cwiki.apache.org/confluence/display/FLINK/FLIP-105%3A+Support+to+Interpret+and+Emit+Changelog+in+Flink+SQL)

  * A way to initialize the schema
      o establish external connections
      o generate code on startup
      o no need for lazy initialization

  * Access to metrics
    
[http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Custom-Metrics-outside-RichFunctions-td32282.html#a32329]

One important aspect I would like to hear your opinion on is how to support the Collector interface in Kafka source. Of course if we agree to add the Collector to the DeserializationSchema.

The FLIP can be found here: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=148645988&src=contextnavpagetreemode

Looking forward to your feedback.

Best,

Dawid


Reply via email to