文件拆分为不同的文件

时间:2018-01-23 11:08:14

标签: unix teradata informatica-powercenter

我有一个包含以下格式数据的文件

Col1
1,a,b,c
1,e,f,g,h,j
2,r,t,y,u,i.o
2,q,s,d,f
3,q,a,s,l
4,r,y,u,p,o
4,o,l,j,f,c,g,b,c
4,d,f,q,
.
.
.
97,w,e,r
3,f,g
100,q,a,x,c

现在我想将此文件拆分为100个不同的文件,以便每个文件都有基于第一列的数据。示例 - 第一个文件应该只有第一列中值为1的数据,第二个文件应该有第二列中以2开头的数据,依此类推,直到100个文件。

请告诉我Informatica,Unix或teradata中的方法

2 个答案:

答案 0 :(得分:1)

请使用事务控制转换来获取与列值相关的多个文件。

Take a variable port 
V_curr - Col1
V_prev - Col1
V_flag = IIF(V_curr = V_prev,0,1)

Now import transaction control transformation and pass the pipeline.
In properties, Transaction Control Condition type,
IIF(V_flag =0, TC_COMMIT_BEFORE, TC_CONTINUE_TRANSACTION)

执行工作流程后,将生成与Col1相关的多个文件。

对于参考 - https://kb.informatica.com/h2l/HowTo%20Library/1/0114-GeneratingMultipleTargetsFromOneTargetDefinition.pdf

同时检查 - https://etlinfromatica.wordpress.com/

谢谢

答案 1 :(得分:0)

看起来很简单...在平面文件目标上使用文件名端口,并使用动态创建的端口filename_out进行表达式转换,作为第一列值的派生,例如“FileOut”|| Port1 || “.DAT”

然后将filename_out的输出端口连接到目标

上的文件名输入端口