[ 
https://issues.apache.org/jira/browse/BEAM-7310?focusedWorklogId=374617&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-374617
 ]

ASF GitHub Bot logged work on BEAM-7310:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 20/Jan/20 15:32
            Start Date: 20/Jan/20 15:32
    Worklog Time Spent: 10m 
      Work Description: iemejia commented on pull request #10563: [BEAM-7310] 
Add support of Confluent Schema Registry for KafkaIO
URL: https://github.com/apache/beam/pull/10563#discussion_r368597064
 
 

 ##########
 File path: 
sdks/java/io/kafka/src/main/java/org/apache/beam/sdk/io/kafka/KafkaIO.java
 ##########
 @@ -862,19 +958,56 @@ public void setValueDeserializer(String 
valueDeserializer) {
       // Infer key/value coders if not specified explicitly
       CoderRegistry registry = input.getPipeline().getCoderRegistry();
 
-      Coder<K> keyCoder =
-          getKeyCoder() != null ? getKeyCoder() : inferCoder(registry, 
getKeyDeserializer());
-      checkArgument(
-          keyCoder != null,
-          "Key coder could not be inferred from key deserializer. Please 
provide"
-              + "key coder explicitly using withKeyDeserializerAndCoder()");
+      final String schemaRegistryURL =
+          (String) 
getConsumerConfig().get(AbstractKafkaAvroSerDeConfig.SCHEMA_REGISTRY_URL_CONFIG);
 
-      Coder<V> valueCoder =
-          getValueCoder() != null ? getValueCoder() : inferCoder(registry, 
getValueDeserializer());
-      checkArgument(
-          valueCoder != null,
-          "Value coder could not be inferred from value deserializer. Please 
provide"
-              + "value coder explicitly using 
withValueDeserializerAndCoder()");
+      // Set up key coder
+      Schema avroKeySchema = null;
+      if (schemaRegistryURL != null && getKeySchemaSubject() != null) {
+        avroKeySchema = fetchAvroSchema(schemaRegistryURL, 
getKeySchemaSubject());
+        checkArgument(avroKeySchema != null, "Avro key schema can't be null");
+      }
+
+      Coder<K> keyCoder;
+      if (avroKeySchema != null) {
+        keyCoder = (Coder<K>) AvroCoder.of(avroKeySchema);
+        checkArgument(
 
 Review comment:
   but probably that check should be `checkState` per 
https://github.com/google/guava/wiki/PreconditionsExplained
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 374617)
    Time Spent: 2h 50m  (was: 2h 40m)

> Confluent Schema Registry support in KafkaIO
> --------------------------------------------
>
>                 Key: BEAM-7310
>                 URL: https://issues.apache.org/jira/browse/BEAM-7310
>             Project: Beam
>          Issue Type: Improvement
>          Components: io-java-kafka
>    Affects Versions: 2.12.0
>            Reporter: Yohei Shimomae
>            Assignee: Alexey Romanenko
>            Priority: Minor
>          Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> Confluent Schema Registry is useful when we manage Avro Schema but  KafkaIO 
> does not support Confluent Schema Registry as discussed here.
> https://stackoverflow.com/questions/56035121/unable-to-connect-from-dataflow-job-to-schema-registry-when-schema-registry-requ
> https://lists.apache.org/thread.html/7695fccddebd08733b80ae1e43b79b636b63cd5fe583a2bdeecda6c4@%3Cuser.beam.apache.org%3E



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to