模糊群組轉換執行資料清理工作。它首先尋找可能重複的行,然後選擇要在對資料進行標準化的過程使用的規範資料行。模糊群組的任務編輯器有下面三個標籤:
1. 連線管理員
使用列表框選擇現有的 OLE DB 連線管理員,或使用“建立”按鈕建立新的串連。
該功能主要是為模糊群組轉換演算法完成工作所需而需要建立臨時 SQL Server 表。建立的表可能會很大,因此在生產服務其只有有限的可用磁碟空間時,因該考慮將模糊群組轉換串連到Sql Server 的非生產執行個體中。則此轉換效能可能會提高。
2 列
該選項卡可以設定 用於對帶有重複值的行進行分組。:
若要配置該轉換,您必須選擇要在確定重複項時使用的輸入列,而且必須為每列選擇匹配類型(模糊比對或完全符合)。完全符合保證只對該列中具有相同值的行進行分組。完全符合可以應用到除 DT_TEXT、DT_NTEXT 和 DT_IMAGE 之外的任何 Integration Services 資料類型的列。模糊比對對具有相似值的行進行分組。近似匹配資料的方法基於使用者指定的相似性得分。在模糊比對中,只能使用具有 DT_WSTR 和 DT_STR 資料類型的列。
在圖中最下面每列表示的含義如下:
列名 |
說明 |
輸入列 |
在可用輸入列中選擇要分組的輸入列 |
輸出別名 |
為相應的輸出資料行輸入一個描述性的名稱,預設為輸入列名 |
組輸出別名 |
為包含分組重複項的規範值得列輸入一個描述性名稱。預設為輸入列名後加_clean |
匹配類型 |
兩種,Fuzzy-模糊比對,Extract-完全符合 |
最低相似性 |
設定相似性閾值。改值越接近1,尋找值與源值重複可能性越高 |
相似性輸出別名 |
為包含所選聯結相似性得分的新輸出資料行指定名稱.如果將該值保留空,將不會建立輸出資料行. |
數字 |
指定比較列資料時前置數字和尾隨數位重要性.Neither-前置數字和尾隨數字都不重要。Leading-只有前置數字重要。Trailing-只有尾隨數字重要。LeadingAndTrailing-前置和尾隨數字都重要 |
比較標誌 |
包含忽略大小寫、忽略假名類型、忽略符號、忽略字元寬度等等。 |
3 進階選項卡
在進階選項卡中可以指定輸入列和輸出資料行、設定相似性閾值和定義分隔字元。見
瞭解這些資訊後,我們現在就已例子來介紹如何使用模糊群組轉換功能。假設人事部在輸入每個員工的時候會有一些筆誤。這裡我們使用模糊群組來得到最標準的職位名稱和每個員工的職位和這個標準的名稱的相似性。
1.在E:\BI資料\IntegrationServices檔案下建立一個名為“EmployData”的文檔。文檔內容如下:
2.建立一個名為”FuzzyGroupDemo”的包,在控制流程介面拖放一個DataFlow任務。然後在聯結管理器介面建立一個名為“EmployData”的一般檔案聯結器,串連上面建立的txt檔案。
3.在常規選項卡中設定格式屬性為右邊未對齊(Ragged Right),字碼頁屬性設定為1252(ANSI-拉丁語I)。其他設定參考如:
4. 在列選項卡中點擊列邊界分別在第5個字元和第28個字元處點擊放置兩個分割線。
5. 點擊進階標籤設定TITLE的OutputColumnWidth為50,儲存串連。
6. 在資料流選項卡中拖放一個一般檔案資料來源。一般檔案連接器屬性設定為EmployData。
7. 拖放一個模糊群組轉換任務。並將於一般檔案源串連,箭頭指向模糊轉換任務。
8. 在模糊群組轉換任務中的連線管理員屬性中單擊建立按鈕。建立一個OLE DB連線管理員。用於串連AdventureWorks資料庫。
9. 在列屬性中,選擇Title列做為輸入列,其他預設輸入。:
10. 在進階選項中,相似性閾值設定為0.5,其他都是預設.
11. 拖放一個OLE DB目標源,設定OLE DB連線管理員為剛才建立的資料庫連接器。資料訪問模式設定為表或試圖-快速載入、單擊建立,彈出對話方塊
對框中的sql指令碼做如下設定:
CREATE TABLE [FuzzyGroup] (
[key_in] int primary key,
[key_out] int,
[score] real,
[EMPID] varchar(5),
[TITLE] varchar(50),
[LNAME] varchar(50),
[TITLE _clean] varchar(50),
[_Similarity_TITLE] real
)
然後單擊確定。
12. 單擊映射選項卡。做如下設定。
13執行包。成功後如:
13. 查看結果,在AdventrureWorks資料庫中的表FuzzyGroup中查看結果如下:
OK,模糊群組轉換功能介紹完畢。