开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC2.4版本cdc不能使用2.1版本有自动侦测mysql时区的方式么?

Flink CDC2.4版本cdc不能使用2.1版本.serverTimeZone("SYSTEM")这种方式自适应mysql时区,但如果不指定时区,又会报本地和server端时区不一致的错:The MySQL server has a timezone offset (7200 seconds ahead of UTC) which does not match the configured timezone Asia/Shanghai. Specify the right server-time-zone to avoid inconsistencies for time-related fields. 那么除了手动指定时区,有自动侦测mysql时区的方式么?
这个fix https://github.com/ververica/flink-cdc-connectors/commit/70db0d2958dd45585329dad6a12832436bc068d3 不解决问题,因为这里还是默认用jvm时区

展开
收起
cuicuicuic 2023-10-23 14:48:33 61 0
1 条回答
写回答
取消 提交回答
  • 这个问题是由于Flink CDC Connector在获取MySQL服务器时间时存在偏差导致的。Flink CDC Connector通过以下方式获取MySQL服务器的当前时间:

    String currentServerTime = "SELECT NOW()";
    

    然而,这个方法返回的是MySQL服务器本地的时间,而不是UTC时间。因此,如果MySQL服务器和Flink任务所在的时区不同,就会出现你遇到的问题。

    目前,Flink CDC Connector没有提供直接获取MySQL服务器UTC时间的功能。因此,你需要手动设置Flink的任务时区为MySQL服务器的时区,或者将MySQL服务器的时区设置为UTC。

    2023-10-24 09:54:41
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    搭建电商项目架构连接MySQL 立即下载
    搭建4层电商项目架构,实战连接MySQL 立即下载
    PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

    相关镜像