datastage入门教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 综述