我们在其中一个源表中设置了17个记录数据,其中我们在第14个记录中存在错误数据,这导致作业失败。然后,在目标中只插入10条记录,因为mysqloutput组件中的提交大小为“10”,并且作业失败。在纠正错误记录后的下一次执行中,作业将获取成功执行的所有17条记录。因此目标中将存在重复。
我们尝试过:
为了解决这个问题,我们尝试使用tmysqlrollback组件,其中包含了tmysqlconnection和tmysqlcommit组件。
Q1:在不使用tmysqlconnection和tmysqlcommit组件的情况下,还有其他选项可以使用tmysqlrollback吗?
从文档
中探索了tmysqlrollback和commit组件https://help.talend.com/reader/QgrwjIQJDI2TJ1pa2caRQA/7cjWwNfCqPnCvCSyETEpIQ
但仍在寻找线索如何设计上述过程的有效方式。
Q2:此外,我们还想从性能角度了解RAM使用情况和磁盘空间消耗情况。
对此有任何帮助将不胜感激?
答案 0 :(得分:1)
tMysqlConnection
打开连接,然后使用tMysqlCommit
提交或使用tMysqlRollback
进行回滚。 tMysqlInput
组件上启用了流)。如果您有另一个数据库作为源,那么ram消耗取决于数据库驱动程序的配置方式(jdbc驱动程序通常接受一个参数来告诉它一次只获取一定数量的记录)。tSortRow
,tUniqRow
,tAggregateRow
等等)是导致内存问题的原因,但可以调整其使用情况(使用磁盘)等其他方法)。