2015-10-14 61 views
1

我正在通過以下鏈接處理數據倉庫中的數據質量問題。 。處理數據倉庫中的重複項

http://www.kimballgroup.com/2007/10/an-architecture-for-data-quality/

「 響應質量事件 我已經說過,每個質量屏擁有決定何時發生錯誤時會發生什麼情況的選擇是:1)暫停過程中,2)發送違規結果,以供以後的處理的懸念文件,以及3)僅標記的數據,並將其通過以在管道中的下一個步驟。第三種選擇是迄今爲止最好選擇。 「

在s (如客戶端列表),有時我們會獲得同一個客戶端兩次(這兩個記錄在某些屬性上有所不同)。這種情況下最好的解決方案是什麼?

  1. 我不想拒絕這兩個記錄(因爲這將意味着不完整的客戶端數據)。

  2. 源系統在解決問題時速度很慢,所以我們每天都會遇到同樣的問題。這意味着手動解決問題也很困難,因爲它必須每天完成(我們每天都會收到客戶名單)。

  3. 選擇單個記錄是不可能的,因爲我們不知道什麼是正確的值。

  4. 將這兩個記錄都存儲在我們的倉庫中意味着我們的聯接中斷。由於相同ID的兩行,因此事實錶行被加倍(在連接中)。

有什麼想法?

+0

將違規記錄發送到掛起文件供以後處理,並使用GUI修復違規記錄看起來像是您的最佳選擇。 –

回答

1

這種情況下最好的解決方案是什麼?

您的場景中有很多排列組合。 ?最大的問題是「是不同的細節有效或無效,因爲這會改變你如何處理與他們

有效數據例:記錄1具有約翰·史密斯住在12主街,記錄2有約翰Smith住在45 Main St.這是有效的,因爲John Smith在第一個和第二個記錄之間移動了地址,這是有效數據的一個例子,如果數據有效,你可以選擇創建一個緩慢變化的維度並追蹤變化結束日期舊記錄,開始日期新記錄)

無效數據示例:但是,如果數據無效(例如,您的系統以某種方式創建了dupli不正確地按鍵)然後你的選擇是不同的。我懷疑你想表達這些數據,因爲它目前是無效的,正如你所指出的,你沒有辦法確定哪個重複記錄是「正確的」。但是你不希望你的整個負載失敗/停止。

在這種情況下,你通常會:

  1. 推送這些重複行的「隔離區」區域
  2. 推警報,誰擁有解決這一問題的權力的人在操作
  3. (可選)選擇一個的記錄隨機作爲「黃金細節」記錄(因此您的系統仍然會記錄總數),並在記錄上標記屬性爲「無效」並正在調查中。

Kimball正試圖做的一點是,選項1不可取,因爲它會阻止整個系統發生錯誤,選項2並不理想,因爲這意味着您的聚合將顯示不同步您的源系統,所以選項3是最合意的,因爲它仍然會導致數據修復,但不會暫停進程或數據的使用(但會提醒用戶該數據存在疑問)。