starrocks版本:StarRocks-2.0.0-GA和StarRocks-2.0.1。
通过cloudcanal导入mysql数据到starrocks,报column count mismatch错误。具体日志如下:
Failed to flush data to StarRocks, Error response:
{“Status”:“Fail”,“BeginTxnTimeMs”:0,“Message”:“too many filtered rows”,“NumberUnselectedRows”:0,“CommitAndPublishTimeMs”:0,“Label”:“7680f54c-ced0-4965-8306-4d9ffbfad182”,“LoadBytes”:4,“StreamLoadPutTimeMs”:1,“NumberTotalRows”:1,“WriteDataTimeMs”:11,“TxnId”:1091,“LoadTimeMs”:13,“ErrorURL”:“http://10.244.1.50:18040/api/_load_error_log?file=__shard_62/error_log_insert_stmt_f044e8eb-3996-39df-fc97-a97e4c3271aa_f044e8eb399639df_fc97a97e4c3271aa",“ReadDataTimeMs”:0,“NumberLoadedRows”:0,"NumberFilteredRows”:1}
{“streamLoadErrorLog”:“Reason: column count mismatch, expect=2 real=1. src line: [1\u00010\u0003]; \n”}
可能是分割符的问题,您curl一下ErrorURL可以发下详细的报错信息
看上去是分隔符的问题,没有将数据正确分割成两个字段。请检查一下
目前我们自己检查,是有正常分割。\u0001是列分隔符,\u0003是行分隔符。
源表mysql表就只有一个主键id字段,一条数据。如下:

sr中的表是几个字段呢?
sr中是这样:
mysql源表中是一个字段,sr的sink表有id和_op两个字段,列数不匹配。可以检查下列映射部分的设置
导数过程中,cloudcanal会自动新增一个_op的标识值。src line: [1\u00010\u0003],这个里面后面的0就是代表upsert的,所以应该是可以对上。但是不知道为啥sr报错
sr中的表您是手动创建的么?
嗯,手动和自动创建都试了,错误是一样的
请问这个问题能解决吗,比较着急
可以用最新版本CloudCanal,StarRocks对端已经做了大量优化和修复。还有问题的话可以直接CloudCanal社区找我们