我是支持CRM CMS(Salesforce)的公司的系统管理员。
我不喜欢内置功能,因此我通常通过CSV / XLS文件管理数据以进行上传和下载,因为我可以编写更好的查询等。我的任务之一是上传联系人和帐户。由于缺乏唯一的标识符和拼写错误,我在上传的记录中遇到重复。
我正在寻找一种更好的方法来检查具有以下约束的重复项:
给出名称,电子邮件或电话号码列表(全部存储为文本字段),在两个表之间进行比较检查,以查找第二个表中的最佳匹配。最好是在多个领域之间,但即使它只是一个领域,它也将极大地帮助我的努力。
数据集的大小约为最长表上的17,000条记录。通常一次输入约50个值。我的限制是我拥有的硬件,没有预算自由裁量权。我的编程能力非常基础,但我可以学习并拥有Eclipse&系统上的Visual Studio。
是否有人建议如何以编程方式或使用第三方工具解决此问题?
答案 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工作,是这些产品的主要开发人员。但我全心全意地支持我的工作!