开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

我在使用工具(flink-cdc)解析binlog时候,同样的数据polardb出现问题了,为什么?

我在使用工具(flink-cdc)解析binlog时候,也在华为云测试了,同样的数据和同样的造作。华为云无异常,polardb 出现问题了,可以提供数据,什么原因呢?数据库中一个表数据数据包含json 格式!Caused by: io.debezium.DebeziumException: Failed to deserialize data of EventHeaderV4{timestamp=1704361661000, eventType=TABLE_MAP, serverId=27570245, headerLength=19, dataLength=123, nextPosition=468891965, flags=0}
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.wrap(MySqlStreamingChangeEventSource.java:1488)
... 5 more
Caused by: com.github.shyiko.mysql.binlog.event.deserialization.EventDataDeserializationException: Failed to deserialize data of EventHeaderV4{timestamp=1704361661000, eventType=TABLE_MAP, serverId=27570245, headerLength=19, dataLength=123, nextPosition=468891965, flags=0}
at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.deserializeEventData(EventDeserializer.java:341)
at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.deserializeTableMapEventData(EventDeserializer.java:313)
at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.nextEvent(EventDeserializer.java:237)

flink -cdc 的时候出现这个错误

展开
收起
三分钟热度的鱼 2024-01-17 20:15:23 78 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据提供的错误信息,问题可能出在Flink CDC工具解析MySQL binlog时,无法正确反序列化包含JSON格式的数据。具体来说,错误发生在io.debezium.connector.mysql.MySqlStreamingChangeEventSource.wrap(MySqlStreamingChangeEventSource.java:1488)这一行,原因是com.github.shyiko.mysql.binlog.event.deserialization.EventDataDeserializationException异常。

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

    1. 确保你的Flink CDC版本与Debezium Connector for MySQL版本兼容。你可以查看官方文档或GitHub仓库中的兼容性信息。

    2. 检查你的MySQL binlog中是否包含JSON格式的数据。如果确实包含JSON数据,你需要确保Debezium Connector for MySQL支持这种数据类型。你可以在官方文档或GitHub仓库中查找相关信息。

    3. 如果上述方法都无法解决问题,你可以尝试使用其他数据库的CDC工具,如Debezium Connector for PostgreSQL或Debezium Connector for Oracle,看看是否能正常解析包含JSON格式的数据。

    2024-01-18 13:41:57
    赞同 展开评论 打赏
  • flink cdc 的解析报错,需要从 flink cdc 那边调试分析下失败原因,看日志大概是 TABLE_MAP event 解析失败。建议用 mysqlbinlog 工具解析 binlog 配合分析。
    我搜索到 flink cdc 关于 json 字段解析失败的 issue,跟你这个报错信息比较吻合,建议咨询下 flink cdc 开发者这个 bug 的修复情况。
    https://github.com/ververica/flink-cdc-connectors/issues/2192 此回答整理自钉群“PolarDB 专家面对面 - 网络&连接&线程池功能”

    2024-01-17 20:32:27
    赞同 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,100%兼容MySQL。 2021年开源,开源历程及更多信息访问:OpenPolarDB.com/about

相关电子书

更多
PolarDB+AnalyticDB助力交通物流行业系统升级 立即下载
PolarDB NL2SQL: 帮助您写出准确、优化的SQL 立即下载
云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载

相关镜像