Talend 存储导致“错误”的行号

Talend 存储导致“错误”的行号,talend,Talend,我必须从URL中检索某些信息。为此,我必须在url的字段中输入文本。我正在为此使用GET操作。我必须修改文本以将空格替换为%20。有时,从数据库中获取的文本格式不正确。我想知道行号,这样我就可以在数据库中手动更改这些行的文本并再次运行它。我曾尝试使用日志和错误部分,但运气不佳。有人知道怎么做吗?第一步:在控制台上输出错误的URL 到目前为止,我为您的问题提出了以下工作设计: 诀窍是捕获tHttpRequest组件的异常,并在控制台上打印必要的详细信息。对于这个例子,我包括了行号、异常消息和产生

我必须从URL中检索某些信息。为此,我必须在url的字段中输入文本。我正在为此使用GET操作。我必须修改文本以将空格替换为%20。有时,从数据库中获取的文本格式不正确。我想知道行号,这样我就可以在数据库中手动更改这些行的文本并再次运行它。我曾尝试使用日志和错误部分,但运气不佳。有人知道怎么做吗?

第一步:在控制台上输出错误的URL 到目前为止,我为您的问题提出了以下工作设计:

诀窍是捕获tHttpRequest组件的异常,并在控制台上打印必要的详细信息。对于这个例子,我包括了行号、异常消息和产生异常的URL

输出我无法再现您的非法字符错误,因此我选择了另一个错误:

第二个快照:输出到文件 如果您真的需要将行号输出到文件中,事情会变得更复杂一些

我们没有直接将信息打印到控制台上,而是将所有行号收集到tJavaFlex中的Java List类型的上下文变量中。在我在作业设计中省略了通常的URL处理以保持示例较小之后,我们迭代Java列表 并将其保存到tHashOutput中,以便最终写入文件

我们不能直接写入tLoop部分中的文件,因为迭代流会导致tFileInputDelimited被打开几次。如果禁用了Append,则只有最后一个错误的URL行号最终会出现在输出文件中。如果启用了Append,您将在第一次运行作业后获得完整的行号列表,但每次运行作业时都会追加行号,使列表越来越长。解决方法是使用依赖于运行时的文件名,例如时间戳,或者在作业运行开始时删除该文件。我选择了第三个选项,每次运行作业时都会覆盖文件。请在这些选项中自由选择最适合您的用例的选项

细节 默认情况下,tHashOutput/tHashInput组件不可见,但必须先启用才能显示:

上下文变量:

初始化:

tJavaFlex捕获错误,结束代码:

tLoop:

tFixedFlowInput-badURL:

tHashOutput:


需要启用附加。

数据库中的每一行不是都有一个id字段吗?如果是这样,请将其用作标识符,如果不是,我们需要知道更多信息,例如哪个数据库etcI没有说这是一个问题,我说这是一种在数据库包含错误数据时潜在地发现要更改哪一行的方法。我理解,所以您希望我存储id而不是行号。是这样吗?当您从数据库表中获取数据时,如果有行ID,也要获取行ID。。。然后,如果数据不好,只需使用正确的数据对该表行进行更新即可-但是,如果只是想存储哪些行需要更新,请存储IDB行,但我也不知道如何进行更新!!