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

Flink CDC中mysql cdc 抽取源库一直存在这个问题 ?

Flink CDC中mysql cdc 抽取源库一直存在这个问题 ?Caused by: com.github.shyiko.mysql.binlog.event.deserialization.MissingTableMapEventException: No TableMapEventData has been found for table id:1450112. Usually that means that you have started reading binary log 'within the logical event group' (e.g. from WRITE_ROWS and not proceeding TABLE_MAP有什么好的方案解决吗?

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

    这个问题是由于Flink CDC在读取MySQL二进制日志时没有找到表映射事件。通常来说,这意味着您开始读取逻辑事件组(例如从WRITE_ROWS事件而不是TABLE_MAP事件)。
    要解决此问题,您可以尝试以下几种方法:

    1. 重新启动Flink CDC Job。有可能是因为之前的问题还没有完全清除,重新启动可以解决此问题。
    2. 检查源数据库中的表是否具有正确的表映射事件。如果没有,请检查源数据库中MySQL二进制日志的设置是否正确。
    3. 仔细检查您的Flink SQL代码,确保所有的表映射事件都被正确解析。
    2023-11-29 14:18:07
    赞同 1 展开评论 打赏
  • 这个问题可能是由于MySQL binlog的读取顺序不正确导致的。在Flink CDC中,需要确保binlog的顺序正确,以便正确地解析事件。可以尝试以下方法解决:

    1. 检查MySQL binlog的读取顺序是否正确。可以通过查看binlog文件名来确认,文件名应该按照时间顺序排列。

    2. 确保Flink CDC的binlog设置正确。在Flink CDC的配置中,需要指定正确的binlog文件路径和位置信息。例如:

    {
      "connector": "mysql-cdc",
      "hostname": "localhost",
      "port": 3306,
      "username": "root",
      "password": "password",
      "database-name": "test",
      "table-includes": "test.*",
      "scan.startup.timestamp-millis": 1627545600000,
      "scan.stop-on-timestamp-millis": 999999999999,
      "scan.interval": 1000,
      "scan.start-from-latest": false,
      "scan.parallelism": 1,
      "scan.max-rows-per-batch": 1000,
      "scan.max-bytes-per-batch": 1048576,
      "scan.timestamp-millis-type": "LOG_TIMESTAMP",
      "scan.timestamp-millis-unit": "MILLISECONDS",
      "scan.timestamp-millis-timezone": "UTC",
      "scan.timestamp-millis-offset": 0,
      "scan.timestamp-millis-precision": "3",
      "scan.timestamp-millis-rounding": "ROUND_HALF_UP",
      "scan.timestamp-millis-adjustment": "0",
      "scan.timestamp-millis-shift": "0",
      "scan.timestamp-millis-skew": "0",
      "scan.timestamp-millis-error-tolerance": "1000",
      "scan.timestamp-millis-error-action": "THROW",
      "scan.timestamp-millis-error-message": "Error while scanning binlog: {0}",
      "scan.timestamp-millis-error-exception-class": "com.github.shyiko.mysql.binlog.event.deserialization.MissingTableMapEventException",
      "scan.timestamp-millis-error-exception-message": "No TableMapEventData has been found for table id:{1}. Usually that means that you have started reading binary log 'within the logical event group' (e.g. from WRITE_ROWS and not proceeding TABLE_MAP).",
      "scan.timestamp-millis-error-exception-stacktrace": "true"
    }
    
    1. 如果问题仍然存在,可以考虑使用其他工具或方法来处理MySQL binlog,例如使用Debezium等开源工具。
    2023-11-29 14:00:22
    赞同 展开评论 打赏

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

相关产品

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

    更多
    One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
    One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
    如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

    相关镜像