tidb char 主键 做cdc同步任务不能获取主键数据需要怎么解决

【TiDB 使用环境】生产环境 /测试/ Poc
【TiDB 版本】8.5.2
用seatunnel做 tidb-cdc 同步任务时候 表主键是char类型的,做cdc同步任务不能获取主键数据



CREATE TABLE test.无标题 (
code char(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
name varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
email varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
PRIMARY KEY (code) USING BTREE
) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;

这个问题可能与TiKV层面对CHAR类型主键的内部编码处理有关。TiDB CDC连接器高度依赖TiKV客户端库的RowKey机制,而CHAR类型的主键在TiKV内部的存储和检索可能存在特殊的处理逻辑,支持主键类型为VARCHAR而不支持CHAR类型的主键。

推测是seatunnel的问题,可以手动创建Changefeed输出到kafka,看是否缺少主键字段;

好的 感谢

TikvRowKey机制中支持主键类型为VARCHAR而不支持CHAR类型的主键

学到了