AWS DMS - Oracle 到 PG RDS 完全加载操作错误 - 无法从 csv 文件加载数据
Posted
技术标签:
【中文标题】AWS DMS - Oracle 到 PG RDS 完全加载操作错误 - 无法从 csv 文件加载数据【英文标题】:AWS DMS - Oracle to PG RDS full load operation error - failed to load data from csv file 【发布时间】:2019-12-22 23:21:27 【问题描述】:我正在尝试使用 DMS 将数据从 oracle 实例移动到 postgres RDS。我只是在做一个完整的加载操作,我已经禁用了目标上的所有外键。我还确保相同表的列之间的数据类型不匹配。我为目标表准备模式尝试了“什么都不做”和“截断”,当我运行任务时,有几个表失败并显示以下错误消息:
[TARGET_LOAD ]E: Command failed to load data with exit error code 1, Command output: <truncated> [1020403] (csv_target.c:981)
[TARGET_LOAD ]E: Failed to wait for previous run [1020403] (csv_target.c:1578)
[TARGET_LOAD ]E: Failed to load data from csv file. [1020403] (odbc_endpoint_imp.c:5648)
[TARGET_LOAD ]E: Handling End of table 'public'.'SKEWED_VALUES' loading failed by subtask 6 thread 1 [1020403] (endpointshell.c:2416)
DMS 没有提供正确的错误信息,我无法理解上述错误信息的含义。
当我为目标表准备模式使用“在目标上删除表”时,它可以工作,但它以我不想要的不同方式创建列的数据类型。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:为了解决我的问题,我创建了一份仅加载一个问题表的任务副本,并将所有日志记录严重性提升为“详细调试”。然后我就可以看到了:
[TARGET_LOAD ]D: RetCode: SQL_SUCCESS_WITH_INFO SqlState: 42622 NativeError: -1 Message: NOTICE: identifier "diagnosticinterpretationrequestdata_diagnosticinterpretationcode" will be truncated to "diagnosticinterpretationrequestdata_diagnosticinterpretationcod" (ar_odbc_stmt.c:4720)
在我找到的目标数据库的 RDS 日志中:
2021-10-11 14:30:36 UTC:...:[19259]:ERROR: invalid input syntax for integer: ""
2021-10-11 14:30:36 UTC:...:[19259]:CONTEXT: COPY diagnosticinterpretationrequest, line 1, column diagnosticinterpretationrequestdata_diagnosticinterpretationcod: ""
2021-10-11 14:30:36 UTC:...:[19259]:STATEMENT: COPY "myschema"."diagnosticinterpretationrequest" FROM STDIN WITH DELIMITER ',' CSV NULL 'attNULL' ESCAPE '\'
我发现如果我添加一个表映射规则来显式重命名列以在 Postgres 的标识符长度限制内截断名称,那么一切正常。
"rule-type": "transformation",
"rule-id": "1",
"rule-name": "1",
"rule-target": "column",
"object-locator":
"schema-name": "%",
"table-name": "%",
"column-name": "diagnosticinterpretationrequestdata_diagnosticinterpretationcode"
,
"rule-action": "rename",
"value": "diagnosticinterpretationrequestdata_diagnosticinterpretationcod",
"old-value": null
,
【讨论】:
以上是关于AWS DMS - Oracle 到 PG RDS 完全加载操作错误 - 无法从 csv 文件加载数据的主要内容,如果未能解决你的问题,请参考以下文章
AWS DMS - 如何将 RDS 表数据写入单个 S3 目标文件?
AWS DMS 不支持 RDS SQL Server 的 CDC/更改跟踪。