如何通过JDBC Connector将Oracle指定日期列转为Kafka Topic的int类型
实现方法:使用Kafka Connect SMT单独转换指定日期字段
你可以通过Kafka Connect的**Single Message Transform(SMT)**单独处理TEST_DATE字段,无需改动其他配置或字段。用内置的TimestampConverter SMT就能把当前的long型timestamp-millis转成int型的date逻辑类型。
具体配置步骤
在你的JDBC Connector配置中添加以下SMT相关参数:
# 启用SMT并命名转换规则 transforms=convertTestDate # 指定转换类型为作用于消息Value的TimestampConverter transforms.convertTestDate.type=org.apache.kafka.connect.transforms.TimestampConverter$Value # 明确只处理TEST_DATE字段 transforms.convertTestDate.field=TEST_DATE # 源字段类型:当前是timestamp-millis类型的Timestamp transforms.convertTestDate.source.type=Timestamp # 目标类型:转为Kafka Connect的Date逻辑类型(对应int存储) transforms.convertTestDate.target.type=Date
配置说明
- 该配置仅对
TEST_DATE字段生效,其他日期字段不受影响 TimestampConverter会自动将毫秒级时间戳转换为从1970-01-01开始的天数,以int类型存储,同时自动为字段添加你需要的Avro Schema属性:connect.name=org.apache.kafka.connect.data.Date、logicalType=date- 这是Kafka Connect内置的SMT,无需额外安装插件,可直接配合你当前使用的
io.confluent.connect.avro.AvroConverter工作
内容的提问来源于stack exchange,提问作者Sattu046
相关产品推荐
相关产品推荐

