Details
-
Bug
-
Resolution: Won't Do
-
Major
-
None
-
1.0.2.Final
-
None
Description
in MySQL, if column is DateTime and with default is CURRENT_TIMESTAMP
For example:
`created` datetime DEFAULT CURRENT_TIMESTAMP
Then DBZ generate schema like that:
{ "name": "created", "type": [ "null", { "type": "long", "connect.version": 1, "connect.name": "org.apache.kafka.connect.data.Timestamp", "logicalType": "timestamp-millis" } ], "default": 0 }
When parse this schema (sink hdfs avro for example) will throw exception :
[2020-03-18 18:30:09,997] ERROR Exception on topic partition sgw.ghtk.sgw_reporting_lines-0: (io.confluent.connect.hdfs.TopicPartitionWriter:409) org.apache.kafka.connect.errors.SchemaBuilderException: Invalid default value at org.apache.kafka.connect.data.SchemaBuilder.defaultValue(SchemaBuilder.java:131) at io.confluent.connect.avro.AvroData.toConnectSchema(AvroData.java:1562) at io.confluent.connect.avro.AvroData.toConnectSchema(AvroData.java:1467) at io.confluent.connect.avro.AvroData.toConnectSchema(AvroData.java:1443) at io.confluent.connect.avro.AvroData.toConnectSchema(AvroData.java:1323) at io.confluent.connect.hdfs.avro.AvroFileReader.getSchema(AvroFileReader.java:50) at io.confluent.connect.hdfs.avro.AvroFileReader.getSchema(AvroFileReader.java:34) at io.confluent.connect.hdfs.TopicPartitionWriter.write(TopicPartitionWriter.java:350) at io.confluent.connect.hdfs.DataWriter.write(DataWriter.java:373) at io.confluent.connect.hdfs.HdfsSinkTask.put(HdfsSinkTask.java:114) at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:538) at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:321) at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:224) at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:192) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.kafka.connect.errors.DataException: Invalid Java object for schema type INT64: class java.lang.Long for field: "null" at org.apache.kafka.connect.data.ConnectSchema.validateValue(ConnectSchema.java:240) at org.apache.kafka.connect.data.ConnectSchema.validateValue(ConnectSchema.java:213) at org.apache.kafka.connect.data.SchemaBuilder.defaultValue(SchemaBuilder.java:129) ... 20 more