You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by "casel.chen" <ca...@126.com> on 2023/06/19 02:41:30 UTC

Flink CDC消费mysql `0000-00-00 00:00:00` 时间值问题

Flink作业消费数据源来自mysql业务表,后者使用了`0000-00-00 00:00:00`这个dummy date来存时间,直接用Flink CDC消费的话会被解析成`1970-01-01 00:00:00` (mysql中是datetime类型)或者`1970-01-01 08:00:00` (mysql中是timestamp类型)。
问题1:可否给个Flink CDC选项,遇到这种dummy时间转成NULL?存量query和增量消费binlog处理这种dummy时间结果一致么?
问题2:如果是mysql -> mysql同步场景,使用Flink CDC在timestamp类型下不能够同步`0000-00-00 00:00:00`这个dummy date,原因是Flink CDC转成了`1970-01-01 08:00:00` CST,对应到UTC时区是`1970-01-01 00:00:00`,而mysql官方文档[1]定义timestamp类型取值范围是'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC,因此会认为`1970-01-01 08:00:00` CST是非法数据。


[1] https://dev.mysql.com/doc/refman/5.7/en/datetime.html

Re:Flink CDC消费mysql `0000-00-00 00:00:00` 时间值问题

Posted by "casel.chen" <ca...@126.com>.
没有人遇到过这个问题吗?




在 2023-06-19 10:41:30,"casel.chen" <ca...@126.com> 写道:
>Flink作业消费数据源来自mysql业务表,后者使用了`0000-00-00 00:00:00`这个dummy date来存时间,直接用Flink CDC消费的话会被解析成`1970-01-01 00:00:00` (mysql中是datetime类型)或者`1970-01-01 08:00:00` (mysql中是timestamp类型)。
>问题1:可否给个Flink CDC选项,遇到这种dummy时间转成NULL?存量query和增量消费binlog处理这种dummy时间结果一致么?
>问题2:如果是mysql -> mysql同步场景,使用Flink CDC在timestamp类型下不能够同步`0000-00-00 00:00:00`这个dummy date,原因是Flink CDC转成了`1970-01-01 08:00:00` CST,对应到UTC时区是`1970-01-01 00:00:00`,而mysql官方文档[1]定义timestamp类型取值范围是'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC,因此会认为`1970-01-01 08:00:00` CST是非法数据。
>
>
>[1] https://dev.mysql.com/doc/refman/5.7/en/datetime.html