0

在 Talend 中,我将数据从 CSV 加载到 SQL(和 Redshift)表

如果有一个错误,我想记录并继续

我的 tMSSQLOutput 组件没有Die on Error因为我希望作业继续,但是我想记录失败(在日志表中)

当我运行时,该作业在日志窗口中以红色写入错误,但我似乎无法在后续的 tJava 组件中访问该错误

我用过 onComponentError、onComponentOK、RunIf、onSubjobError;似乎没有任何效果

当我检查以下内容时: globalMap.get("tMSSqlOutput_2_ERROR_MESSAGE") 它始终为null -- 除非我检查Die on Error这违背了目的

我想,我的方法是错误的;但我想要我想要的(实际上,我的经理想要的);有什么建议吗?

[如果提出问题的方式有问题,那不是恶意/拖钓/等;我只是需要一些帮助]

ps: die-on-error 应该是一个可用的标签;
对于 tMSSQLOutput ,这在 Talend 中很常见

4

2 回答 2

1

如果您希望即使 tMSSQLOutput 出现错误也能继续您的工作并且能够记录每个错误,您必须取消选中 tMSSQLOutput 高级选项中的“使用批处理”。然后您将能够使用组件输出中的拒绝链接(右键单击>主>拒绝)。然后您可以跟踪哪一行出错,并记录错误消息。不幸的是,这项工作会变慢,因为您将无法使用批处理选项将数据推送到数据库中。另一种选择是重新设计作业以在使用 tMSSQLOutput(使用 tMap、tFilter 等)之前拦截任何可能的错误。这样您仍然可以使用批处理选项。

于 2020-09-01T09:20:50.170 回答
1

在 Talend id 中,任何作业都有错误或失败,它不会继续该过程。作业因错误而停止。您必须解决错误并加载增量数据。

为了记录错误消息,您必须在工作中使用 tLogCatcher 并将其定向到文件。下面是设计。在你的工作中使用这个组件

在此处输入图像描述

而且您无法记录错误并继续。您必须解决错误,talend 不允许您继续错误

于 2020-09-01T06:05:10.160 回答