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

Flink CDC中MySQL 数据库,请问有没有遇到过或者好的解决方案?

Flink CDC中MySQL 数据库,表的主键是 varchar类型 primary key,我从 mysql 到 kafka,进行 initial
同步时,总是卡在 MySqlSnapshotSplitReadTask,Snapshot step 2 - Snapshotting data 这一步,我的表数据量在 2000w,导致我的 taskManager 不断的重启,每次都是卡在这,请问大佬们有没有遇到过或者好的解决方案?

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

    在处理大量数据同步的问题上,Flink CDC是一个优秀的解决方案。然而,您遇到的问题可能是由于在initial模式下,MySQL CDC源表会先通过JDBC连接MySQL,使用SELECT语句读取全量的数据,并记录Binlog的位点。全量阶段结束后,再从记录的位点开始读取Binlog中的增量数据。当您的表数据量较大时,这个过程可能会导致任务管理器不断重启。

    为了解决这个问题,您可以尝试以下几种方法:

    1. 将primary key的类型改为整数类型,这样可以避免在大量数据的情况下出现性能问题。
    2. 采用分片的方式处理大量的数据,将数据分成多个部分进行处理,这样可以提高处理效率。
    3. 采用增量同步的方式,而不是全量同步。这样可以减少需要处理的数据量,从而提高处理效率。
    2023-12-12 16:07:38
    赞同 展开评论 打赏

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

相关产品

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

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