模糊查找轉換與查找轉換之間的不同之處在於:它使用了模糊匹配。查找轉換使用同等連接在引用表中查找匹配記錄。它返回引用表中完全匹配的項。或者不返回任何內容。與此相比,模糊查找轉換使用模糊匹配返回引用表中一個或多個接近的匹配項。
模糊查找轉換的引用數據源必須是sql2000或更高版本的數據庫。而且在模糊匹配中,只能使用具有DT_WSTR和DT_STR數據類型做為輸入列。完全匹配可以適用除DT_TEXT、DT_NTEXT和DT_IMAGE之外的所有數據類型,模糊查找轉換的編輯框中有三個選項卡。我們現在就逐一介紹
1.引用表選項卡
屬性 |
說明 |
OLEDB連接管理器 |
使用列表框選擇現有的 OLE DB 連接管理器,或使用“新建”按鈕創建新的連接 |
生成新索引 |
指定轉換時應創建新的索引以用於查找 |
引用表的名稱 |
在數據庫中選擇要作為引用的表 |
存儲新索引 |
如果希望保存新的查找索引,請選擇此項 |
新索引名稱 |
如果已選擇存儲新索引選項,則可以對此項設置名稱 |
維護存儲的索引 |
如果已選擇存儲新索引選項,則可以對此項進行選擇 |
使用現有索引 |
指定轉換時使用現有索引來執行查找 |
現有索引名稱 |
從數據庫中選擇要做為引用的表 |
2. 列選項卡
屬性 |
說明 |
可用輸入列 |
拖動輸入列以將其連接到可用查找列。這些列必須具有所支持的相互匹配的數據類型。選擇一個映射行,再右鍵單擊可在創建關系對話框中編輯該映射 |
名稱 |
查看可用輸列的名稱 |
傳遞 |
指定是否在轉換的輸出中包含輸入列 |
可用查找列 |
使用這些復選框可以選擇要對其執行模糊查找操作的列。 |
查找列 |
從引用表的可用列的列表中選擇查找列。通過選中“可用查找列”表中的相應復選框即可選擇查找列。選擇“可用查找列”表中的某個列將創建一個輸出列,其中包含返回的對應於每個匹配行的引用表列值。 |
輸出別名 |
為每個查找列的輸出鍵入一個別名。默認值為查找列的名稱,並追加一個數字索引值;不過,您也可以任選一個唯一的描述性名稱。 |
3. 高級選選卡
屬性 |
說明 |
每次查找輸出的最大匹配數 |
指定為每個輸入行返回的最大匹配轉換數。默認值為 1.如果設置大於1的值,則對於每次查找,轉換的輸出可能包括多行,而且其中一些行可能是重復的。 |
相似性閾值 |
使用滑塊在組件級別設置相似性閾值。該值越接近 1,查找值與源值的相似性必須越接近,才能視為匹配。由於需要考慮的候選記錄更少,因此增加閾值可以提高匹配的速度。 |
標記分割符 |
指定轉換用來對列值進行詞匯切分的分隔符。 |
接下來我們將一個例子介紹模糊查找轉換的使用方式。我們利用上一章節中提供的txt文本做為數據源。
1.在AdventureWorks數據庫中使用下面T-SQL語句創建一張表2.創建一個名為“FuzzyLookupDemo”的包,然后拖放一個Data Flow Task到控制流中。在連接管理器界面創建一個名為“EmployData”的平面文件聯接器,連接” E:\BI資料\IntegrationServices\EmpolyData.txt”
3.在常規選項卡中設置格式屬性為右邊未對齊(Ragged Right),代碼頁屬性設置為1252(ANSI-拉丁語I)。其他設置參考如下圖:
4.在列選項卡中點擊列邊界分別在第5個字符和第28個字符處點擊放置兩個分割線如圖。
5.點擊高級標簽設置TITLE的OutputColumnWidth為50,保存連接。
6.在數據流選項卡中拖放一個平面文件數據源。平面文件連接器屬性設置為EmployData。
7.拖放一個模糊查找轉換任務。並將於平面文件源連接,箭頭指向模糊轉換任務。
8.在模糊查找轉換任務中的引用選項卡中連接管理器屬性中單擊新建按鈕。創建一個OLE DB連接管理器。用於連接AdventureWorks數據庫。其他的設置參考如下圖
9.在高級選項中,相似性閾值設置為0.5,其他都是默認。如下圖設置
10.列選項卡和高級選項卡中的屬性設置依次參考下面的兩個圖:
11.拖放一個OLE DB目標源,設置OLE DB連接管理器為剛才創建的數據庫連接器。數據訪問模式設置為表或試圖-快速加載、單擊新建,彈出對話框
對框中的sql腳本做如下設置:
然后單擊確定。
12.單擊映射選項卡做如下設置。
13.執行包。成功后如下圖:
14.可以在AdventureWorks數據庫中查看結果: