融合的Kafka-connect-JDBC连接器,在kafka主题中显示六进制十进制数据

时间:2018-09-20 20:55:35

标签: jdbc apache-kafka apache-kafka-connect confluent confluent-schema-registry

我正在尝试从oracle db中的表中复制数据,并尝试将这些数据放入kafka主题中。我为此使用了以下JDBC源连接器:

name=JDBC-DB-source
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
connection.password = *******
connection.url = jdbc:oracle:thin:@1.1.1.1:1111/ABCD
connection.user = *****
table.types=TABLE
query= select * from (SELECT * FROM JENNY.WORKFLOW where ID = '565231')

key.converter=io.confluent.connect.avro.AvroConverter
key.converter.schema.registry.url=http://localhost:8081

value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://localhost:8081

mode=timestamp+incrementing
incrementing.column.name=ID
timestamp.column.name=MODIFIED

topic.prefix=workflow_data12
poll.interval.ms=6000
timestamp.delay.interval.ms=60000

transforms:createKey
transforms.createKey.type:org.apache.kafka.connect.transforms.ValueToKey
transforms.createKey.fields:ID

到目前为止很好。我可以将数据输入我的kafka主题。但是输出如下所示:

key - {"ID":"\u0001"}   
value - {"ID":"\u0001","MODIFIED":1874644537368}

尽管我在JDBC属性文件中使用的是Avro,您仍可以观察到我的键“ ID ”以十六进制格式打印。

(我正在使用 kafka-avro-console使用者在命令行上查看数据)

(Oracle数据库中“ ID”列的类型为“ NUMBER ”。)

如果我缺少一些财产,有人可以帮我指出吗?以Avro格式正确打印数据。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

将此属性添加到您的.properties文件中,例如在查询之前:

numeric.mapping = best_fit

详细说明可见here