我在使用工具(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 的时候出现这个错误
根据提供的错误信息,问题可能出在Flink CDC工具解析MySQL binlog时,无法正确反序列化包含JSON格式的数据。具体来说,错误发生在io.debezium.connector.mysql.MySqlStreamingChangeEventSource.wrap(MySqlStreamingChangeEventSource.java:1488)
这一行,原因是com.github.shyiko.mysql.binlog.event.deserialization.EventDataDeserializationException
异常。
要解决这个问题,你可以尝试以下方法:
确保你的Flink CDC版本与Debezium Connector for MySQL版本兼容。你可以查看官方文档或GitHub仓库中的兼容性信息。
检查你的MySQL binlog中是否包含JSON格式的数据。如果确实包含JSON数据,你需要确保Debezium Connector for MySQL支持这种数据类型。你可以在官方文档或GitHub仓库中查找相关信息。
如果上述方法都无法解决问题,你可以尝试使用其他数据库的CDC工具,如Debezium Connector for PostgreSQL或Debezium Connector for Oracle,看看是否能正常解析包含JSON格式的数据。
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 专家面对面 - 网络&连接&线程池功能”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,100%兼容MySQL。 2021年开源,开源历程及更多信息访问:OpenPolarDB.com/about