文档首页/ 云数据迁移 CDM/ 常见问题/ 故障处理类/ CDM迁移DWS数据报错Read timedout怎么处理?
更新时间:2024-12-05 GMT+08:00

CDM迁移DWS数据报错Read timedout怎么处理?

问题描述

客户使用cdm迁移DWS A集群表数据到DWS B集群,成功写入部分后报错:

org.postgresql.util.PSQLException: Database connection failed when ending copy…….caused by: java.net.SocketTimeoutExcepetion:Read timed out;

故障分析

作业配置中源端目标端均通过where语句多条件过滤,并非索引列,查询会全表扫描,且数据量在上亿行,数据量庞大,导致JDBC数据库连接失败,读取数据超时,进而导致sqoop异常,作业失败。

迁移作业是CDM作为客户端先从源数据中抽取部分数据,写到目标端,再进行下一次部分数据抽取,写入目标端,往复执行,直到抽取到写入完成。因此可以添加高级属性:socketTimeout 参数,保证在每次抽取写入数据间隔,CDM一直保持正常会话。

解决方案

通过增大jdbc连接超时时间的控制,重新迁移作业。

  1. 通过作业配置中的源端和目标端连接名称,进入到cdm作业管理—>连接管理,找到该连接器名称。
  2. 编辑连接器,显示高级属性—>连接属性—>添加:属性名称socketTimeout 值:36000(单位为秒),测试连接,保存。

  3. 重新启动作业,等待迁移任务执行成功。