Datastage培训1.什么是Datastage?设计jobs 抽取(Extraction)、转换(Transformation)、装载(Loading)即ETL 数据整合项目工具,如数据仓库、数据集市和系统移植。
DataStage的框架,如图-1:图-1在开发过程中是通过DataStage的四个客户端(DataStage Administrator如图-2, DataStage Manager如图-3, DataStage Designer如图-4, DataStage Director如图-5)来进行工作的。
图-2 图-3 图-4 图-5DataStage的基本开发流程:1.在Administrator中新建工程、定义全局和工程属性2.在Manager中导入元数据3.在Designer中定义job4.在Designer中编译job5. 在Director中验证,运行,监控job2.DataStage Administrator介绍主要功能:对server进行一些常规的设置、用来执行管理任务,如建立DataStage用户、新建和删除工程,设置工程的属性。
2.1.登陆登陆后的界面:在General标签中、可以看到当前server的版本是7.5.1.A,你也可以点击”NLS…”选择Client端的默认字符集。
2.2.新建工程选择Projects标签,在这里你可以选择Add按钮来新建一个工程“sjzh”如图:该工程存放的目录为“/home/dsadm/Ascential/DataStage/Projects/sjzh”在这里我们选择系统的默认路径。
选择“OK”就新建了一个工程,如图:2.3.更改“Licensing”选择“Licensing”标签,如图:在这里可以对Server和Client端的License进行更改。
比如当软件License过期时,要在不重新安装的情况下改变License就要使用这个功能。
2.4.设置Project的属性其他页面的属性,请勿修改。
2.5.设置TimeOut时间3.DataStage Manager介绍主要功能:存储和管理在Designer中定义jobs过程可再利用的元数据(在数据转换抽取过程中用到的表定义,文件输出格式,routines)、批量编译jobs、导入和导出工程等。
3.1.导入导出Job及其它组件导入●导出通过Export--→DataStage Components把设计好的job导出保存为DSX文件或者XML文件。
3.2.管理配置文件该文件是定义DataStage的网络节点、安装目录和运行时使用的临时文件。
可以配置多个节点。
目的是让作业并行、并发执行。
提高数据效率。
通过Tools- Configurations管理DataStage配置文件4.DataStage Director使用主要功能:验证(validate),运行(run),监控(monitor)你所定义的DataStage jobs,为每个job的运行定义时间表(schedule)。
4.1.运行已经编译好的Job注意以下几点:多个Job可以同时执行,但是需要仔细考虑Job的数据量,处理逻辑的复杂程度。
否则可能造成,其中一个或者多个Job异常。
Job并行运行时,可能会提高效率,但是也可能造成并行运行的时间比串行运行时间还长。
具体要看每个Job的CPU和I/O负荷。
每个Job可以生成多个Instance,多个Instance可以并发执行。
须特别注意:重新编译后同一个Job的Instance将会消失。
4.2.在Design中设置同一个Job生成多个Instance在Direct设置多个实例运行规则输入Invocation ID,即Instance No4.3.将编译好的Job加入计划任务未编译好的Job不能使用schedule。
4.4.监控Job的运行情况4.5.杀死僵死进程进入清除资源页面杀死进程5.DataStage Designer主要功能:抽取(extracting),清洗(cleansing),转换(transforming),整合(integrating)和装载(loading)数据到仓库中的表中。
常用的控件:ODBC Enterprise,Column Generator,Peek,Row Generator,Sequential File,Aggregator,Copy,Filter,FTP Enterprise,Funnel,Join,Merge,Modify,Switch,Transformer5.1.DataStage JOB属性设置进入JOB属性设置页面,并选择“允许同一个JOB多实例运行”。
设置JOB参数:5.2.Annotation功能特点:一般用于注释,可利用其背景颜色在job中分颜色区别不同功能块使用要点:5.3.数据库控件:Oracle Enterprise Stage 功能说明:从Oracle数据库中读取数据或者写数据到Oracle数据库中。
通常完成的操作:✓使用INSERT或UPDATE命令更新数据库表✓装入数据库表✓读取数据库表✓从数据库表中删除行✓在库表中直接执行查询操作✓将库表装入内存,然后执行查询操作具体用法:✓Inputs Page向数据库中写数据,关键是对Properties的配置Outputs Page:与Inputs Page类似,只是完成的是从数据库中读取数据。
5.4.Sequential File Stage功能特点:适用于一般顺序文件(定长或不定长),可识别文本文件。
使用要点:按照命名规范命名点住文件,双击鼠标,在general说明此文件内容,格式,存储目录等修改文件属性,文件名称,reject方式等到修改文件格式,比如记录结束符是什么,字段分隔符,字符串是用什么区别等输入此文件字段内容5.5.Copy Stage功能说明:Copy Stage可以有一个输入,多个输出。
它可以在输出时改变字段的顺序,但是不能改变字段类型。
注意:当只有一个输入及一个输出时最好将Force设置为True,这样可以在Designer里看到运行结束,否则将无法标识运行结束,但不会影响运行结果数据。
5.6.LookUp Stage功能说明:LookUp Stage把数据读入内存执行查询操作,将匹配的字段输出,或者在在符合条件的记录中修改或加入新的字段。
功能说明:将多个表连接后输出用JOIN Stage和LookUp Stage时做关联的字段类型和长度定义保持一致。
LookUp Stage 和 Join Stage的区别LookUp Stage将数据读入到内存中,所以效率很高,但是占用了较多的物理内存。
所以当reference data比较小的时候,我们推荐用LookUp Stage;当reference data比较大的时候,我们推荐用Join Stage。
5.8.Merge Stage功能说明:将Merge Key值相同的记录合并。
将其中的一个输入设定为Master,其余的为Update。
把Update中Merge Key相同的记录合并入Master。
5.9.Modify Stage功能说明:Modify stage 只能有一个输入及一个输出,它可以修改表结构:删除,保留一个字段;给字段改名;修改字段的数据类型。
Specification的具体用法:删除一个字段: DROP columnname [, columnname]保留一个字段: KEEP columnname [, columnname]改变字段:new_columnname [:new_type] = [explicit_conversion_function]old_columnname5.10.Aggregator StageStage类型:Processing Stage功能说明:将输入的数据分组,计算各组数据的总和或者按组进行其他的操作,最后将结果数据输出到其他的stage。
具体用法:✓Stage Page:描述stage的一般信息以及字段的分组信息和选择分组计算函数✓Inputs Page:详细描述输入数据信息,一般直接反映输入数据字段信息Oupputs Page:详细描述输出数据信息,即经过分组计算后的数据字段信息.5.11.Remove Duplicates StageStage类型:Processing Stage功能说明:输入根据关键字分好类的有序数据,去除所有记录中关键字重复的记录,通常与sort stage配合使用具体用法:✓Stage Page:Properties中的key值与之前sort stage的分类key值相同✓Inputs Page:对输入数据字段的描述Oupputs Page:对输出数据字段的描述5.12.Difference StageStage类型:Processing Stage功能说明:按字段比较两个文件,找出不同的记录。
(两个文件before和after,以before 为准,与after文件中的记录进行比较,找出before在after文件中没有或者有的记录) 具体用法:✓Stage Page比较策略说明Drop Output For Copy False:保留before及afte link中key值相同的行 True:删除before及afte link中key值相同的行Drop Output For Delete False:保留before link中有但是afte link中没有的key值所在的行True:删除before link中有但是afte link中没有的key 值所在的行Drop Output For Edit False:保留key值相同,value不同的行True:删除key值相同,value不同的行Drop Output For Insert False:保留before link中没有但afte link中有的key值所在的行True:删除before link中没有但afte link中有的key值所在的行调整before和after的顺序:✓Inputs Page:对输入数据字段的描述Oupputs Page:对输出数据字段的描述5.13.Switch StageStage类型:Processing Stage功能说明:将文件按照一定的条件(一般为字段的值)分割成多个子文件。
具体是将输入的每一条记录按照各自符合的条件(关键字的值)分配到不同的输出(Switch Stage 有一个input link 和多个output link,一个 reject link,output link最多可达128个;此功能很类似与C函数中的switch函数)。