AWS DMS任务设置,ApplyErrorInsertPolicy无法按预期工作

时间:2018-07-12 05:34:08

标签: amazon-web-services amazon-rds aws-dms

我们正在使用DMS从sql服务器(2016)到RDS postgres数据库执行全负载+ CDC。我最近了解了通过cli设置错误处理参数的知识,并创建了一个具有一些特定设置的任务。目标表具有来自先前测试负载的一些数据,并且我的TargetTablePrepMode值设置为“不执行任何操作”。因此,当我开始执行任务时,由于违反主键约束(无法插入重复的键),该任务失败了,这是可以理解的,因为目标表中已有数据。但是问题出在任务设置中,我专门设置了以下值-"ApplyErrorInsertPolicy":"INSERT_RECORD"

根据AWS文档

  

ApplyErrorInsertPolicy –确定与INSERT操作发生冲突时AWS DMS采取什么措施。

     
      
  • INSERT_RECORD –如果存在与插入的源记录具有相同主键的现有目标记录,则更新目标记录。
  •   

所以我的期望是,它不会更新过程而导致违反主键约束,而是会更新目标记录。 但是显然,此任务不会发生这种情况。

我理解不正确吗?

编辑: 在任务设置中添加错误处理值-

     "ErrorBehavior":{
      "DataErrorPolicy":"LOG_ERROR",
      "DataTruncationErrorPolicy":"LOG_ERROR",
      "DataErrorEscalationPolicy":"STOP_TASK",
      "DataErrorEscalationCount":0,
      "TableErrorPolicy":"STOP_TASK",
      "TableErrorEscalationPolicy":"STOP_TASK",
      "TableErrorEscalationCount":0,
      "RecoverableErrorCount":2,
      "RecoverableErrorInterval":5,
      "RecoverableErrorThrottling":true,
      "RecoverableErrorThrottlingMax":1800,
      "ApplyErrorDeletePolicy":"LOG_ERROR",
      "ApplyErrorInsertPolicy":"INSERT_RECORD",
      "ApplyErrorUpdatePolicy":"UPDATE_RECORD",
      "ApplyErrorEscalationPolicy":"STOP_TASK",
      "ApplyErrorEscalationCount":25,
      "FullLoadIgnoreConflicts":false
   },

0 个答案:

没有答案