从 MySQL 到 MS SQL Server 的增量负载

被解放的姜戈

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

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

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

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

  4. 向上插入目标表。

但是我在这种方法中遇到了问题。SSIS 包失败并出现以下错误:

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

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

请建议。

谢谢!

标签Alleman

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章