flink-connector-mysql-cdc 监听 mysql 时遇到主键为 binary 格式的错误
在使用 flink-connector-mysql-cdc 2.1.1 监听 mysql 数据库时,如果 mysql 表的主键为二进制格式,可能会出现错误提示:[b cannot be cast to Java.lang.comparable。如何解决这个问题?
问题分析
从错误提示可以看出,问题出在拆分表时。当 mysql 表的主键为二进制格式时,拆分器无法将二进制主键转换为可比较的格式,导致了类型转换异常。
解决方法
经过调查,该问题的解决方法是升级到 flink-connector-mysql-cdc 的最新稳定版本。在最新版本中,该问题已得到修复。
具体操作步骤如下:
- 更新 maven 依赖:
<dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-mysql-cdc</artifactId> <version>2.1.3</version> </dependency>
登录后复制
- 重新构建和部署作业。
- 确认问题已解决。
其他信息
此问题的相关 issue 已在 github 上提出并已解决:https://github.com/ververica/flink-cdc-connectors/issues/2746。