Datastage控件使用指南Word格式文档下载.docx
《Datastage控件使用指南Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Datastage控件使用指南Word格式文档下载.docx(45页珍藏版)》请在冰豆网上搜索。
2.3.ColumnExportStage
Stage类型:
RestructureStage
功能说明:
与ColumnImportStage相反,将多个类型不同的字段合并成一个string或者binary类型的字段。
具体用法:
✓StagePage:
关键是properties的配置,选择将哪些字段合并,合并后的新字段在Output下的column中直接定义。
✓InputsPage:
对输入数据字段的描述,这里关键是Format的配置,决定合并后的字段的格式
✓OupputsPage:
对最终合并后的输出数据字段的描述
✓经过stage的前后数据的对比
合并字段后:
2.4.ChangeCaptureStage
ChangeCaptureStage有两个输入,分别标记为beforelink及afterlink。
输出的数据表示beforelink和afterlink的区别,我们称作changeset。
ChangeCaptureStage可以和ChangeApplyStage配合使用来计算afterset。
key及value的说明
key值是比较的关键值,value是当key值相同是作进一步比较用的。
changemode选项说明:
Allkeys,ExplicitValues需要指定value,其余字段为key
ExplicitKeys&
Valueskey及value都需要指定
ExplicitKeys,AllValues需要指定key,其余的字段为value
输出策略说明
DropOutputForCopyFalse:
保留before及aftelink中key值相同的行
True:
删除before及aftelink中key值相同的行
DropOutputForDeleteFalse:
保留beforelink中有但是afterlink中没有的key值所在的行
删除beforelink中有但是aftelink中没有的key值所在的行
DropOutputForEditFalse:
保留key值相同,value不同的行
删除key值相同,value不同的行
DropOutputForInsertFalse:
保留beforelink中没有但aftelink中有的key值所在的行
删除beforelink中没有但aftelink中有的key值所在的行
2.5.CopyStage
CopyStage可以有一个输入,多个输出。
它可以在输出时改变字段的顺序,但是不能改变字段类型。
注意:
当只有一个输入及一个输出时最好将Force设置为True,这样可以在Designer里看到运行结束,否则将无法标识运行结束,但不会影响运行结果数据。
2.6.FilterStage
FilterStage只有一个输入,可以有多个输出。
根据不同的筛选条件,可以将数据输出到不同的outputlink。
2.7.FunnelStage
将多个字段相同的数据文件合并为一个单独的文件输出
合并策略说明
ContinuousFunnel:
从每一个inputlink中循环取一条记录
SortFunnel:
按照Key值排序合并输出
Sequence:
先输出第一个inputlink的数据,输出完毕后再输出第二个inputlink的数据,依此类推,直到结束。
(此时可以通过调整linkOrdering调整输出顺序)
2.8.TansformerStage
一个功能极为强大的Stage。
有一个inputlink,多个outputlink,可以将字段进行转换,也可以通过条件来指定数据输出到那个outputlink。
在开发过程中可以使用拖拽。
Constraint及Derivation的区别
Constraint通过限定条件使符合条件的数据输出到这个outputlink。
Derivation通过定义表达式来转换字段值。
在Constraint及Derivation中可以使用Jobparameters及StageVariables。
TransformerStage功能强大,但在运行过程中是以牺牲速度为代价的。
在只有简单的变换,拷贝等操作时,最好用ModifyStage,CopyStage,FilterStage等来替换TransformerStage。
2.9.SortStage
只能有一个输入及一个输出,按照指定的Key值进行排列。
可以选择升序还是降序,是否去除重复的数据等等。
Option具体说明
AllowDuplicates:
是否去除重复数据。
为False时,只选取一条数据,当StableSort为True时,选取第一条数据。
当SortUnility为UNIX时此选项无效。
SortUtility:
选择排序时执行应用程序,可以选择DataStage内建的命令或者Unix的Sort命令
OutputStatistics:
是否输出排序统计信息到job日志
StableSort:
是否对数据进行二次整理
CreateClusterKeyChangeColumn:
是否为每条记录创建一个新的字段:
clusterKeyChange。
当SortKeyMode为Don’tSort(PreviouslySorted)或Don’tSort(PreviouslyGrouped)时,对于第一条记录该字段被设置为1,其余的记录设置为0。
CreateKeyChangeColumn:
是否为每一条记录创建一个新的字段KeyChange。
2.10.LookUpStage
LookUpStage把数据读入内存执行查询操作,将匹配的字段输出,或者在在符合条件的记录中修改或加入新的字段。
2.11.JoinStage
将多个表连接后输出
●LookUpStage和JoinStage的区别
LookUpStage将数据读入到内存中,所以效率很高,但是占用了较多的物理内存。
所以当referencedata比较小的时候,我们推荐用LookUpStage;
当referencedata比较大的时候,我们推荐用JoinStage。
2.12.MergeStage
将MergeKey值相同的记录合并。
将其中的一个输入设定为Master,其余的为Update。
把Update中MergeKey相同的记录合并入Master。
2.13.ModifyStage
Modifystage只能有一个输入及一个输出,它可以修改表结构:
删除,保留一个字段;
给字段改名;
修改字段的数据类型。
Specification的具体用法:
删除一个字段:
DROPcolumnname[,columnname]
保留一个字段:
KEEPcolumnname[,columnname]
改变字段:
new_columnname[:
new_type]=[explicit_conversion_function]old_columnname
可用的explicit_conversion_function请参看《ParallelJobDeveloper’sGuide》page28-7
2.14.DataSetStage
Filestage
从dataset文件中读取数据或者写数据到dataset文件中,一个DateSetStage只能有一个输入连接(inputlink)或者一个输出连接(outputlink)。
包括StagePage,InputsPage,OutputsPage
✓StagePage通常描述了stage的一般信息,诸如名称等;
✓InputsPage描述了即要写入信息的dataset文件的详细信息;
主要是Properties和Column的定义
Properties中配置了文件的存放路径和更新策略
Column详细定义文件中的各个字段
✓OutputsPage描述了读取信息的dataset文件的详细信息;
操作过程与InputsPage类似。
2.15.FileSetStage
从fileset文件中读取数据或者写数据到fileset文件中,一个FileSetStage只能有一个输入连接(inputlink)、一个输出连接(outputlink)和一个拒绝连接(rejectslink)。
并且只能在并行模式下执行。
对Stage的基本定义
主要是Properties和Format的配置
Properties的配置:
定义文件的存取路径及其他读写的相关的参数。
特别要说明的是Options下的RejectMode的选择,当stage有rejectlink的时候,必须选择Output;
没有rejectlink时,可选择其他两个选项。
Format的配置:
定义了数据写到文件中的格式
✓OutputsPage:
对stage输出的数据字段的描述,另外,rejectlink的输出系统将默认,不需要用户自己定义字段。
2.16.LookupFileSetStage
为执行查找操作而创建的参照文件。
作为查找的参照数据,通常在参照数据比较大量或者重复使用率较高的情况下,将参照数据生成专门的LookupFileSet文件,以便提高查找的效率
✓StagePage
主要定义了查找关键字和存放路径等主要信息
创建一个LookupFileSet文件:
当作为参照数据进行查找操作时,因为文件是已经生成好的,所以在这里不需要再做详细的定义,只要引入即可。
2.17.OracleEnterpriseStage
DatabaseStage
从Oracle数据库中读取数据或者写数据到Oracle数据库中。
通常完成的操作:
✓使用INSERT或UPDATWE命令更新数据库表
✓装入数据库表
✓读取数据库表
✓从数据库表中删除行
✓在库表中直接执行查询操作
✓将库表装入内存,然后执行查询操作
✓InputsPage
向数据库中写数据,关键是对Properties的配置
与InputsPage类似,只是完成的是从数据库中读取数据。
2.18.AggregatorStage
ProcessingStage
将输入的数据分组,计算各组数据的总和或者按组进行其他的操作,最后将结果数据输出到其他的stage。
描述stage的一般信息以及字段的分组信息和选择分组计算函数
详细描述输入数据信息,一般直接反映输入数据字段信息
详细描述输出数据信息,即经过分组计算后的数据字段信息
2.19.RemoveDuplicatesStage
输入根据关键字分好类的有序数据,去除所有记录中关键字重复的记录,通常与sortstage配合使用
Properties中的key值与之前sortstage的分类key值相同
对输入数据字段的描述
对输出数据字段的描述
2.20.CompressStage
将dataset文件压缩成二进制文件(与expenddatastage相对应)
运行结果
2.21.ExpandStage
将压缩的二进制文件解压缩(解压缩compressstage生成的压缩文件)
运行结果:
2.22.DifferenceStage
按字段比较两个文件,找出不同的记录。
(两个文件before和after,以before为准,与after文件中的记录进行比较,找出before在after文件中没有或者有的记录)
比较策略说明
保留beforelink中有但是aftelink中没有的key值所在的行
调整before和after的顺序:
2.23.CompareStage
按字段对比两个已经分类的有序的文件
2.24.SwitchStage
将文件按照一定的条件(一般为字段的值)分割成多个子文件。
具体是将输入的每一条记录按照各自符合的条件(关键字的值)分配到不同的输出(SwitchStage有一个inputlink和多个outputlink,一个rejectlink,outputlink最多可达128个;
此功能很类似与C函数中的switch函数)。
定义分配记录的关键字及其值
对输出数据字段的描述,通过Mapping自定义各个输出文件中的字段
2.25.ColumnImportStage
将一个字段中的数据输出到多个字段中。
(也可以用这个stage完成分割单个字段数据到多个字段的目的,此时,输入数据应为定长或者有可以被识别的可分割的界限,必须是String或者Binary类型的,输出数据可以是任何数据类型)
关键是对Properties的配置
对输出数据字段的描述,在Column自定义输出字段
字段分割后:
3.DataStageManager使用
3.1.导入导出Job及其它组件
●导入
●导出
通过Export--à
DataStageComponents把设计好的job导出保存为DSX文件或者XML文件。
3.2.管理配置文件
通过Tools-à
Configurations管理DataStage配置文件
4.DataStageAdministrator常用配置
4.1.设置TimeOut时间
4.2.设置Project的属性
其他页面的属性,请勿修改。
4.3.更新DataStageServer的License和本地Client的License
可以更新License,注意必须在过期之前更新。
5.DataStageDirector使用
5.1.察看Job的状态,运行已经编译好的Job
✧多个Job可以同时执行,但是需要仔细考虑Job的数据量,处理逻辑的复杂程度。
否则可能造成,其中一个或者多个Job异常。
✧Job并行运行时,可能会提高效率,但是也可能造成并行运行的时间比串行运行时间还长。
具体要看每个Job的CPU和I/O负荷。
✧每个Job可以生成多个Instance,多个Instance可以并发执行。
须特别注意:
重新编译后同一个Job的Instance将会消失。
✧同一个Job生成Instance
输入InvocationID,即InstanceNo
5.2.将编译好的Job加入计划任务
未编译好的Job不能使用schedule。
5.3.监控Job的运行情况