模糊群組轉換會識別可能重複的數據列,並選取標準數據列來標準化數據,以執行數據清理工作。
備註
如需模糊群組轉換的詳細資訊,包括效能和記憶體限制,請參閱 SQL Server Integration Services 2005 中的模糊查閱和模糊群組白皮書。
模糊群組轉換需要連線到 SQL Server 實例,才能建立轉換演算法執行其工作所需的暫存 SQL Server 數據表。 連線必須解析為有權限在資料庫中創建資料表的使用者。
若要配置轉換,您必須選取用於識別重複項目的輸入欄,並且必須為每個欄選擇比對類型:模糊比對或精確比對。 完全相符可確保只有在該數據行中具有相同值的數據列會被分組。 完全比對可以套用至任何 Integration Services 數據類型的欄位,DT_TEXT、DT_NTEXT 和 DT_IMAGE 類型除外。 模糊比對會將具有相同值的數據列分組。 數據近似比對的方法是以使用者指定的相似度分數為基礎。 只有具有DT_WSTR和DT_STR數據類型的數據行才能用於模糊比對。 如需詳細資訊,請參閱 Integration Services 資料類型。
轉換輸出包含所有輸入數據行、一個或多個具有標準化數據的數據行,以及包含相似度分數的數據行。 分數是介於 0 到 1 之間的十進位值。 標準數據列的分數為 1。 模糊群組中的其他數據列有分數,指出數據列與標準數據列的比對程度。 分數越接近 1,數據列就越接近標準數據列。 如果模糊群組包含完全重複標準數據列的數據列,這些數據列的分數也為 1。 轉換不會移除重複的數據列;它會建立索引鍵來將標準數據列與類似的數據列建立群組。
轉換會為每個輸入資料列產生一個輸出資料列,並包含下列其他數據行:
_key_in,欄用於唯一識別每個資料列。
_key_out,用來識別重複行群組的一個欄位。 _key_out數據行具有標準數據列中_key_in數據行的值。 _key_out中具有相同值的數據列是相同群組的一部分。 群組的_key_out值會對應至標準數據列中_key_in的值。
_score,介於 0 到 1 之間的值,表示輸入數據列與標準數據列的相似性。
這些是預設的數據行名稱,您可以設定模糊群組轉換以使用其他名稱。 輸出也會針對參與模糊群組的每個數據行提供相似度分數。
模糊群組轉換包含兩個功能,可用來自定義其執行的群組:令牌分隔符和相似度閾值。 轉換會提供一組預設的分隔符,用來將數據標記化,但您可以新增可改善數據標記化的新分隔符。
相似度臨界值表示轉換如何嚴格地識別重複項目。 相似度臨界值可以在元件和數據行層級設定。 數據行層級相似度閾值僅適用於執行模糊比對的數據行。 相似度範圍是從 0 到 1。 臨界值愈接近 1,資料列和資料行就愈近似於重複項目。 您可以在元件和數據行層級設定 MinSimilarity 屬性,以指定數據列和資料行之間的相似度臨界值。 若要滿足元件層級所指定的相似性,所有數據列必須具有大於或等於元件層級所指定相似度臨界值的所有數據行的相似度。
模糊群組轉換會計算相似度的內部量值,而且不會分組小於 MinSimilarity 中所指定值的數據列。
若要識別適用於您數據的相似度閾值,您可能需要使用不同的最小相似度閾值來套用模糊群組轉換數次。 在運行時間,轉換輸出中的分數數據行包含群組中每個數據列的相似度分數。 您可以使用這些值來識別適合您數據的相似度臨界值。 如果您想要增加相似度,您應該將MinSimilarity設定為大於分數數據行中的值。
您可以藉由在模糊群組轉換輸入中設定數據行的屬性,來自定義轉換所執行的群組。 例如,FuzzyComparisonFlags 屬性會指定轉換如何比較數據行中的字串數據,而 ExactFuzzy 屬性會指定轉換是否執行模糊比對或完全相符。
模糊群組轉換所使用的記憶體數量可以藉由設定 MaxMemoryUsage 自定義屬性來設定。 您可以指定 MB 數(MB),或使用值 0 來允許轉換根據其需求和可用的物理記憶體使用動態內存量。 屬性運算式可以在載入封裝時更新 MaxMemoryUsage 自訂屬性。 如需詳細資訊,請參閱 Integration Services (SSIS) 運算式、在套件中使用屬性運算式和轉換自訂屬性。
此轉換有一個輸入和一個輸出。 它不支援錯誤輸出。
資料列比較
當您設定模糊群組轉換時,您可以指定轉換用來在轉換輸入中比較資料列的比較演算法。 如果您將 Exhaustive 屬性設定為 true,轉換會將輸入中的每個數據列與輸入中的每個數據列進行比較。 此比較演算法可能會產生更精確的結果,但除非輸入中的數據列數目很小,否則轉換的執行速度可能會變慢。 若要避免效能問題,建議只在套件開發期間將 Exhaustive 屬性設定為 true 。
暫存資料表和索引
在運行時間,模糊群組轉換會在轉換所連線的 SQL Server 資料庫中建立臨時物件,例如數據表和索引,其大小可能很大。 數據表和索引的大小會與轉換輸入中的數據列數目和模糊群組轉換所建立的令牌數目成正比。
此轉換操作也會查詢臨時表。 因此,您應該考慮將模糊群組轉換連線到非生產 SQL Server 實例,特別是如果生產伺服器可用的磁碟空間有限時。
如果此轉換所使用的資料表和索引在本機電腦上,則轉換的效能會有所改進。
模糊群組轉換的設定
您可以透過 SSIS 設計師或以程式設計方式設定屬性。
如需您可以在 [ 模糊群組轉換編輯器 ] 對話框中設定之屬性的詳細資訊,請按下列其中一個主題:
如需有關可以在 [進階編輯器] 對話方塊中或以程式設計方式設定之屬性的詳細資訊,請按下列其中一個主題:
相關工作
如需如何設定此工作屬性的詳細資訊,請按下列其中一個主題: