两个版本的 Talend 给出不同的结果
Two versions of Talend giving different results
我有一个 Talend 作业 运行 在我的机器上运行良好,但在同事的计算机上给出了错误的结果。我有 Talend 6.1 和 Java 8(更新 181)。对方有Talend 7.1.1和Java8(更新191)。
不同之处在于连接 5 个数据流的 tMap。正如我所说,这一切对我来说都是正确的。但是其他人的设置给出的最终结果(可能)暗示其中一个连接不起作用。
您能否建议 Talend 中可能影响此的更改?
虽然很难将它拆开来找出哪个连接有问题,但最有可能的候选者是这个:
连接中的代码是这样的:
(Church.Name == null || Church.Name.length() == 0
|| Church.Denomination__c == null || Church.Denomination__c.length() == 0)
? ""
: Church.Denomination__c.toUpperCase().contains("ANGLICAN")
? "Anglican"
: Church.Denomination__c.toUpperCase().contains("APOSTOLIC")
? "Apostolic"
: Church.Denomination__c.toUpperCase().contains("Catholic")
? "Catholic"
: Church.Denomination__c.toUpperCase().contains("CHURCHES OF CHRIST")
? "Church of Christ"
: Church.Denomination__c.toUpperCase().contains("CHURCH OF CHRIST")
? "Church of Christ"
: Church.Denomination__c.toUpperCase().contains("UNITING")
? "Uniting Church of Australia"
: Church.Denomination__c
稍后编辑:为了进一步测试,我替换了那个复杂的代码,这样连接现在是一个简单的 link 使用 Church.Denomination__c
table匹配下一个table中的关键字段。同样的问题仍然存在:在我的 Talend 6.1 机器上工作,但在我同事的 Talend 7.1 机器上不工作。在他的机器上,有问题的连接永远找不到任何匹配项(因此将空值传递给下一个连接)。正如我在评论中指出的那样,我们已经仔细检查了输入到 tMap 的数据在两台机器上是否相同,并且 tMap 中的连接参数在两台机器上是否相同。
FWIW,这个作业是在我的机器上用 Talend 6.1 创建的。我导出了整个作业,我的同事将作业导入到他的 Talend 7.1 中。两者 运行 都没有任何错误消息,但给出不同的结果。
验证连接设置(在您的 'Denom' table 中,单击面板右侧的图标)是否相同:在 talend 版本之间,默认行为不相同思考(独特的match/all matches/all行)
问题已解决。差异是由 Talend 作业的两个版本 not 相同造成的。我的同事在此 tMap 之前编辑了部分工作。
我有一个 Talend 作业 运行 在我的机器上运行良好,但在同事的计算机上给出了错误的结果。我有 Talend 6.1 和 Java 8(更新 181)。对方有Talend 7.1.1和Java8(更新191)。
不同之处在于连接 5 个数据流的 tMap。正如我所说,这一切对我来说都是正确的。但是其他人的设置给出的最终结果(可能)暗示其中一个连接不起作用。
您能否建议 Talend 中可能影响此的更改?
虽然很难将它拆开来找出哪个连接有问题,但最有可能的候选者是这个:
连接中的代码是这样的:
(Church.Name == null || Church.Name.length() == 0
|| Church.Denomination__c == null || Church.Denomination__c.length() == 0)
? ""
: Church.Denomination__c.toUpperCase().contains("ANGLICAN")
? "Anglican"
: Church.Denomination__c.toUpperCase().contains("APOSTOLIC")
? "Apostolic"
: Church.Denomination__c.toUpperCase().contains("Catholic")
? "Catholic"
: Church.Denomination__c.toUpperCase().contains("CHURCHES OF CHRIST")
? "Church of Christ"
: Church.Denomination__c.toUpperCase().contains("CHURCH OF CHRIST")
? "Church of Christ"
: Church.Denomination__c.toUpperCase().contains("UNITING")
? "Uniting Church of Australia"
: Church.Denomination__c
稍后编辑:为了进一步测试,我替换了那个复杂的代码,这样连接现在是一个简单的 link 使用 Church.Denomination__c
table匹配下一个table中的关键字段。同样的问题仍然存在:在我的 Talend 6.1 机器上工作,但在我同事的 Talend 7.1 机器上不工作。在他的机器上,有问题的连接永远找不到任何匹配项(因此将空值传递给下一个连接)。正如我在评论中指出的那样,我们已经仔细检查了输入到 tMap 的数据在两台机器上是否相同,并且 tMap 中的连接参数在两台机器上是否相同。
FWIW,这个作业是在我的机器上用 Talend 6.1 创建的。我导出了整个作业,我的同事将作业导入到他的 Talend 7.1 中。两者 运行 都没有任何错误消息,但给出不同的结果。
验证连接设置(在您的 'Denom' table 中,单击面板右侧的图标)是否相同:在 talend 版本之间,默认行为不相同思考(独特的match/all matches/all行)
问题已解决。差异是由 Talend 作业的两个版本 not 相同造成的。我的同事在此 tMap 之前编辑了部分工作。