程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2005 數據轉換服務中的模糊查找和模糊分組(1)

SQL Server 2005 數據轉換服務中的模糊查找和模糊分組(1)

編輯:關於SqlServer

一、簡介

由於拼寫錯誤、截斷、缺少或插入的標記、空字段、意外的縮略語和其他不規則問題,實際的數據是“有問題”的。 因此,在數據倉庫項目中,很大一部分的時間和金錢都花費在了提取、轉換和加載 (ETL) 階段。 在 ETL 階段,新數據被清理、標准化,並使其與現有數據一致。 在 Microsoft SQL Server?2005 中可用的模糊查找和模糊分組轉換,有助於使 ETL 過程在遇到若干種在實際數據中觀測到的常見錯誤時更易復原。 它們解決一般的匹配和分組問題,而無需特定於域的規則和腳本的專家集合。 通過為您的域自定義模糊查找和模糊分組,您可以利用數據轉換服務 (Data Transformation Services,DTS) 設計器內的通用數據清理算法,並避免創建復雜的自定義規則和代碼。

模糊查找使得您能夠將輸入記錄與引用表中的無錯的、標准化的記錄匹配。 匹配過程對於在輸入記錄中存在的錯誤有復原功能。模糊查找返回最相近的匹配並指出匹配的質量。 例如,由於輸入數據中的錄入錯誤或其他錯誤,在一次新的銷售交易中輸入的客戶信息(名稱和地址)可能與包含所有當前客戶的客戶引用表中的任何記錄都不完全匹配。即使不存在完全匹配,模糊查找也會從客戶引用表返回最佳匹配記錄,並提供度量值以表明匹配質量。

模糊分組使您能夠標識一個表中的記錄的組 — 在這個表中每個組都可能對應相同的實際實體。 分組對在實際數據中觀測到的常見錯誤有復原功能,因為每組中的記錄可能彼此不相同但彼此很相似。 例如,對於將一個客戶引用表中描述每個實際客戶的所有記錄歸類到一起,模糊分組是很有用的。

模糊查找和模糊分組為復雜的、常遇到的數據清理問題提供易用的解決方案。 盡管它們與現有的諸如 soundex、基於規則的系統、基於編輯距離的系統及全文搜索等現有方法有一些聯系,但是模糊查找和模糊分組有一些優勢:

模糊查找和模糊分組使用一個自定義的、考慮編輯距離(例如,“hits”與“bit”的距離為 2)、標記數、標記順序以及相對頻率的獨立於域的距離函數。 結果,與全文搜索相比,模糊查找和模糊分組獲得的辨別力要精細得多,因為它們捕獲了更詳細的數據結構。

由於它們完全是標記驅動的,模糊查找和模糊分組不像 soundex 那樣有依賴於語言的組件。

因為它們不只使用編輯距離,模糊查找和模糊分組不容易被變換誤導,而且與只使用編輯距離的方法相比,能夠檢測出更高級的模式。

模糊查找和模糊分組緊密集成在 DTS 中,這使它們對 SQL Server 2005 的 ETL 任務來說易於使用,而且無需或只需很少的自定義編程。

下面的部分提供了使用並了解模糊查找和模糊分組的分步指南,並且包括了這些轉換的一些實現和性能方面的內容,這對用戶來說很有用。 本文意在通過更詳細地解釋模糊查找和模糊分組的某些方面來補充在線書籍。 有關更多關於選項和配置參數方面的信息,請參閱在線書籍項。 這些項包括的信息有:列寬、層次結構、標記處理選項以及其他有用的參數,這些參數提供一些方法,以加入可用來提高某些方案的准確性的域知識。

二、模糊查找入門

模糊查找可以通過使用損壞的或不完整的字符串關鍵字查找大型表中的數據。 例如,如果您想要按名稱和地址查找客戶信息,您可以使用模糊查找來查找這些信息,即使您的輸入與您的引用表中所存儲的記錄並不完全匹配。 用於模糊查找的最簡單的包是由包含一個源、一個模糊查找轉換和一個目標的單個 DTS 數據流任務組成(圖 1)。

SQL Server 2005 數據轉換服務中的模糊查找和模糊分組(1)(圖一)
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved