这是一个有趣的问题.
我有一个带有名称和地址信息的oracle数据库,需要保持最新状态.
我们从许多不同的gov't源获取数据,并且需要找出匹配项,以及是否使用数据更新db,或者是否需要创建新记录.
没有任何类型的唯一标识符可用于将记录绑定在一起,并且数据质量并不总是那么好 - 总会有拼写错误,人们使用不同的名称(即Joe vs. Joseph)等.
我有兴趣听到那些曾经解决过这类问题的人,以及他们如何解决这个问题,或至少是自动化部分问题.
在这个领域活跃的每个主要软件公司都提供处理名称和地址解析,数据标准化,记录重复数据删除或匹配,记录链接/合并,生存等的解决方案套件.不过,它们都有点贵.
例如,Oracle针对此问题的解决方案是产品" Oracle Data Integrator(ODI)的Oracle数据质量(ODQ) ",这是其融合中间件堆栈的一部分.顾名思义,ODQ需要ODI(即,它是一个单独许可并依赖于ODI的附加模块).
IBM的Websphere解决方案套件(通过Ascential收购获得)包括QualityStage.
Business Objects现在是一家SAP公司,在其企业信息管理(EIM)套件下拥有数据质量产品.
其他主要数据质量品牌包括Dataflux(SAS公司)和Trillium Software(Harte-Hanks公司)
Gartner Group发布了年度数据质量解决方案套件的魔力象限.在这些魔力象限中评价良好的供应商通常会在其网站上向注册用户在线提供整个报告(示例1,示例2).
在开源方面,现在有一个用于执行此类记录重复数据删除/实体解析的python库:Dedupe.
需要编程技能,但它是免费的,可以在笔记本电脑上运行,而不是大型服务器.
以下是其工作原理的概述.