“好”的数据库记录比较工具?

时间:2009-02-24 00:32:54

标签: .net sql database

我是支持CRM CMS(Salesforce)的公司的系统管理员。

我不喜欢内置功能,因此我通常通过CSV / XLS文件管理数据以进行上传和下载,因为我可以编写更好的查询等。我的任务之一是上传联系人和帐户。由于缺乏唯一的标识符和拼写错误,我在上传的记录中遇到重复。

  • 上传联系人时,我尝试通过电子邮件,电话号码和/或姓氏/名字
  • 进行匹配
  • 对于公司,我通常只限于帐户名称,有许多可能的缩写和拼写错误

我正在寻找一种更好的方法来检查具有以下约束的重复项:

  

给出名称,电子邮件或电话号码列表(全部存储为文本字段),在两个表之间进行比较检查,以查找第二个表中的最佳匹配。最好是在多个领域之间,但即使它只是一个领域,它也将极大地帮助我的努力。

数据集的大小约为最长表上的17,000条记录。通常一次输入约50个值。我的限制是我拥有的硬件,没有预算自由裁量权。我的编程能力非常基础,但我可以学习并拥有Eclipse&系统上的Visual Studio。

是否有人建议如何以编程方式或使用第三方工具解决此问题?

4 个答案:

答案 0 :(得分:1)

我使用的两个db比较工具是xSQL和Redgate SQL Compare。

我更喜欢redgate的易用性,但它相当昂贵。

xSQL起初有点复杂但功能非常强大,它在编写模式和数据方面比SQL服务器做得好得多。它也便宜很多。

实际上看一下你的问题,你的比较似乎需要一些智能,因为你已经安装了Visual Studio,我会说你有工具已经做了一些非常深入的比较,只需要做一些编码。

答案 1 :(得分:0)

您基本上是在谈论natural language parsing,以及更一般的模式匹配(缩写等)。你找不到一个简单的解决方案;但你可以提高你的机会。

我可能从一个更简单的观点开始:错误拼写。 “soundex”算法(恰当地,Soundex Indexing System)按照发音时的声音(大概是美国演讲者)对单词进行编码,并将它们渲染成声音相似的单词将进行比较。这在尝试查找基于同音异义词的错误拼写时非常有用:根据类似的soundex值向用户显示匹配。

答案 2 :(得分:0)

名称和地址匹配可能相当困难,我已经研究过这样做的商业工具,并且它们带有高昂的价格标签,特别是因为它们使用完整的地址列表,有时也使用名称。

另一种有效但耗时的方法是建立自己的迷你脚本库。有两种方法,您可以尝试perl,awk,shell脚本和您喜欢的任何其他语言,并使用基于文件和文本的数据。或者您可以在Access中构建一套Sql,查询和系列片段?无论哪种方式,如果您的预算为零,您可能会花费大量时间来构建自己的库,但这是一项非常有用的技能。

答案 3 :(得分:0)

正如@MrTelly所提到的,名称和地址(和公司)匹配非常复杂。

一个第三方工具 - 有一个独立的GUI以及程序员的API - Melissa DATA的MatchUp。

GUI:http://www.melissadata.com/products/matchup.htm

API:http://www.melissadata.com/dqt/matchup-api.htm

免责声明:我为Melissa DATA工作,是这些产品的主要开发人员。但我全心全意地支持我的工作!