使用Kafka Connect JdbcSourceConnector读取Oracle出现值编码问题如何解决
解决Oracle JdbcSourceConnector数值字段被编码为Base64字符串问题
问题根因
Oracle的NUMBER类型默认会被JDBC驱动映射为BigDecimal类型,当未配置Kafka Connect JDBC连接器的数值映射规则时,大数值类型会被默认序列化为Base64编码的字符串,和源库的数值格式不符。
调整方案
步骤1:修改JDBC连接器配置
在jdbc-kafka-connect.properties文件中添加如下配置:
numeric.mapping=best_fit
该配置会让连接器自动根据数值的精度、小数位映射为最合适的基础数值类型(如INT、LONG等),不会再被序列化为Base64字符串。
如果你的数值精度超出了Java Long的最大范围(9223372036854775807),可以将配置值替换为precision_only,适配更高精度的数值场景。
步骤2:重启Kafka Connect进程
Standalone模式下修改配置后需要重启Connect进程,配置才会生效。
验证方式
重启后重新消费Topic数据,可看到PARAM_INSTANCE_ID、ENTITY_ID字段已经变为不带引号的数值类型,和源库格式一致。
内容的提问来源于stack exchange,提问作者vishnupriya
相关产品推荐
相关产品推荐

