[ 
https://issues.apache.org/jira/browse/FLINK-8558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16543256#comment-16543256
 ] 

ASF GitHub Bot commented on FLINK-8558:
---------------------------------------

Github user pnowojski commented on a diff in the pull request:

    https://github.com/apache/flink/pull/6323#discussion_r202269785
  
    --- Diff: 
flink-connectors/flink-connector-kafka-base/src/main/java/org/apache/flink/streaming/connectors/kafka/KafkaTableSource.java
 ---
    @@ -54,51 +56,105 @@
      * override {@link #createKafkaConsumer(String, Properties, 
DeserializationSchema)}}.
      */
     @Internal
    -public abstract class KafkaTableSource
    -   implements StreamTableSource<Row>, DefinedProctimeAttribute, 
DefinedRowtimeAttributes {
    +public abstract class KafkaTableSource implements
    +           StreamTableSource<Row>,
    +           DefinedProctimeAttribute,
    +           DefinedRowtimeAttributes,
    +           DefinedFieldMapping {
    +
    +   // common table source attributes
    +   // TODO make all attributes final once we drop support for 
format-specific table sources
     
        /** The schema of the table. */
        private final TableSchema schema;
     
    +   /** Field name of the processing time attribute, null if no processing 
time field is defined. */
    +   private String proctimeAttribute;
    +
    +   /** Descriptor for a rowtime attribute. */
    +   private List<RowtimeAttributeDescriptor> rowtimeAttributeDescriptors;
    +
    +   /** Mapping for the fields of the table schema to fields of the 
physical returned type or null. */
    +   private Map<String, String> fieldMapping;
    +
    +   // Kafka-specific attributes
    +
        /** The Kafka topic to consume. */
        private final String topic;
     
        /** Properties for the Kafka consumer. */
        private final Properties properties;
     
    -   /** Type information describing the result type. */
    -   private TypeInformation<Row> returnType;
    -
    -   /** Field name of the processing time attribute, null if no processing 
time field is defined. */
    -   private String proctimeAttribute;
    -
    -   /** Descriptor for a rowtime attribute. */
    -   private List<RowtimeAttributeDescriptor> rowtimeAttributeDescriptors;
    +   /** Deserialization schema for decoding records from Kafka. */
    +   private final DeserializationSchema<Row> deserializationSchema;
     
        /** The startup mode for the contained consumer (default is {@link 
StartupMode#GROUP_OFFSETS}). */
    -   private StartupMode startupMode = StartupMode.GROUP_OFFSETS;
    +   private StartupMode startupMode;
     
        /** Specific startup offsets; only relevant when startup mode is {@link 
StartupMode#SPECIFIC_OFFSETS}. */
        private Map<KafkaTopicPartition, Long> specificStartupOffsets;
     
        /**
         * Creates a generic Kafka {@link StreamTableSource}.
         *
    -    * @param topic                 Kafka topic to consume.
    -    * @param properties            Properties for the Kafka consumer.
    -    * @param schema                Schema of the produced table.
    -    * @param returnType            Type information of the produced 
physical DataStream.
    +    * @param schema                      Schema of the produced table.
    +    * @param proctimeAttribute           Field name of the processing time 
attribute, null if no
    +    *                                    processing time field is defined.
    +    * @param rowtimeAttributeDescriptors Descriptor for a rowtime attribute
    +    * @param fieldMapping                Mapping for the fields of the 
table schema to
    --- End diff --
    
    How can this field ever be null? `SchemaValidator.deriveFieldMapping` 
doesn't allow for that.


> Add unified format interfaces and format discovery
> --------------------------------------------------
>
>                 Key: FLINK-8558
>                 URL: https://issues.apache.org/jira/browse/FLINK-8558
>             Project: Flink
>          Issue Type: New Feature
>          Components: Streaming Connectors
>            Reporter: Timo Walther
>            Assignee: Timo Walther
>            Priority: Major
>              Labels: pull-request-available
>
> In the last release, we introduced a new module {{flink-formats}}. Currently 
> only {{flink-avro}} is located there but we will add more formats such as 
> {{flink-json}}, {{flink-protobuf}}, and so on. For better separation of 
> concerns we want decouple connectors from formats: e.g., remove 
> {{KafkaAvroTableSource}} and {{KafkaJsonTableSource}}.
> A newly introduced {{FormatFactory}} will use Java service loaders to 
> discovery available formats in the classpath (similar to how file systems are 
> discovered now). A {{Format}} will provide a method for converting {{byte[]}} 
> to target record type.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to