ab initio join组件以确定不匹配连接键

时间:2015-11-02 19:21:17

标签: ab-initio

我有两个相同格式和列的文件,我通过在一个木匠中传递它们并将连接键设置为所有字段来比较它们。

file a:
ID    DESC    CODE   COMMENT   VALUE
1    AFAF     34      GDG        34
2    DGF      45      DGDF       45

file b:
ID    DESC    CODE   COMMENT   VALUE
1    AFAF     34      XXX        34
2    XXX      45      DGDF       45

IN jOINER,我将加入密钥设置为{ID},{DESC},{CODE},{COMMENT},{VALUE} 使用示例文件,两个记录都将进入Unused port。

我的问题是,是否可以通过记录被拒绝的哪个字段来了解。 因为可以获得以下输出

1    AFAF     34      XXX        34  Comment mismatch
2    XXX      45      DGDF       45  DESC mismatch 

使用的图表:

Input file---->Reformat-------
                           |----Joiner----Output
Input file 2---->Reformat-----        --Unused

强文

2 个答案:

答案 0 :(得分:0)

可能但您必须修理/决定您的密钥。好像您希望将id上的这些文件作为密钥匹配,或者如果您想拥有更多密钥则添加任何文件。通过将其作为您的连接键,然后编写您的转换函数。

out.comments::if((string_upcase(string_lrtrim(in0.DESC))) != (string_upcase(string_lrtrim(in1.DESC)))) "desc mismatch" else if(do the same on other columns);

通过这样做,您将能够获得与提供的密钥匹配的记录以及哪些密钥不匹配的评论。

答案 1 :(得分:0)

如果您想识别由于存在差异的记录或字段,那么您也可以使用动态比较记录。