Flink CDC mysql同步到doris,报数据类型转换错误 Caused by: java.lang.NumberFormatException: For input string: "UTF8MB4'0",分析不出来这个 "UTF8MB4'0" 从哪里出来的?想问下有什么思路么?CREATE TABLE mysql表 (
id
int(11) unsigned NOT NULL AUTO_INCREMENT ,
project_id
int(11) unsigned NOT NULL DEFAULT '0' ,
faq_id
int(11) unsigned NOT NULL DEFAULT '0',
elasticsearch_id
varchar(30) DEFAULT NULL,
question
longtext NOT NULL COMMENT,
created_time
int(11) unsigned NOT NULL DEFAULT '0' ,
updated_time
int(11) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (id
) USING BTREE,
KEY idx_faq_id
(faq_id
) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=13540 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC ;
根据您提供的错误信息和建表语句,错误出现在数据类型转换上,具体是因为无法将字符串 "UTF8MB4'0" 转换为数字类型。
从您提供的建表语句来看,这个错误可能是由于在 DEFAULT 子句中的默认值设置出现了问题。在您的建表语句中,project_id、faq_id、created_time 和 updated_time 字段的默认值都被设置为 '0'。
然而,根据您提供的错误信息,看起来 project_id 字段的默认值被解析为了 "UTF8MB4'0",这是一个非法的数字格式,导致了数据类型转换错误。
解决这个问题的思路如下:
检查数据源表中的数据,确保这些字段的默认值都是合法的数字格式。可能存在某些数据不符合预期,导致了该错误。您可以检查数据表中的默认值,并确保它们都是数字类型,没有包含非法字符。
检查 Flink CDC Connector 的配置,确保正确解析和传输数据。请确认 Flink CDC Connector 的源表和目标表的字段映射关系是否正确,以及是否正确解析和转换数据类型。
检查目标表的定义,确保目标表的字段类型和源表的字段类型匹配。您提到数据同步到 Doris 数据库,因此请确保目标表的字段类型与源表的字段类型相匹配,特别是默认值的类型和格式。
以上是解决问题的一些思路和建议。如果问题仍然存在,请提供更多的错误信息、完整的配置和代码,以便我能够更准确地帮助您解决问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。