基于键列拆分DataStage输出

时间:2014-07-24 13:31:16

标签: etl datastage

我有一个DataStage(8.5)作业,它生成一个CSV文件,如下所示:

Key    Date        Amount
A      2014-07-24  $100
A      2014-07-23  $120
B      2014-07-24  $320
C      2014-07-24  $20
C      2014-07-23  $100
C      2014-07-22  $30

我想为每个不同的Key生成一个带有标题的新文件,以从上面的文件中生成以下文件:

Key    Date        Amount
A      2014-07-24  $100
A      2014-07-23  $120

Key    Date        Amount
B      2014-07-24  $320

Key    Date        Amount
C      2014-07-24  $20
C      2014-07-23  $100
C      2014-07-22  $30

每个密钥的记录数和密钥值本身将根据作业的执行时间而变化。

这可以在DataStage中完成吗?如果是这样,处理阶段会是什么?

2 个答案:

答案 0 :(得分:0)

不知道这是否有帮助...... 你可以使用变换器...并创建所有输出列作为Varchar。 在键更改时添加列名称并始终将先前的值传递给输出。

如果您需要更多信息,请与我们联系

答案 1 :(得分:0)

我使用了Execute Command阶段和以下awk语句,其中key为$ 16:

awk -F "\",\"" 'NR==1 { hdr=$0; next } $16 != prev { prev=name=$16; gsub(/[^[:alnum:]_]/,"",name); $0 = hdr "\n" $0 } { print > ("/Directory/"name"_FILE.csv") }' /Directory/SOURCE_FILE.csv