2013-12-20 106 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,您可能能够找出哪个子组有错误。