簡體   English   中英

如何在SSIS數據流中的兩個源之間獲得不匹配的數據?

[英]How to get unmatched data between two sources in SSIS Data Flow?

我有兩個數據源,一個是sql表,一個是平面文件(csv)。 兩個來源都有完全相同的列。 示例數據:

表:

HCN  Name  Surname   DOB
111  John   Black    2013-12-10
222  Jack   White    1989-01-14
333  Brian  Brown    2000-04-22

FLATFILE:

HCN  Name  Surname   DOB
111  John   Black    2013-12-10
444  Alex   Smith    1978-05-16

請注意,列HCN是主鍵。 我需要做的是獲得表中包含的這些記錄,但FlatFile。

預期產量:

HCN  Name  Surname   DOB
222  Jack   White    1989-01-14
333  Brian  Brown    2000-04-22

我必須在我的SSIS包的數據流中執行此操作。 我在下面做的是獲得匹配的記錄(HCN:111),但我怎么能得到我無法弄清楚的無法匹敵的記錄。 任何幫助,將不勝感激。

在此輸入圖像描述

解決方案1:查看:
您可以按照以下步驟操作:

  • 添加查找轉換
    在連接選項卡中,選擇您的flatfile連接
    在列選項卡中,將“聯接”列拖放到“常規”選項卡中,通過重定向行處理不匹配的條目
  • 將非匹配輸出重定向到目標

在此輸入圖像描述

解決方案2:LEFT ANTI JOIN

您可以按照以下步驟操作:

1對數據集進行排序/或將源的屬性修改為isSorted = true

2在鍵上使用LEFT JOIN,並添加包含右側id的新列

3在右側添加條件拆分條件ID為空

然后將CASE 1分割數據重定向到您的目的地,您只有左側的行沒有右側對應

在此輸入圖像描述

首先,我建議您將平面文件數據加載到OLEDB登台表中,這是可選的。 如果將平面文件數據加載到目標,則可以將主鍵對齊以進行查找。

創建一個臨時表來插入不匹配的記錄,在這種情況下只需要異步轉換

請參閱下面的查找轉換 在此輸入圖像描述

檢查查找列:

這是一個例子

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM