如何解决Flink CDC同步时间类型字段8小时时间差的问题,以MySQL为例

在使用Flink CDC进行数据同步时,默认情况下经常会遇到时间类型的字段与实际值相差8个小时的问题。本文以MySQL为例提供解决方案,其他数据源也可以参考这类实现。

原文链接:

https://mp.weixin.qq.com/s/_f41ES8UquM-kj3Ie8JU_g

1. 设置server时区

比如MySQL服务的时区为UTC时间,可以参考以下code设置时区。

复制代码
MySqlSource<String> mySqlSource = MySqlSource.<String>builder()
.hostname(${hostName})
.port(${port})
.databaseList(${dbList})
.tableList(${tableList})
.username(${userName})
.password(${dbPwd}) 
.scanNewlyAddedTableEnabled(${true})
.serverTimeZone("UTC")
.serverId(${serverID})
.startupOptions(${startupOptions})
.includeSchemaChanges(${includeSchemaChanges})
.debeziumProperties(${debeziumProperties})
.deserializer(new JsonDebeziumDeserializationSchema(false, decimalConfigs)).build();

2. 指定Debezium Time Converter

Flink CDC/Debezium官方有一个Time Converter自定义实现

MysqlDebeziumTimeConverter,可以在配置Debezium properties时进行指定来解决时间字段时间差的问题。

参考如下code进行配置:

复制代码
String dateFormat = "yyyy-MM-dd";
String timeFormat = "HH:mm:ss";
String datetimeFormat = "yyyy-MM-dd HH:mm:ss";
String timestampFormat = "yyyy-MM-dd HH:mm:ss";
Properties debeziumProperties = new Properties();
debeziumProperties.setProperty(converters,"mysqlTimeConverters");
debeziumProperties.setProperty("mysqlTimeConverters.type","io.debezium.connector.mysql.converters.MysqlDebeziumTimeConverter");
debeziumProperties.setProperty("mysqlTimeConverters.format.timezone",timezone);
debeziumProperties.setProperty("mysqlTimeConverters.format.date",dateFormat);
debeziumProperties.setProperty("mysqlTimeConverters.format.time",timeFormat);
debeziumProperties.setProperty("mysqlTimeConverters.format.datetime",datetimeFormat);
debeziumProperties.setProperty("mysqlTimeConverters.format.timestamp",timestampFormat);

io.debezium.connector.mysql.converters.MysqlDebeziumTimeConverter源码实现片段。

如果我们需要自定义一个Converter,可以通过继承CustomConverter实现对应的方法即可,然后通过参考MysqlDebeziumTimeConverter的实现可以解决很多数据源比如SQL Server,PG等时间字段数据出现时间差的问题。

原文链接:

https://mp.weixin.qq.com/s/_f41ES8UquM-kj3Ie8JU_g

相关推荐
藦卡机器人3 小时前
中国工业机器人发展现状
大数据·人工智能·机器人
Simon_lca4 小时前
突破合规瓶颈:ZDHC Supplier to Zero(工厂零排放 - 进阶型)体系全攻略
大数据·网络·人工智能·分类·数据挖掘·数据分析·零售
黄焖鸡能干四碗6 小时前
网络安全建设实施方案(Word文件参考下载)
大数据·网络·人工智能·安全·web安全·制造
云境筑桃源哇7 小时前
马踏春风 为爱启航 | 瑞派宠物医院(南部新城旗舰店)盛大开业!打造宠物医疗新标杆!
大数据·宠物
xixixi777778 小时前
2026 年 03 月 20 日 AI+通信+安全行业日报(来更新啦)
大数据·人工智能·安全·ai·大模型·通信
F36_9_8 小时前
大数据治理平台选型避坑:2026 年 8 大主流系统实测
大数据·数据治理
成长之路5148 小时前
【实证分析】A股上市公司企业劳动力需求数据集(2000-2023年)
大数据
奔跑的呱呱牛8 小时前
GeoJSON 在大数据场景下为什么不够用?替代方案分析
java·大数据·servlet·gis·geojson
Lab_AI8 小时前
电池材料行业数据管理新突破:AI4S驱动的科学数据平台正在重塑电池材料开发范式
大数据·人工智能·ai4s·电池材料开发·电池材料研发·电池材料创新·ai材料研发
FindAI发现力量8 小时前
智能工牌:线下销售场景的数字化赋能解决方案
大数据·人工智能·销售管理·ai销售·ai销冠·销售智能体