当我杀死作业并再次运行时,Talend作业会截断记录

时间:2018-03-19 13:26:53

标签: mysql sql-server-2008 talend

我正在使用Talend open studio for Data Integration工具将sql server表数据传输到mysql服务器数据库。

我有4000万条记录。 我创建并运行了该作业,但在插入约2000万后,连接失败。

当我再次尝试插入数据时,talend作业首先从表中截断数据,然后从头开始插入数据,

2 个答案:

答案 0 :(得分:1)

问题似乎不完整,但假设您希望在每次加载之前不要截断表,请检查“表上的操作”属性。它应设置为“默认”或“如果不存在则创建表”。

现在,如果你要问的是处理作业应该在下次运行时从2000万行恢复的作业的重启能力,有多种方法可以实现这一点。在你的情况下,因为你正在处理大量的记录,有一个像分页这样的机制将有助于你以块的形式加载数据(一次说10000)并循环它将提交间隔设置为10000.每次成功输入后在10000条记录的数据库中,使用数据中的时间戳或增量键进入一个日志表(标记检查点)。你的工作应该是这样的: tLoop - {从表中读取检查点} - tMSSqlInput - tMySqlOutput - {在表中加载新检查点}

答案 1 :(得分:0)

您可以在上下文变量中设置a属性,例如' loadType'哪个有价值“初始'或者'增量' 在截断表之前,你应该有'如果'链接以检查此变量的值是什么,如果它是' initial'它将被截断并且它是“增量”的。然后你可以运行你的subjob来加载数据。