插入新记录/忽略现有记录/列出缺失记录 - SSIS

时间:2015-04-24 14:41:42

标签: ssis lookup

我希望我可以在这里得到一些关于如何在我正在开发的SSIS包中处理这种情况的建议。

首先是一点背景。我们托管分配了唯一广告联盟ID的活动。每个事件可能有多个轮班,并分配了唯一的班次ID。

从Oracle源数据库中,我提取了ShiftIDs和PersonIDs(以及名字和姓氏)。我想更新现有SQL Server数据库中的特定表。

我看到执行操作时可能发生的三件事:

  1. 新记录已插入表格
  2. 忽略未更改的现有记录
  3. 不插入不存在的班次ID(可能会发送到另一个表以进行审核/记录保存)。
  4. 我知道如何处理方案1,但我应该如何处理方案2& 3?

1 个答案:

答案 0 :(得分:0)

在SSIS中严格来说,答案将是慢慢变化的维度转换。但是,当它于2005年首次出现时,这种情况很糟糕,而且从那时起就没有得到维护或改进,例如,有(默默地)不支持datetime2数据类型。许多博客帖子抱怨它的性能很慢(逐行执行),但我发现它可以使用正确的索引策略。无论如何我不能推荐它。

我会将数据流输出转储到Staging表(在目标SQL Server上),然后使用SQL MERGE命令来处理所有3个场景。在编写了大量代码之后,您将获得可靠,可扩展的解决方案。