flink-connector-mysql-cdc 監(jiān)聽 mysql 時(shí)遇到主鍵為 binary 格式的錯(cuò)誤
在使用 flink-connector-mysql-cdc 2.1.1 監(jiān)聽 mysql 數(shù)據(jù)庫時(shí),如果 mysql 表的主鍵為二進(jìn)制格式,可能會(huì)出現(xiàn)錯(cuò)誤提示:[b cannot be cast to Java.lang.comparable。如何解決這個(gè)問題?
問題分析
從錯(cuò)誤提示可以看出,問題出在拆分表時(shí)。當(dāng) mysql 表的主鍵為二進(jìn)制格式時(shí),拆分器無法將二進(jìn)制主鍵轉(zhuǎn)換為可比較的格式,導(dǎo)致了類型轉(zhuǎn)換異常。
經(jīng)過調(diào)查,該問題的解決方法是升級(jí)到 flink-connector-mysql-cdc 的最新穩(wěn)定版本。在最新版本中,該問題已得到修復(fù)。
具體操作步驟如下:
- 更新 maven 依賴:
<dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-mysql-cdc</artifactId> <version>2.1.3</version> </dependency>
登錄后復(fù)制
- 重新構(gòu)建和部署作業(yè)。
- 確認(rèn)問題已解決。
其他信息
此問題的相關(guān) issue 已在 github 上提出并已解決:https://github.com/ververica/flink-cdc-connectors/issues/2746。