从MySQL到MS SQL Server的增量加载

时间:2017-08-10 20:52:13

标签: mysql sql-server ssis

我尝试过从MySQL到MS SQL Server的增量加载的不同方法。但发现以下方法最优:

  1. 从目标表获取max(UpdateDate)并读取所有具有UpdateDate>的记录目标表的max(UpdateDate)。 (执行SQL任务以从目标表获取最大日期。存储在变量中)

  2. 将这些行加载到临时表中。

  3. 使用目标表查找此临时表以查找新记录和已更改记录。

  4. 将目标表格保存。

  5. 但我正面临这种方法的问题。 SSIS包失败,出现以下错误:

      

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

    我删除了查找转换并将数据直接加载到目标表中,但它工作正常,但它插入了源表中的所有记录。它应该插入UpdateDate>的记录。目标表的最大值(UpdateDate)。

    请建议。

    谢谢!

1 个答案:

答案 0 :(得分:1)

不是在SSIS中执行查找,而是将第2步数据加载到目标服务器上的永久临时表中。然后步骤3&将在存储过程而不是数据流中执行图4的处理。它会更快,更不容易出错。