String ETL/数据仓库-如何符合维度?(比如说,将巴拉克·奥巴马、巴拉克·奥博马、巴拉克·奥博马合二为一?)

String ETL/数据仓库-如何符合维度?(比如说,将巴拉克·奥巴马、巴拉克·奥博马、巴拉克·奥博马合二为一?),string,comparison,etl,integrity,String,Comparison,Etl,Integrity,这似乎是一个常见的ETL/数据集成问题 您有多个数据源/软件系统,其中有客户名称、客户名称或员工名称。。。。当然,没有(简单的)方法来验证或屏蔽这些数据的输入。至少,如果您的业务流程和软件目前不具备上游解决方案的能力,则不会。如果不是从一开始就做的话,它通常会发生在下游 因此,在这种情况下,比如说,在每个软件/数据源中,可能95%的员工姓名都是准确的。JakeJohnson在每个软件中被列为JakeJohnson 5x 但你还有其他令人讨厌的问题。尽管有业务指导原则和实践,您可能会在一个数据库中

这似乎是一个常见的ETL/数据集成问题

您有多个数据源/软件系统,其中有客户名称、客户名称或员工名称。。。。当然,没有(简单的)方法来验证或屏蔽这些数据的输入。至少,如果您的业务流程和软件目前不具备上游解决方案的能力,则不会。如果不是从一开始就做的话,它通常会发生在下游

因此,在这种情况下,比如说,在每个软件/数据源中,可能95%的员工姓名都是准确的。JakeJohnson在每个软件中被列为JakeJohnson 5x

但你还有其他令人讨厌的问题。尽管有业务指导原则和实践,您可能会在一个数据库中输入Rob_Lowe,在另一个数据库中输入Rob_Low,在第三个数据库中输入Rob Lowe

理想的解决方案是拥有一个名称的“主列表”,每个名称都有一个(代理)ID号(例如,Rob Lowe,员工ID 9382938)----并且有一个系统,其中(Rob Lowwe)都被标记为不存在于主列表上(实际软件的下游)。。。但同时,就目前而言,“连接”到条目Rob Lowe,因为很明显(基于%的字符相似性)它们是同一件事

(使用代理密钥的原因与此无关,但基本上,如果他将自己的名字改为Rob High,则连接将被保留)

无论如何。。。我对如何通过编程检查“相似字符数”感到困惑。。。或者如果这是一个复杂的蠕虫袋


我的意思是,你不能直接比较数字位置——Rob Lowe与Rob 22 Lowe相去甚远,尽管相似性实际上相当高。

了解数据质量工具和字符串度量,如Hamming距离或Damerau–Levenshtein距离。谢谢。第二个正是我需要的。第一个很有趣,但看起来它只适用于等长字符串。我只举了两个例子,但我不是推荐最好的一个的专家。有许多不同性质的产品。一些数据质量工具包含用于字符串匹配的专用组件,例如,当然——最好的会很好,但“足够好”也可以,而且我认为Damearau Levenshtein(到达另一个的印刷错误数)在逻辑上似乎最适合于“清理”根据用户输入/错误差异很大的输入。虽然可能不是,因为人们可能会使用昵称或全名等。。。但这似乎又“足够好”。谢谢