文档首页/ 云数据迁移 CDM/ 常见问题/ 故障处理类/ 迁移MySql到DLI字段类型转换报错For input string:"false"怎么处理?
更新时间:2024-05-30 GMT+08:00

迁移MySql到DLI字段类型转换报错For input string:"false"怎么处理?

问题描述

MySql-TO-DLI迁移报错,java.lang.NumberFormatException:For input string:"false"。

故障分析

  1. 根据报错分析,考虑是客户侧字段类型转换存在问题,将值为"false"的bool类型转为int类型报错。进一步排查作业配置第二步,字段映射界面,查看对应关系。

  2. 根据上一步字段映射分析,其中"support_gpu_instancing"字段源端为TINYINT类型,源端值为"0"或"1",实际是"false"或"true"。迁移到目的端INT类型的字段中会报错,提示类型转换错误,因为Mysql会自动识别将"0"或"1"转换为"false"或"true"。

解决方案

可通过以下两种方式解决问题:

  • 修改目的端建表语句,INT类型为BOOL类型;
  • 源端修改MySql参数,将该"mysql.bool.type.transform"参数设置为"false"。

其中第二种方式可以在CDM的Mysql连接器高级属性中添加:

连接管理-Mysql连接-高级属性-添加参数 mysql.bool.type.transform 值为false,再次输入密码保存即可。