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

Flink CDC中mysqlcdc 2.4.1 出现这个问题 ?

Flink CDC中mysqlcdc 2.4.1 出现这个问题 ?com.github.shyiko.mysql.binlog.event.deserialization.missingtablemapeventexception: No TableMapEventData has been found for table id:209659. Usually that means that you have started reading binary log 'within the logical event group' (e.g. from WRITE_ROWS and not proceeding TABLE_MAP2.0.2 已经解决了 我现在升级到2.4.1了 是还需要做什么参数设置吗

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

    如果您的 Flink CDC 仍然是 2.4.1 版本,请按照以下步骤尝试解决问题:

    1. 确保 binlog 日志格式正确;
    2. 检查 MySQL 主机、端口号、用户名和密码是否正确;
    3. 关注 LogMiner 参数,例如最小事务 ID 和最大事务 ID;
    4. 更新您的 Flink CDC 版本至最新版本。

    如果上述方法都不能解决,请尝试重新启动 Flink CDC,并重新部署 MySQL 数据库服务器,并保持数据库的版本与插件版本一致。

    2023-11-07 14:45:25
    赞同 1 展开评论 打赏
  • 根据你提供的问题描述,你在使用Flink CDC连接MySQL数据库时遇到了一个关于TableMapEventData缺失的问题。这个问题通常发生在读取二进制日志的过程中,从一个逻辑事件组内开始读取(例如从WRITE_ROWS事件开始,而不是从TABLE_MAP事件开始)。

    在MySQL的二进制日志格式中,TABLE_MAP事件用于描述表的结构信息,而WRITE_ROWS等事件用于描述具体的操作。因此,如果在逻辑事件组中没有找到TABLE_MAP事件,就意味着没有找到表的映射信息,从而引发了这个异常。

    根据你提到的版本信息,问题在2.4.1版本中出现了,但2.0.2版本已经解决了。如果你从2.0.2版本升级到2.4.1版本后遇到了同样的问题,可能需要进行一些参数设置来确保正确地读取二进制日志。

    以下是一些可能有帮助的参数设置:

    1. 设置mysql-cdc-deserializer.table-map-event-enabledtrue。这将启用TableMap事件的解析和映射。
    2. 确保在Flink任务的配置中正确设置了MySQL数据库的连接信息,包括主机名、端口号、用户名和密码等。确保与MySQL数据库建立正确的连接。
    3. 检查Flink任务的启动点设置。确保从正确的二进制日志位置开始读取,而不是从一个逻辑事件组内的中间位置开始。这可以通过设置mysql-cdc-deserializer.start-point参数来实现。
    4. 如果你使用了Flink的Table API和Catalog来管理和访问数据库表,确保在创建表结构时正确地指定了表的结构信息,包括列名、数据类型等。
    2023-11-07 10:28:50
    赞同 展开评论 打赏

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

相关产品

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

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