我有一个包含以下格式数据的文件
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中的方法
答案 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://etlinfromatica.wordpress.com/
谢谢
答案 1 :(得分:0)
看起来很简单...在平面文件目标上使用文件名端口,并使用动态创建的端口filename_out进行表达式转换,作为第一列值的派生,例如“FileOut”|| Port1 || “.DAT”
然后将filename_out的输出端口连接到目标
上的文件名输入端口