我尝试了不同的方法来实现从 MySQL 到 MS SQL Server 的增量加载。但发现以下方法最优:
从目标表中获取 max(UpdateDate) 并读取目标表中具有 UpdateDate > max(UpdateDate) 的所有记录。(执行 SQL 任务以从目标表中获取最大日期。存储在变量中)
将这些行加载到临时表中。
使用目标表查找此临时表以查找新记录和更改记录。
向上插入目标表。
但是我在这种方法中遇到了问题。SSIS 包失败并出现以下错误:
“[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PRIMEOUTPUFAILED。ADO NET 源上的 PrimeOutput 方法返回错误代码 0xC02090F5。当管道引擎调用 PrimeOutput() 时,组件返回一个失败代码。失败代码的含义由组件,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。”
我删除了查找转换并将数据直接加载到目标表中,它工作正常,但它插入了源表中的所有记录。它应该插入目标表的 UpdateDate > max(UpdateDate) 的记录。
请建议。
谢谢!
不要在 SSIS 中执行查找,而是将步骤 2 的数据加载到目标服务器上的永久临时表中。然后步骤 3 和 4 将在存储过程而不是数据流中执行。它会更快,更不容易出错。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句