【问题标题】:Data matching/ deduplication Sql server 2008 R2数据匹配/去重 Sql server 2008 R2
【发布时间】:2014-04-22 12:59:21
【问题描述】:

进行数据清理过程(重复数据删除/匹配)的选项有哪些 处理 MS SQL Server 2008 R2 时? 或者更好的是,我如何在一行的列上对匹配过程的分数进行加权? 情况如下:我的数据库中有一个persons 表,其他数据库表中有关联的地址和文档? 如何根据姓名、文件序列号和地址做出最佳匹配决定?据我了解,SSIS 模糊摸索不支持此功能:加权评分。

【问题讨论】:

  • 您只想考虑 SQL Server 原生的解决方案吗?我在一家构建重复数据删除和匹配解决方案的公司工作,该解决方案将与 SQL Server 集成。
  • 您应该查看第三方工具,或者考虑升级到 SQL Server 2012,它附带数据质量服务,因为除了 SQL Server 2008 R2 中的 SSIS 模糊组件之外没有其他本机选项。
  • 感谢您的意见。我对互联网进行了深入研究,发现了这篇文章:blog.hoegaerden.be/2011/02/05/… 和另一篇 sqlservercentral.com/articles/Integration+Services+(SSIS)/71486

标签: sql-server-2008 weighted deduplication data-cleaning master-data-services


【解决方案1】:

目前我对 SSIS 没有太多经验 - 所以这个答案集中在您问题的重复数据删除/匹配/评分方面。

有很多方法可以实现这样的数据质量策略,所有这些方法都有优点和缺点,我认为很大程度上取决于您现有的数据管理策略 - 您正在尝试的数据有多干净和标准化重复数据删除?

如果您没有正确理解,即使是电话号码之类的“简单”项目也可能难以进行重复数据删除 - 例如,所有这些都是同一号码的不同表示:

  • +1 (888) 707-8822
  • 1-888-707-8822
  • 18887078822
  • 001 888 7078822
  • 888-7078822

地址等更复杂的结构变得更加有趣:“flat 2”和“apartment 2”是相同的还是不同的?

您有两个选择 - 自己做或信任第三方

自己做

  • 优势
    • 许多有趣的逻辑问题需要解决
    • 随着解决方案的发展,将能够“永远”随意调整和改进
  • 缺点
    • 这需要很长时间。
    • 您使用的每个国家/地区都需要单独查看 - 没有可以应用的高质量“全球”规则(但当然有可以重复使用的 sn-ps)

第三方

  • 优势
    • 如果重复数据删除不是您的专长 - 让专家来做吧
    • 准备好立即交付价值
  • 缺点
    • 成本

无论你是走自己的路还是走第三方,我建议你先制定一个明确的目标。

您的意见是什么:

  • 您的数据有多“干净”?
  • 您的数据的标准化程度如何?
  • 记录如何链接在一起。
  • 地址记录是来自一个国家还是来自多个国家。

您的工作流程是什么:

  • 您需要多久运行一次此流程?
  • 您想首先阻止重复进入您的系统,还是只运行定期批量运行?

你想从项目中得到什么?

  • 您希望在什么级别(文档、个人、家庭、组织 - 见下文)识别重复项
  • 您想如何处理这些重复项
    • 删除重复并保留一条记录
    • 合并重复项以创建一个主记录
    • 此阶段有时被称为创建“黄金”记录。决定保留哪些信息,以及忽略哪些信息。

要更详细地了解其中一些选择,请考虑以下虚拟地址:

您是否尝试将重复数据删除到家庭级别:

  • Ann Smith, 1 main st, DupeVille, MA, 12345
  • Bob Smith, 1 main street, DupeVille, MA, 12345

成为

  • Ann and Bob Smith, 1 Main St, DupeVille, MA, 12345-6789

人物等级

  • Robert Smith, 1 main st, DupeVille, MA, 12345
  • Bob Smith, 1 main street, DupeVille, MA, 12345

成为

  • Robert Smith, 1 Main St, DupeVille, MA, 12345-6789

甚至通过文档数据库中的 ID。

一旦您制定了该计划,它可能会帮助您确定最佳路线。如果您想自己创建它,那么您找到的链接肯定会让您处于正确的心态。如果你想去第三方 - 那里有很多供应商。只要确保你选择了你可以信任的人——他们会改变你的数据!

Google 搜索各种供应商 - Experian Data Quality 就是其中之一(我的公司!),根据您在世界的哪个位置,您可以在此处找到最佳联系方式和更多信息:http://www.qas.com/contact/office-locations.htm。我们有可以与 SQL Server 2008 R2 集成的工具,这些工具可以对不同的输入类型进行评分,然后自动为您消除这些重复数据或返回潜在组的集群以供您自己处理。

制定您的计划,清楚地了解您需要从他们那里得到什么,并与他们讨论。您选择的任何人都可以与您讨论您的计划、讨论您的目标并告诉您他们是否适合这份工作。

我想我在那里做了一点 :-) 但希望这能指引你正确的方向 - 祝你好运!

【讨论】:

  • 写得真好。自己做这件事非常困难。正如你所指出的,你必须考虑各种各样的事情。不仅是模糊字符串比较,还有昵称、地址质量等。我们使用了第三方API,它允许我们将自己的数据保留在数据库中,但仍然可以实时推断。
【解决方案2】:

如果您对多列进行模糊分组,您将获得您选择作为输入的每一列的 _similarity 信息。有了这些相似性信息,您可以计算自己的阈值等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多