1. 概述
本文档是用来对ETL 开发人员初步熟悉整个基于DataStage 平台进行ETL 开发指导手册。
整个DS 处理的过程如下:
从一张业务系统数据源表到DW模型目的表的数据流处理在开发CODING中一般分4个JOB,包含一个调度JOB。
? 第一个JOB(XXXX_DS10CD)用于队连续2天的数据源表进行比较和记录的
?
筛选(选出新增和变化的)
第二个JOB(XXXX_DS20)对第一步处理后的数据进行Trim和简单的校验格式处理确认、以及生成各个目的表所需要的KEY值(比如各IP主题区域表的?
IP_ID)
第三步JOB(XXXX_DS30)将第二步处理后的数据分别映射到各个目的表、
代码转换,最终形成按照各个目的表结构的文件。
注:以下的说明及示例中所列例子都是为本文档所需而命名,具体的各个文件和STAGE的命名规范请参考《CZB-ETL-Design-V1.1.doc》
2. DS 处理流程
2.1. 组件快速使用
2.1.1. 数据源结构导入及筛选
在进行Ds 开发中,会经常对表结构进行导入导出,已加快ETL 开发速度。下面是对元数据结构如何导入和保存进行整体说明。
2.1.1.1. 结构导入
在DataStage Designer的工作窗口左边“Repository”区域的“Table Definitions”中导入数据源的表结构。导入数据结构存放路径参考《CZB-ETL-DESIGN-V1.1.DOC》。如下图:
2.1.1.2. 数据源结构筛选
导入的数据源结构跟实际ETL所需要进行加工的结构是不同的,ETL只对源结构中有用的字段进行加工,所以真正实际的数据源文件中所包含的字段是不同于数据源表的字段。DataStage要处理这些文件就需要对导入的数据源结构字段进行筛选。在“Repository”中找到该表结构,打开该表字段属性的界面,然后根据《》接口文档对不用的字段进行删除。如下图:
2.1.2. DS函数的查看
在开发过程的映射中需要用到很多函数,比如用于查询IP主题的IP_ID函数IPLookUp,查询AR主题的AR_ID函数的ARLookUp等。所有函数查看都可以使用DS manager Client 登录服务进行查看。(注意事项:不是原作者请不要进行修改其代码 ,查看后,点击 cancel) 如下图:
2.1.3. Shared Containers的查看
在开发过程中有些STAGE可以直接使用公共的“Shared Container”,比如IP主题的TEL_ADR表,只要知道电话及其该电话在IP主题中的IP_ID就可以通过名为“TELC”的Container生成符合TEL_ADR结构的文件。
(注意事项: 不是具体的源作者不要进行任何修改。否则可能对其它的引用此job的job 带来影响。打开查看后,点击cancel ,不要点击 Ok。)
如下图:
2.2. DS10CD 2.2.1. Introduction
DS10主要完成将数据源的连续2天的文件进行比较以选出新增和UPDATE的记录到CHANGE文件以供后续步骤进行。 主要STAGE包括:
? 3个Sequential File(T-1文件和T文件以及CHANGE文件)
? 1个Hashed File(T-1文件经过CRC处理后生成) ? 2个Transformer(T-1文件进行CRC处理以及比较处理) ? 2个InterProcess(分别代表比较后ins和upd的数据流) ? 1个Link Collector(将ins和upd的数据流进行合并)。
2.2.2. 参数
DS10CD 包含如下参数:
$PATH_SRC_XXXX(XXXX表示源系统如“ACMS”,下同):数据源文件存放路径 $PATH_HASH_XXXX:Hashed File存放路径 $PATH_WRK_XXXX:中间处理文件及最终文件存放路径
以上三个参数 是由Ds 的环境变量,统一添加。要添加请提交DS Project 的管理人员,暂为 :商军雷
DATEOLD:处理日上一日日期 DATENEW:处理日当日日期
注:参数命名规范请参考《CZB-ETL-DESIGN-V1.1.DOC》
2.2.3. STAGE流程 2.2.3.1. 流程方向说明
1) 前一日数据源文件到CRC处理
2) CRC处理到HASH文件
3) HASH文件和当日数据源文件到比较处理 4) 比较处理分开INSERT和UPDATE数据流 5) INSERT和UPDATE合并 6) 合并数据到第一步生成文件
示例图(本图未按照命名规范来实施,请参照具体的命名规范)