如何从tMySqlOutput捕获拒绝的行时加快数据传输速度?

时间:2019-06-13 12:48:55

标签: mysql talend

我正在将数据从一个模式中的表转移到另一模式中的表。我还需要记录由于多种原因之一而在流程中被拒绝的行,例如,NOT NULL失败的约束。

当我将拒绝链接与输出组件连接时,传输速度急剧降低至每秒2-3行。另一方面,在没有拒绝链接的情况下,我可以使用“扩展插入”选项,并将速度提高到每秒400行。

如何在不影响性能的情况下捕获拒绝的行?

2 个答案:

答案 0 :(得分:0)

我认为没有完美的选择:就您而言,我认为最好的办法是尝试在插入之前捕获空字段,并在tDBOutput之前放置一个tMap:您可以在输出中设置一个过滤器(“行.field1不为null“),第二个专用于输出拒绝的输出。这样,您可以获取被拒绝的数据,并仍使用扩展插入来获得更好的性能。

答案 1 :(得分:0)

我同意上述 @Corentin 建议的方法。我使用相同的想法想出了一个有效的解决方案。我正在使用组件 tSchemaComplianceCheck 来检查Talend中的拒绝,而不是让数据库在约束打破的情况下每一行都返回错误,并且其中包含与目标表完全相同的架构,执行此组件的拒绝链接。