flinkcdc读取mysql数据时区不一致问题

一使用插件版本

flinkcdc版本:2.4.2

mysql版本:5.7

二问题现象

mysql时区设置为‌东八时区,MysqlSource设置时区为UTC+8或者Shanghai后读取mysql数据,读取到的时间类型的数据比mysql存储的数据多8小时

三问题原因

flinkcdc的时间类型转long类型毫秒时间戳会调用的toEpochMillis方法,该方法中传入的时区固定为UTC,UTC时区为+0

四问题验证

在程序运行到该代码时debug,传递时区为+8,得出的结果与mysql存储数据一致

五问题解决

1 修改flinkcdc中的源码

我不会

2 在MysqlSource中重写deserializer传递的类

重写DebeziumDeserializationSchema,手动判断后,将时间戳减去8小时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值