使用Kafka Connect时如何对指定时区的时间戳字段进行转换?
你需要的时区指定功能可以实现,当前配置未生效的核心原因是缺少timezone配置项,Kafka Connect自带的TimestampConverter转换器默认使用UTC时区处理时间,仅在format中配置时区相关符号不会修改转换使用的基准时区。
正确配置方案
新增transforms.convert_op_ts.timezone参数指定目标时区即可,如果你需要转换到UTC+3时区,完整配置参考如下:
transforms=convert_op_ts transforms.convert_op_ts.type=org.apache.kafka.connect.transforms.TimestampConverter$Value transforms.convert_op_ts.field=hour_field transforms.convert_op_ts.format=HH:mm transforms.convert_op_ts.target.type=string transforms.convert_op_ts.timezone=GMT+03:00
补充说明
timezone参数支持传入标准Java时区标识,除了GMT+03:00这种偏移量格式,也可以用Europe/Moscow这类地域时区ID- 如果你需要输出的字符串自带
+03时区后缀,可将format配置为HH:mmXXX,最终输出格式为14:25+03,不需要硬编码时区后缀到format规则中 - 如果你使用的是JDBC源连接器对接MySQL,建议同时在JDBC连接URL中添加
serverTimezone=GMT%2B03:00参数(URL中+需要转义为%2B),避免从MySQL读取数据阶段就出现时区偏移
内容的提问来源于stack exchange,提问作者natielle
相关产品推荐
相关产品推荐

