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

flink-sqlserver-cdc-2.4.0 ,回滚到 2.3.0 版本,就没有问题,为什么?

flink-sqlserver-cdc-2.4.0 ,采用的默认的配置'scan.startup.mode' = 'initial',只能完成之前的全量数据,增量数据不能同步,但是配置为latest-offset,是可以获取增量数据的。回滚到 2.3.0 版本,initial 就没有问题,sqlserver 版本 2017?

展开
收起
真的很搞笑 2023-11-01 14:24:46 41 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这可能是由于 Flink SQL Server CDC Connector 的一个已知 bug 导致的。根据官方文档,当使用 scan.startup.mode = initial 模式时,它会在首次启动时读取所有历史数据,并在后续运行期间记录最后一次检查点的位置以进行增量读取。但是在某些情况下,此功能可能无法正常工作,并可能导致只读取初始快照而忽略增量数据。
    为了解决这个问题,你可以尝试以下几种方法:

    1. scan.startup.mode 设置为 latest-offset。这会确保每次启动时都从最新位置开始读取数据,并且通常能够正常处理增量数据更新。
    2. 升级到 Flink 最新版来解决此bug。
    3. 如果您使用的是旧版的 sql server 版本(比如sql server版本2017),可能存在不兼容性问题,建议升级 sql server 版本。
    2023-11-02 15:14:47
    赞同 展开评论 打赏
  • 这个问题可能是由于Flink SQL Server CDC connector的版本不匹配导致的。在Flink 2.4.0中,SQL Server CDC connector的版本可能已经更新,而新的版本可能不支持'initial'模式的初始化方式。

    在Flink 2.3.0中,SQL Server CDC connector的版本可能还支持'initial'模式的初始化方式。

    为了解决这个问题,你可以尝试以下的方法:

    1. 升级你的SQL Server CDC connector版本到最新版本,看看是否可以解决这个问题。

    2. 如果升级到最新版本的SQL Server CDC connector仍然无法解决问题,你可以尝试在Flink 2.4.0中使用'latest-offset'模式的初始化方式,看看是否可以获取到增量数据。

    2023-11-02 14:53:12
    赞同 展开评论 打赏
  • 上面问题,临时将 2.4.0 的快照的 checkpoint 设置为false('scan.incremental.snapshot.enabled'='false'
    ),可以恢复正常,原因还没来得及看,此回答整理自钉群“Flink CDC 社区”

    2023-11-01 21:33:07
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载