這個練習示範如何透過知識探索(knowledge discovery)來建立知識庫(KB),並且在知識庫中進行定義域的維護工作。
建立探索用的測試資料
通常知識庫會以知識探索的方式當做開端,由系統先幫我們探索符合定義域的值。
為了執行知識探索,底下我們先建立一個測試資料,內容包含所有可能的 CountryRegion、StateProvince、City 資料。
在 DQS_STAGING_DATA 資料庫中建立以下檢視,用以取得 AdventureWorksDW2012.DimGeography 資料表中的所有 CountryRegion、StateProvince、City 可能資料。
CREATE VIEW dbo.vCountryStateCity AS SELECT DISTINCT EnglishCountryRegionName AS CountryRegion, StateProvinceName AS StateProvince, City FROM AdventureWorksDW2012.dbo.DimGeography;
建立知識庫(KB)
接下來的練習將以上面所建立的測試資料當做探索對象,以便建立知識庫。
1. 新增知識庫
在[Data Quqlity Client]的[知識庫管理]項目中[新增知識庫]。
2. 使用[知識探索]活動
將知識庫的活動設定為[知識探索]。
3. 設定探索資料來源
4. 加入定義域(Domain)
在[對應]頁籤中,你要針對你要探索的資料欄位,設定一個相對應的定義域來記錄。
在這個例子中,我們針對來源資料中的三個資料行,都設定一個相對應的定義域。
依照下表新增三個定義域設定:
定義域名稱 | 資料類型 | 使用前置值 | 字串標準化 | 啟用拼字檢查 | 停用語法錯誤演算法 | 輸出格式 | 語言 |
---|---|---|---|---|---|---|---|
City | String | V | V | V | 無 | 英文 | |
State | String | V | V | V | 無 | 英文 | |
Country | String | V | V | V | 無 | 英文 |
設定完成畫面
以上三個定義域,我們都不使用拼字檢查,而且都停用語法錯誤演算法。
5. 開始探索
探索結果:
6. 管理定義域值(domain value)
在[管理定義域值]功能頁中,可以看到探索活動幫我們在每個定義域中都找到了數個定義域值。
你也可以手動加入定義域值
下圖中,在 City 定義域中,加入一個 Munich 定義域值,並將[類型]欄位設定為[錯誤],[更正為](Correct To)欄位輸入 München。
7. 完成
執行[完成]。由於我們還要在下面練習中繼續維護這個知識庫,所以選擇暫不發行。
如何刪除知識庫
編輯定義域
在上面的練習中,我們已經利用知識探索的協助,建立了知識庫,並且包含了三個定義域。 接下來將練習如何在知識庫中,直接手動編輯定義域,並且定義他們的比對規則。
1. 開啟資料庫
2. 使用[定義域管理]作業
先選擇前一個練習所建立的知識庫,再由加下角的選取活動中,點選[定義域管理]。
3. 建立定義域
這個步驟中,我們將另外建立四個定義域。
依下表內容建立其他四個定義域。
定義域名稱 | 資料類型 | 使用前置值 | 字串標準化 | 啟用拼字檢查 | 停用語法錯誤演算法 | 輸出格式 | 語言 |
---|---|---|---|---|---|---|---|
StreetAddress | String | V | V | V | 無 | 英文 | |
BirthDate | Date | V | 無 | 英文 | |||
Occupation | String | V | V | V | 無 | 英文 | |
EmailAddress | String | V | V | V | 無 | 英文 |
結果如下:
4. 手動加入[定義域值](Domain Value)
接下來我們要來編輯這些定義域的相關內容。
首先我們在 City 中手動加入一個定義域值,當它的定義域值是 Muenchen 時,要更正為 München。
設定完成後,資料會按字母重新排列順序。你可以找一下 München 這個定義域值,可以發現它共有二個同義字。
5. 設定[以詞彙為主的關聯](Term-Based Relations)
在 StreeAddress 定義域中,我們加入一個[以詞彙為主的關聯]。
[以詞彙為主]的意思是說,以詞彙做為更正的單位,不像上一步驟,是以整個定義域值更正。
例如下例中,我們設定將地址欄位中有出現「Ct.」一詞的地方,都更正為「Court」。
6. 設定[定義域規則](Domain Rule)
我們使用[定義域規則]來設定 BirthDate ,限定該定義域值必須大於 1/1/1900 。
7. 使用[拼字檢查]和[語法錯誤演算法]
在 Occupation 定義域屬性中,我們啟用[拼字檢查]和[語法錯誤演算法],來協助我們判斷 Occupation 資料中是否有併字錯誤或語法錯誤。
8. 設定 EmailAddress 的[定義域規則]
在 EmailAddress 定義域中,我們加入一個[定義域規則]。 並且在其建置規則中使用[值符合規則運算式](Value Matches Regular Expression)選項,並輸入運算式「\p{L}+\d\d@ADVENTURE-WORKS\.COM」。 然後再點繫[Add a New Condition],加入另外一個條件,並輸入運算式「\p{L}+\d@ADVENTURE-WORKS\.COM」。 並使用 OR 運算元。
9. 發行知識庫
最後按下[完成],就可以將知識庫發行了。
沒有留言:
張貼留言