如何在Talend中的DB之间进行Delta同步

时间:2015-12-18 20:16:48

标签: mysql database oracle talend

这是我的第一个Talend ETL工作。我设法创造了一份工作。但它从第一个数据库获取所有数据并插入第二个数据库。

但是,当作业下次运行时,它应该只插入来自第一个DB的新记录,如果是第一个DB上的任何更新,它应该更新,如果从第一个DB中删除它,则删除该记录。< / p>

Talend中是否存在任何组件来实现此目的?请帮忙。

2 个答案:

答案 0 :(得分:0)

您需要激活生产数据库中的CDC功能,或者在数据库中查找包含插入日期和修改日期的字段,这样您就可以每次保存并加载已插入的行在存储日期之后。

答案 1 :(得分:0)

完全比较CDC - (更改数据捕获)基本上就是您所描述的内容。

根据数据量和同步频率,完全比较CDC可能不实用。

如果您不使用数据库端CDC或商业Talend CDC组件,您可以在Talend open studio中实现自己的比较算法。

确定唯一字段(或多个字段)作为源表和目标表中的公用键的用途。

对于每个作业运行,选择源表中的所有数据和目标表中的所有数据。

对于不会出现在Target表中的唯一源键;做一个插入。

对于确实出现在目标中的唯一源键,进一步比较数据以确定对目标的更新是否合适。

对于出现在目标表中但不在源中的唯一键,删除目标行。如果目标系统中有其他表引用要删除的数据,请评估正确的操作过程。这在很大程度上取决于目标系统的使用方式及其目的。

注意 - 有时人们选择将源数据加载到目标系统中的临时表中,因此可以在SQL中执行比较。