DataStage开发规范
1.1. 简介
本文档对采用DataStage工具开发ETL程序的命名及代码编写进行规范性描述。
ETL的类别说明
etltype | 说明 |
I(大写字母i) | 增量数据加载程序(Incremental) |
N | 存量加载程序(iNitial) |
Job的类别说明
jobtype | 说明 |
Cv | 变换程序(Convert),CIF层job |
Tr | 转换程序(Transform) ,LDF层job |
Ld | 加载程序(Load) ,LOD层job |
Pu | 公用Job |
SEQ | Sequence Job |
系统名--简称列表
系统名 | 系统简称 |
核心系统 | Core |
.. | … |
IDS | Ids |
Job目录结构
根目录 | 一级目录 | 描述 | 二级目录 | 描述 |
Jobs | 系统简称 | 源系统名的简称 | CIF |
|
|
|
| LDF |
|
|
|
| LOD |
|
|
|
| PUB | 系统内部无公用Job可以不建 |
|
|
| SEQ |
|
| PUB | Project的公用Job,例如SP1、SP2、SP3 |
|
|
| TMP | 临时Job |
|
|
| BACKUP | Job的备份 |
|
|
1.2.1 Job命名规范
² CIF层
ETL的类别说明_ Job的类别说明_系统简称_源表表名。系统名、源表表名要求首字母大写,其他字母小写, 如果表名存在下划线,下划线后的字母也要求首字母大写,其他字母小写。如果需要生成多个文件,在表名后直接加数字区别。例:I_Cv_Xtdm_Dld,I_Cv_Tveh_T_Reptcase1,I_Cv_Tveh_T_Reptcase2。
² LDF层
ETL的类别说明_ Job的类别说明_系统简称_目标表。系统名,目标表名(物理表名,不可以用逻辑表明)要求首字母大写,其他字母小写,如果表名存在下划线,下划线后的字母也要求首字母大写,其他字母小写;目标表名后可以加Step1的后缀,对于2步以上实现的Job,可以加Step3,Step4……例:I_Tr_ Xtdm _T_Lab,I_Tr_Xtdm_Rp_Rl_Step1。
² LOD层
ETL的类别说明_ Job的类别说明_系统简称_目标表名。系统名、目标表名(物理表名,不可以用逻辑表明)要求首字母大写,其他字母小写, 如果表名存在下划线,下划线后的字母也要求首字母大写,其他字母小写。例:I_Ld_Xtdm_Oper_Role,I_Ld_Tveh_Person。
² PUB公用Job
ETL的类别说明_ Job的类别说明_描述。描述部分可以是目标表名(物理表名,不可以用逻辑表明),SP名或一些其他功能性描述。描述要求首字母大写,其他字母小写, 如果表名存在下划线,下划线后的字母也要求首字母大写,其他字母小写。例: I_Pu_Sp_Etl_For_Inc1,I_Pu_Partition_Config。
对于系统内部自己调用的公用Job,命名使用:
ETL的类别说明_ Job的类别说明_系统简称_描述。系统名、描述要求首字母大写,其他字母小写, 如果表名存在下划线,下划线后的字母也要求首字母大写,其他字母小写。例:I_Pu_Ods_Get_Company_Id。
² SEQ队列job
SEQ_ETL的类别说明_系统简称_目标表名。系统名、目标表名(物理表名,不可以用逻辑表明)要求首字母大写,其他字母小写, 如果表名存在下划线,下划线后的字母也要求首字母大写,其他字母小写。例:SEQ_I_Ods_External_Org,SEQ_I_Ods_Cif。
1.2.2 Stage命名规范
下表没有包括全部的Stage,如果需要用到不在表格范围内的Stage,先维护进本文档后在使用。下表中的数字部分取值范围可以是1~99,对于不足两位的数字前面补0;如果开发时遇到两位数字不够用的情况,需进一步商讨确定。
Stage名 | 命名规范 |
Aggregator | AG_01 |
Copy | CP_01 |
Data Set | DS_文件名(不包括文件扩展名) |
Filter | FT_01 |
Funnel | FN_01 |
Join | JN_01 |
Lookup | LP_01 |
Lookup File Set | LS_文件名 |
Oracle Enterprise | 物理表名,字母全部大写 |
Remove Duplicates | RD_01 |
Sequential File | SF_文件名(不包括文件扩展名) |
Surrogate Key Generator | SK_01 |
Transformer | TR_01 |
Column Generator | CG_01 |
Head | HD_01 |
Merge | MG_01 |
Modify | MF_01 |
Peek | PK_01 |
Pivot | PT_01 |
Row Generator | RG_01 |
Sort | ST_01 |
Switch | SW_01 |
Tail | TL_01 |
1.2.3 DSlink命名规范
DSlink的命名为LK01,数字部分取值范围可以是1~99,对于不足两位的数字前面补0;如果开发时遇到两位数字不够用的情况,需进一步商讨确定。
1.2.4 文件命名规范
目前DataStage开发过程中的落地文件可以分为两大类:
1、 Data Set文件:
² CIF层
系统简称_源表表名_Cif.ds。系统名、源表表名要求首字母大写,其他字母小写, 如果表名存在下划线,下划线后的字母也要求首字母大写,其他字母小写。例: Xtdm_Dld_Cif.ds, Tveh_T_Reptcase_Cif.ds。
² LDF层
系统简称_描述_Ldf.ds。由于LDF层job逻辑比较复杂,有很多地方涉及到业务整合,所以不能统一要求以源表名或目标表名来命名,因此,描述部分可以是源表名或目标表名(物理表名,不可以用逻辑表明)。系统名、描述要求首字母大写,其他字母小写, 如果表名存在下划线,下划线后的字母也要求首字母大写,其他字母小写。例:Tveh_T_Lab_Ldf.ds,Xtdm_Rp_Rl_Ldf.ds。对于TMP1表增量文件,在表名后加Inc,Tveh_T_Lab_Inc_Ldf.ds。如果目标表有多个落地文件,在表名后加Tmp1,Tmp2……例:Tveh_T_Lab_Tmp1_Ldf.ds。对于LDF层生成的LOD层文件,命名以LOD层规范为准。
² LOD层
系统简称_目标表名_Lod.ds。系统名、目标表名(物理表名,不可以用逻辑表明)要求首字母大写,其他字母小写, 如果表名存在下划线,下划线后的字母也要求首字母大写,其他字母小写。例: Xtdm_Oper_Role_Lod.ds, Tveh_Person_Lod.ds。如果目标表有多个落地文件,在表名后加Tmp1,Tmp2……例:Tveh_T_Lab_Tmp1_Lod.ds。
2、 Sequential File文件
Sequential File文件一般为Rej文件,现在还没有使用,待以后补充。
1.2.5 参数命名规范
1、文件参数:参数名称全部大写,类型为String
ETLEXF
ETLCIF
ETLLDF
ETLLOD
ETLREJ
文件参数在使用是需注意,参数引用后写文件名,需要加“/”。例如,CIF层生成文件Xtdm_Dld_Cif.ds,在Data Set Stage中写为# ETLCIF# /Xtdm_Dld_Cif.ds,文件名和参数之间需要写“/”。
2、时间参数:参数名称全部大写,类型为Integer
WORKDATE
3、数据库参数:参数名称全部大写,类型为String
DBNAME
DBUSR
DBPWD
4、 表自增长ID:参数名称全部大写,类型为Integer
SEQ_物理表名_ID (一定不能写成SEQ_自增长ID字段名)
1.2.6 其他命名规范
1、 Transformer Stage中自定义的Stage变量、冗余列,要全部大写。
2、 Oracle Enterprise中的表名、User Defined SQL、自定义列名,要全部大写。
3、 Aggretator中聚合后产生的列:
聚合方式_原列名,要全部大写。
例如:对列FLF做求和,产生列应为,SUM_FLF。
4、 Surrogate Key Generator产生列:
物理表名_ID,要全部大写。