2013-12-20 147 views
0

我有一個大約800,000個ID號碼(每個11或13位數字)的數據庫。查找類似記錄

然後我列出了幾千個用作參考的ID號碼,但它們與數據庫上的ID號碼不匹配 - 主要是由於客戶發生手指錯誤。這通常意味着一個數字可以被忽略或添加或不正確。

我期待根據「類似」Id編號進行匹配 - 那麼最好的方法是什麼?

我相當精通PowerShell和QLikView,但不確定要使用哪一個。由於記錄數量,Excel不在列表中。

回答

1

這個問題在數據倉庫中非常有名。一些數據質量解決方案存在找出這樣的錯誤,但沒有工具可以找出每一個錯誤。

您是否確信所有正確的ID是實際上是正確的?也就是說,你能說出所有的比賽都很好,而不是意外地提供了一場比賽嗎?考慮一個錯字或多個錯別字確實會創建一個有效但錯誤的ID的情況。

非匹配的第二部分可以用approximate string matches解決一定程度的問題。也就是說,不要將ID看作tera的值,而要考慮長度爲11或13個字符的字符串。通過計算Levenshtein distances,你可能會發現至少一些錯別字。

即使使用模糊搜索,恐怕您無法修復所有破損的ID代碼,除非代碼具有某種內置校驗和或數字形式組。也就是說,數字1-3表示某物,4-7表示其他物體等等。通過查找具有無意義子組的ID,您可能能夠找出哪個子組有錯誤。