文档首页/ 云数据迁移 CDM/ 常见问题/ 故障处理类/ 通过CDM从OBS迁移数据到DLI,同样的作业在新版本集群迁移失败?
更新时间:2023-06-21 GMT+08:00

通过CDM从OBS迁移数据到DLI,同样的作业在新版本集群迁移失败?

问题描述

客户通过CDM从OBS迁移到DLI ,使用两个集群分别迁移,源端和目标端以及作业配置都一样,2.6.0版本的CDM集群作业可以迁移成功,2.8.6版本的集群迁移失败。报错作业日志如下图所示。

原因分析

  1. 初步怀疑是源端和目标端在字段类型转换出现异常。

  1. 将目标端表字段类型biginit改为 string,重新跑作业还是失败,报错内容跟之前一样。
  2. 配置开启脏数据,重跑作业后作业依旧失败,但是有3条数据已迁移到目标表。
  3. 通过对比迁移失败的数据记录和成功的距离,怀疑是类型为boolean的字段导致的。

解决方案

将目标端boolean类型字段修改成string 后作业跑成功,因为客户源端boolean类型的字段有空值,从而导致迁移失败。

2.8.6版本CDM集群校验更严格,在处理boolean类型数据的逻辑是:目标端的数据类型是boolean类型,会在插入的时候会去检查,不是true/false就会报错。