当前位置:首页 > Datastage入门培训
一、工具入门
DataStage是一个ETL的工具,就是对数据的抽取,转换,加载。个人通俗的理解就是一个对数据进行处理,提取的工具,这里面的数据大部分是以数据库中表的格式存在着的,所以如果要使用这个工具,首先必须对关系数据库的一些基本概念要有所了解,比如最基本的字段,键,记录等概念。
DataStage是通过设计job来实现ETL的功能的。 Job的设计跟普通的IDE设计一样,通过拖拽控件,并填加脚本来完成。这里的控件称为stage,每一个不同的stage都有不同的数据处理的功能,将各个stage通过一定的方式组合起来,设计成job,对job进行编译,运行,就能够实现对数据抽取转换加载。
1,安装datastage,看学习指导,先对该工具有个大概的认识,大概知道administrator,design,director,manager的区别。
了解datastage工具的主要用途:简单的说就是把一批数据input进来,经过各种各样的转化,清洗,然后在output出去,整个就是ETL 的过程。 对4个工具我们最常做的操作有:
Administrator:1、对Project的管理,主要是建立和删除project;
2、对Licensing的管理,主要是更换Licensing。
design:datastage的核心,所有的开发都在design里面完成,在这里可以编辑你的job,使用各种stage控件。
director:1、查看日志,当运行job结束时,无论job成功或者失败,我们都可以在director里面查看日志,里面能反映我们job运行的状态,经常job出错我们都是先查看日志,然后分析原因,再到design里面修改。
2、director的另外一个很有用的功能是logout job,当服务器或者网络出问题时,正在编辑的job很有可能被锁定,这时你就算把design关了再重新登陆还是无法打开job,会提示job has been used, 这就需要到director里面把job logout,然后就可以使用了。
manage:manage的最主要的功能是可以对design里面的资源进行导入导出,当我们要把开发的job从一台机器转移到另外一台机器时,就需要用到。
二、开始学习使用design,做一些简单的job,接触几个常用的stage。
做练习1的 1-2至4-2的练习,练习中用到的Oracle组件全部用sequence file 代替,
1-2练习中会教你导入练习所要用到的表的结构,练习中要用到的数据文件放在数据及表定义目录下。(表定义可以通过manage工具导入,但是数据文件必须自己手工导入,所以开发前请先将数据及表定义目录下面的所有.txt的数据文件导到你所使用的datastage的开发环境上,导数据文件的方法可以使用ftp工具)
要设计job的关键,就在于能够熟悉每个不同的stage并且能够灵活运用。在文档和指导中有对每个控件的使用方法作了图文并茂的说明,但是教材语言的一个缺点就是太过形式化,所以有些概念不能够很好的理解。比如lookup这个stage我在看教材的时候就没有太了解。所以,我就结合自己,用自己的语言对一些比较常用的stage说一下自己的理解和一些需要注意的地方。
几个常用stage的经验总结:
Sequential File Stage:这个控件实际上是指代主机上面的一个文件,在它的属性中可以选定文件的路径,目录。一般这些文件都是以类似数据库表的格式存在的。使用这个控件关键的地方在于要设置好它的格式,包括column和format这两个标签。Column指的是文件当中的列定义,一般可以通过load列定义文件来确定。Format指的是文件当中的一些分隔符,日期格式等等,在实际文件当中字段和字段之间可以用逗号,竖线,等符号隔开,每个字段本身也可以选择是否要用引号来引起来。所有这些,stage要设置成和文件一致,否则这个stage就无法真实的指代主机上面的文件。如果不知道文件的字段格式,可以登录到unix主机下面去cat一下文件。一个验证的方法是在这个stage的属性当中选择显示数据view data,如果数据能够正常显示出来,那么就表示已经设置成功了。
Transformer stage:这个控件是个功能强大的控件,在开发的时候最经常用到。它有一个输入,而可以有多个输出。它最常用的也是最好用的功能就是对单个字段进行处理和转换。基本上想对单个字段做任何的操作都能够做到。包括拼接,转换,插入等等功能,需要自己在实际操作中熟悉。需要注意的地方是它的两个附加的功能,stage的变量和constrait限制条件。正如程序设计一样,在这个stage当中可以定义一些变量,来实现一些特定的功能。比如,我们定义某个变量var1,把输入的某个字段连到这个变量上面,然后,就可以根据输入字段来定义该变量的值,再通过判断该变量的值来设置输出字段。而constraint一般都是用来限制输出的,每个输出都有一个constraint,一般都是在constraint中限制条件,当满足这个条件时,才进行这个输出。 Join Stage:这个控件顾名思义,其实就是类似数据库当中的连接操作。因此,两个输入,一个输出。在stage属性里面可以设置left,right,inner,outer等等。只要对数据库的表连接操作了解,那么这个stage也就相应了解了。
Filter Stage:这个控件有点类似数据库sql语言中的where。一个输入,可以把这个
输入理解为一张大表,在stage的属性中可以设置条件字段。多个输出,每个输出就是select * from 大表 where 条件所产生的结果。
LookUp Stage:这个控件最初看文档的时候,觉得说的不是很清楚。后来经过动手实践后,才能够真正理解。这个stage有多个输入,一个输出。有一个输入作为主输入,其它的的输入相当于是参考输入。主输入中的某些字段要来参考输入查询,然后再将结果进行输出。实际上就是一个“查表”的过程。比如主输入中有一个字段,如果值是a,到参考输入表中去查表,发现参考输入表中的a所对应的值是1,那么输出对应的字段就应该填1了。以此类推。这个控件在代码标准化的时候用到。
Change Capture Stage:这个stage是用来处理全量增量的时候用到的,在目前似乎
暂时还没有用到。这个stage个人感觉是最困难的。其中的before link,after link。Key,value之间的关系比较混乱,需要在实践中逐渐熟悉。 Annotation stage:注释用的,放一块方框,用来往里面写注释。
关于reject:刚刚接触这个概念的时候,是比较难以理解的。因为这个好像是datastage
自己所特有的概念。就我自己的理解来讲,每个文件都是由若干条记录组成的,而在这些记录里面,有一些记录是不符合规范的,比如说主键为空之类,或者某个字段不符合要求等等。这是时候,可以设定reject规则,把这些不符合规范的记录挑出来送到一个文件里面。而其他符合要求继续往下一步走,继续进行处理。
第2阶段的目标:经过这一阶段,应该熟悉datastage的使用,包括在第一阶段中说明
的administrator, design, director, manage中常用的步骤都要学会使用。
三、开发一些复杂的job,加强datastage的熟练程度
完成练习2里面的前6个job,本阶段的job有一定难度,建议做的时候,特别是遇到不知道要如何解决的问题的时候,多与有经验的开发人员交流,快速上手。
第3阶段的目标:经过这一阶段应该对datastage的开发较为熟悉,对transformer和
lookup必须应用熟练,能独立的解决一些问题,包括编译无法通过的查错,运行失败的查错等等。
四:熟悉ODS开发流程
(一)熟悉ODS开发的业务,包括熟悉需求,熟悉ETL设计框架,直至理解整个逻辑设计模型。本阶段建议开2次培训,第一次为ODS开发简要介绍,以及需求分析的格式介绍。第二次以逻辑设计模型为基础,介绍整个ETL设计框架。经过本阶段,必须达到可以根据需求做出逻辑设计模型的水平。
本阶段目标: 1、需求文档的熟悉
(1) 从需求中能看出每个job所需要的原表,和所对应的目标表,以及源到目标是一
对一,还是多对一,如果是多对一还必须理解多张表是怎样关联成一张表的。 (2) 理解需求中的所有字段映射关系,各种映射关系需要如何处理。
(3) 理解需求中的一些特殊处理,如对某些特定条件进行过滤,对某个特殊字段进行处理等。
2、熟悉ETL设计框架,参见 《ETL设计框架说明》文档。 必须熟悉下面2种转换的框架,清楚每个模块的功能。
含有codestring转换:
ETL过程框架图基于源处理个性化处理区源文件通用代码转换增量合并全量基于目标处理共性处理区ODS数据模型数据存储作业前处理MERGERENAME、RETYPE通用检核、清洗目标系统1业务逻辑处理目标代码转换/codestring生成标志文件表定义目标系统1文件作业后处理表定义MERGE目标系统2业务逻辑处理目标代码转换/codestring生成标志文件目标系统2文件转码表定义MERGE目标系统3业务逻辑处理目标代码转换/codestring生成标志文件目标系统3文件...............
不含codestring转换
ETL过程框架图基于源处理源文件基于目标处理个性化处理区增量合并全量共性处理区ODS数据模型数据存储作业前处理表定义转码MERGE通用检核、清洗通用代码转换表定义MERGE目标系统2业务逻辑处理生成标志文件目标系统2文件目标系统1业务逻辑处理生成标志文件目标系统1文件作业后处理RENAME、RETYPE表定义MERGE目标系统3业务逻辑处理生成标志文件目标系统3文件...............
共分享92篇相关文档