如何使用Informtica读取没有页脚行的平面文件

时间:2018-11-20 23:49:02

标签: informatica informatica-powercenter

我正在工作,必须读取没有页脚行的平面文件。如何使用Informatica处理该行而不破坏文件结构。请找到下面给出的示例数据。


HEADER,FILE.TXT,2018-20-11
“ COL1”,“ COL2”,“ COL3”,“ COL4”
“戴夫”,“ 123-456-7890”,“夏洛特”,“ NC”
拖车,1

提前谢谢!

3 个答案:

答案 0 :(得分:0)

不会假装我自己做过,而是按照帖子大纲删除引号... Nico通常会出现,因此请考虑他建议的方法以及提到的过滤器Samik

https://network.informatica.com/thread/9404

答案 1 :(得分:0)

您可以使用命令来读取文件。只需将会话中的Input Type源限定符属性从File更改为Command,然后将head -n-1 yourFileName设置为Command。 这应该是技巧。

答案 2 :(得分:0)

不确定是否可以避免阅读页脚行,但是可以消除页脚行。
如果文件结构一致,则可以仅使用“过滤器”转换来过滤“ TRAILER,1”。 如果没有,您可以尝试这种方法:

SD > SQ > AGG[+ v_cnt Count(COL1)]
             [+ o_dummy=1)       ] > JN (Join by v_dummy) > FIL (where o_seq < v_cnt) > TGT
        > EXP[+ v_seq=v_seq+1    ] >
             [+ o_seq = v_seq    ]
             [+ o_dummy = 1      ]

在源限定符“拆分”后流到聚合器和表达式转换。 在Aggregator中添加两个端口:

  1. v_cnt用于计数文件中的所有行,并且
  2. o_dummy端口保留硬编码的值(“ 1”),以便与第二个流重新连接。

然后在Expression转换中添加三个新端口:

  1. v_seq用于分配序列号。
  2. o_dummy端口以保留硬编码值(“ 1”)和
  3. 返回v_seq的o_seq输出端口。

在Joiner中,通过v_dummy = v_dummy将这两个流加入,并将来自聚合器的端口设置为主服务器(以提高性能)。

如果底部的空行位于页脚行之后,则可以添加另一个过滤器(在SQ之后更好)以过滤出空行…实际上,可以通过过滤{{1}来消除所需的页脚行}