识别重复项并使用Talend合并记录

时间:2018-07-03 10:41:04

标签: mysql-workbench talend

对于第一次和第一次使用此论坛,我还是很陌生,所以提前致歉。

我使用Talend开放式工作室Big Data(免费版本),并且作为工作的一部分,我必须进行某些集成。

我已经搜索并尝试了其他用户提到的几种解决方案,但不幸的是,它不能满足我的需求

当前,我正在一个项目中,我需要合并记录(如果发生重复),但是,如果主记录和子记录包含相同的数据,则不需要合并,这是基于个人数据的。

我们正在使用maria DB,我们的数据库包含数百个表,而从那些表中,我们只对少数几个有助于识别重复记录的表感兴趣。消除重复的概念。

因此,我们有一个人员表(personID,名字,suranme),该表链接到人员地址表(personaddid,personID,城镇,城市,县等),人员电子邮件表(personemailID,personID,电子邮件,emailtype(在家,私人,工作)和个人电话号码(personTelephoneID,personID,电话,电话类型(在家,私人,工作)。

基于这些表,我首先需要确定记录是否重复,如果重复,则仅将丢失的数据合并到主记录中。

For example,
Person Table         
PersonID    Firstname   Surname
1   Jo  Blog
2   Jo  Blog

Person Telephone         
PersonTelephoneID   PersonID    Telephone
1   1   (+44)01234567890
2   1   01234567890
1   2   (+44) 01234567890
2   2   (+44)01234567891
3   2   01234567890

这两个候选者被归类为重复,因为候选者2包含与候选者1相同的所有数据,但唯一的数字除外 因此,我希望能够识别出这两个候选者是重复的,然后基于我想要将候选者2的数据合并到候选者1中,但这还需要考虑正则表达式,例如候选者1 =( +44)01234567890与候选项2 = 01234567890相同,因此请勿将此号码插入候选项1(候选项2的电话号码将显示为“合并”,甚至删除了其他行)

Outcome candidate 1  
PersonTelephoneID   PersonID    Telephone
1   1   (+44)01234567890

将新ID插入表2(+44)01234567891

Outcome candidate 2      
PersonTelephoneID   PersonID    Telephone
1   2   "merged"

感谢您的阅读和帮助。

0 个答案:

没有答案