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



我正在尝试从oracle数据库中的表中复制数据,并尝试将该数据放在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}

您可以观察到我的密钥">ID"正在以十六进制格式打印,尽管我在 JDBC 属性文件中使用了 Avro。

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

(列"ID"在预言机数据库中的类型为">NUMBER"。

谁能帮我指出我是否缺少一些财产? 以 Avro 格式正确打印数据。

提前感谢!!

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

numeric.mapping=best_fit

详细解释可以在这里找到

是的,如果你的数据类型是 NUMERIC 如 Muhammad Arslan Akhtar 所说,请使用 numeric.mapping=best_fit。

如果你的数据类型是十进制,你必须首先在查询中强制转换该列,如下所示,因为numeric.mapping=best_fit对十进制没有用。

select CAST(Price AS NUMERIC(18,4)) as Price from xxx

相关内容

  • 没有找到相关文章

最新更新