注:以上示图各个STAGE和LINK命名在实际开发中请参考《CZB-ETL-DESIGN-V1.1.DOC》
2.2.3.2. STAGE属性
a. SRC_OLD_FILE:
Stage的sheet中NLS选择“MS936”
Outputs的sheet中General界面的“File name”填入
“#$PATH_SRC_XXXX#/YYYY#DATEOLD#”,其中“XXXX”指源系统如“ACMS”,“YYYY”指该处理的源系统文件名如“IND_INFO”,“DATEOLD”指处理日前一日,必须跟参数的“处理日上一日”命名一样。
Outputs的sheet中Columns界面表示该文件的字段,可以直接导入:
b. SRC_OLD_HASH
Stage的sheet中Directory path填入“#$PATH_HASH_XXXX#”其中“XXXX”表示源系统如“ACMS”
Inputs和Outputs中的columns的字段导入参考“SRC_OLD_FILE”的Stage属性说明 c. SRC_OLD_CR
在右上部分的映射表中除了KEY外每个字段都需经过“CRC()”的处理,如下图:
d. SRC_NEW_FILE
Outputs的sheet中General界面的“File name”填入处理日当日文件,命名参考《CZB-ETL-DESIGN-V1.1.DOC》
其他部分与“SRC_OLD_FILE”的Stage属性说明一致
e. TODAY_INS/TODAY_UPD/TODAY_COLLECT
Inputs和Outputs中的columns的字段导入参考“SRC_OLD_FILE”的Stage属性说明。注:此处因为已经是经过了连续2天的数据文件的比较,所以在数据源表原有的字段最
后再增加一列“ETL_FLAG”以表示该记录是“I”还是“U”(新增和修改)
f. Update
左上部分的2个输入文件其KEY值的约束关系需填入,如下图:
将左上部分“NEW_2_COMP”表里的字段全部选中拖拽到右上部分的“COMP_2_INS”中;左上部分则将表里的除了KEY外每个字段进行比较,函数CompaCol(HASH_2_COMP.Col1,NEW_2_COMP.Col1)目的:如果记录比较发生变化则取变化值,否则就置“BDWNOCHG”。如下:
最后一个“ETL_FLAG”字段,“COMP_2_UPD”中填“U”,“COMP_2_INS”填“I” 右上部分2张表都需要填如约束条件
“COMP_2_INS”填“ISNULL(HASH_2_COMP.KeyCol)”即表示2张表比较只要旧文件中不存在而新文件中存在即认为是新增记录应该进入“COMP_2_INS”; “COMP_2_UPD”填:
Not(isnull (HASH_2_COMP.KeyCol)) and (
(NEW_2_COMP.KeyCol <> HASH_2_COMP.KeyCol) or (crc (NEW_2_COMP.Col1) <> HASH_2_COMP.Col1) or (crc (NEW_2_COMP.Col2 ) <> HASH_2_COMP.Col2 ) or
……
即表示2张比较只要同一KEY的2条记录有一个字段发生变化即认为是修改记录进入“COMP_2_UPD”
g. TODAY_CHANGE
Outputs的sheet中General界面的“File name”填入2天文件比较后生成的当日变化记录文件,命名参考《CZB-ETL-DESIGN-V1.1.DOC》
其他部分与“SRC_OLD_FILE”的Stage属性说明一致
注意:在DS10 job 中 有时一些字段的值需要在后期进行查询等操作。需要全程保留。具体的情况再具体分析。