【问题标题】:How to keep both flows using Lookup object in SSIS如何在 SSIS 中使用 Lookup 对象保持两个流
【发布时间】:2017-04-11 11:02:15
【问题描述】:

SSIS 中的数据流任务有问题。

在我当前的流程中,我想使用查找对象添加一些额外的数据。如果匹配,则根据 Lookup 对象的设置添加数据,不匹配则保持流程不变。

我将查找对象设置为将不匹配的记录重定向到不匹配输出并将其链接到现有流(因为我不想更改现有记录,只是为了增加一些额外的数据),但我不'不知道如何将 Match 输出链接到同一流。

如果我要使用 TSql 语句,我刚刚使用了左连接,但我无法确定要使用 SSIS 中的哪些其他对象,以便保持现有流程不变,只是为了增强它,当有匹配,与新数据。

【问题讨论】:

  • 如果我将 Lookup 对象的设置设置为忽略不匹配的记录,会发生什么情况?记录是否仍会通过 LookUp 对象?

标签: sql-server ssis etl bids


【解决方案1】:

您可以在不使用查找重定向输出的情况下做到这一点。

只需将 Lookup 配置为忽略 No Match 错误,因此对于不匹配的值,输出值将设置为 Null

完成此操作后,在 Lookup 之后添加一个 Multicast 组件,这样您的输出就会相乘,然后在 MultiCast 输出之一中添加一个 Conditional Split 并过滤 ISNULL([YourColumn]) == True 的行 (您将在一个输出中仅获取 No Match Rows,在另一个输出中获取所有行)

【讨论】:

    【解决方案2】:

    您可以为此使用Merge join 组件。

    您需要先对数据进行排序(可以使用sort component 来完成)。之后,只需用Merge join component 连接这两个组件即可。

    merge join 中,您可以选择您想要的加入类型(有关详细信息,请查看上面的链接)。就像 T-SQL 语句一样工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 2019-06-12
      • 1970-01-01
      • 2013-09-23
      • 1970-01-01
      • 2012-01-05
      • 2016-05-25
      相关资源
      最近更新 更多