datastage入门教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简介

DataStage 使用了 Client-Server 架构,服务器端存储所有的项目和元数据,客户端 DataStage Designer 为整个 ETL 过程提供了一个图形化的开发环境,用所见即所得的方式设计数据的抽取清洗转换整合和加载的过程。Datastage 的可运行单元是 Datastage Job ,用户在 Designer 中对 Datastage Job 的进行设计和开发。Datastage 中的 Job 分为 Server Job, Parallel Job 和

Mainframe Job ,其中 Mainframe Job 专供大型机上用,常用到的 Job 为Server Job 和 Parallel Job 。本文将介绍如何使用 Server Job 和 Parallel Job 进行 ETL 开发。

Server Job

一个 Job 就是一个 Datastage 的可运行单元。Server Job 是最简单常用的Job 类型,它使用拖拽的方式将基本的设计单元 -Stage 拖拽到工作区中,并通过连线的方式代表数据的流向。通过 Server Job,可以实现以下功能。

1.定义数据如何抽取

2.定义数据流程

3.定义数据的集合

4.定义数据的转换

5.定义数据的约束条件

6.定义数据的聚载

7.定义数据的写入

Parallel Job

Server Job 简单而强大,适合快速开发 ETL 流程。Parallel Job 与 Server Job 的不同点在于其提供了并行机制,在支持多节点的情况下可以迅速提高数据处理效率。Parallel Job 中包含更多的 Stage 并用于不同的需求,每种 Stage 使用上的限制也往往大于 Server Job。

Sequence Job

Sequence Job 用于 Job 之间的协同控制,使用图形化的方式来将多个 Job 汇集在一起,并指定了 Job 之间的执行顺序,逻辑关系和出错处理等。

数据源的连接

DataStage 能够直接连接非常多的数据源,应用围非常大,可连接的数据源包括:

•文本文件

•XML 文件

•企业应用程序,比如 SAP 、PeopleSoft 、Siebel 、Oracle Application •几乎所有的数据库系统,比如 DB2 、Oracle 、SQL Server 、Sybase ASE/IQ 、Teradata 、Informix 以及可通过 ODBC 连接的数据库等

•Web Services

•SAS 、WebSphere MQ

Server Job

Server Job 中的 Stage 综述

Stage 是构成 Datastage Job 的基本元素,在 Server Job 中,Stage 可分为以下五种:

1.General

2.Database

3.File

4.Processing

5.Real Time

本节中将介绍如何使用 Datastage 开发一个 Server Job。如图 1 所示:

图 1. Server Job

点击查看大图

Sequential File Stage

Sequential File Stage 可用来从一个 Sequential 文件中获取源数据或将数据加载到一个 Sequential 文件中。在使用 Sequential File Stage 时需要指定文件的路径和名称,文件的格式,列的定义和文件写入的类型(覆盖或追加)。

图 2. Sequential File 属性框

点击查看大图

图 3. Sequential File 列定义

点击查看大图

上图是本节例子中使用到的 Sequence File。在 Input 页中,File Name 参数代表文件的实际路径,如果文件不存在将会被自动建立。Update Action 中选择Overwrite existing file 表示此文件在加载数据之前将被清空;在 Format 页中,定义文件的格式,例如分隔符,NULL 值,首行是否为列定义等;在 Column 页中,需要输入文件的列定义。

Hash File Stage

Hash File 以主键将记录分成一个或多个部分的文件,在 Datastage 常被用做参考查找。在进行参考查找的时候,Hash File 文件会被加载到存中,因此具有较高的查找效率。

和 Sequence File 类似,使用 Hash File 时需要输入文件的实际地址,通过参数设置写入时的选项,并提供数据的列定义。需要注意的是,Hash File 需要指定主键,如果未指定,第一列被默认为主键。进行参数查找时,使用主键值在 Hash File 中搜索,如果找到则返回该数据,如果未找到则返回 NULL 值。

图 4. Hash File 属性框

点击查看大图

Transformer Stage

Transformer Stage 是一个重要的,功能强大的 Stage。它负责 ETL 过程中的数据转换操作。在 Transformer Stage 中可以指定数据的来源和目的地,匹配对应输入字段和输出字段,并指定转换规则和约束条件。

图 5. Transformer Stage 列映射

点击查看大图

Transformer Stage 中分为 5 个区域:

左上方区域,是用表格形式描述的输入数据信息。如果有多条输入数据流,则有很多表格。本例中有一个输入,一个参照查询,因此左上方有两个表格。

右上方区域,是用表格形式描述的输出信息。

左下方区域为输入的元数据列定义,包括列名,类型和长度等属性。

右下方区域为输出的元数据列定义,包括列名,类型和长度等属性。

左上方和右上方的表格由带有流向的箭头连接,代表了字段的对应关系。此例中,输入的数据只有一个字段 EMPLOYEE_ID,通过此字段在 Hash File 中进行参照查找,获取 EMPLOYEE_NAME 字段。如果在 Hash File 中找到了 EMPLOYEE_NAME 则将数据发送到输出端,这个条件是通过 Transformer Stage 提高的约束功能实现,我们在约束中的定义为 NOT(ISNULL(lkp_name.EMPLOYEE_ID))。另外无论是否在 Hash File 中查找到对应的数据,我们都将数据记录到一个 csv 文件中,即对应的 save_all 输出。

Parallel Job

Parallel Job 的 Stage 综述

相关文档
最新文档