我尝试了从MySQL到MS SQL Server的增量加载的不同方法。但是发现下面的方法是最佳的:


从目标表获取max(UpdateDate),并读取目标表的UpdateDate> max(UpdateDate)的所有记录。 (执行SQL任务以从目标表中获取最大日期。存储在变量中)
将这些行加载到临时表中。
使用目标表查找此临时表以查找新记录和更改的记录。
向上插入目标表。


但是我在这种方法中面临着问题。 SSIS包失败,并出现以下错误:


  “ [SSIS.Pipeline]错误:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。
  ADO NET Source上的PrimeOutput方法返回错误代码0xC02090F5。
  当管道引擎调用时,组件返回失败代码
  PrimeOutput()。故障代码的含义由
  组件,但错误是致命的,并且管道停止执行。
  在此之前可能会发布错误消息,并提供更多信息
  关于失败。”


我删除了查找转换,并将数据直接加载到目标表中,效果很好,但是它插入了源表中的所有记录。它应该插入目标表的UpdateDate> max(UpdateDate)的记录。

请提出建议。

谢谢!

最佳答案

无需在SSIS中进行查找,而是将第2步数据加载到目标服务器上的永久登台表中。然后,将在存储过程而不是数据流中执行步骤3和4。它将更快,更不易出错。

关于mysql - 从MySQL到MS SQL Server的增量负载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45623276/

10-10 16:17