如何比较 informatica Cloud 中两个文件中的列名和列顺序

问题描述

文件列每次都在不断变化,因此目标表中的数据变得混乱。我想通过在 informatica 云中创建一些程序来避免这个问题,它将检查传入源文件的列顺序和列名称与现有(正确)源文件。 如果列匹配,则只有它应该继续将数据插入目标。否则它应该失败的工作。 提前致谢

解决方法

您有两种选择。
选项 1 - 使用 UNIX head -1 dailyfile > file1head -1 modelfile > file2。然后比较file1和file2。如果两者相同,那么它是一个很好的文件,否则用 0 字节文件替换 dailyfile 并通知支持团队(或做任何您想做的事情)。

选项 2 - 有点棘手。
创建两个管道 - 一个用于模型文件,一个用于 Dailyfile。
附加一个 exp 转换并添加序列 gen(始终从 1 开始)。
然后放一个过滤器,取nextval =1.
然后比较过滤结果 - 如果它们相同,则生成标志 ='Pass' 否则为 'NoPass'。加入 SQ_dailyfile 和这个输出 - 加入条件将在这个标志上 柱子。如果 'Pass'='Pass',它将产生其他 0 行的行。您也可以在 flag = 'NoPass' 时调用 ABORT()
整个映射应该如下图所示。
Whole Map Diagram

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...