DataStage基础培训

上传人:汽*** 文档编号:568222011 上传时间:2024-07-23 格式:PPT 页数:109 大小:4.16MB
返回 下载 相关 举报
DataStage基础培训_第1页
第1页 / 共109页
DataStage基础培训_第2页
第2页 / 共109页
DataStage基础培训_第3页
第3页 / 共109页
DataStage基础培训_第4页
第4页 / 共109页
DataStage基础培训_第5页
第5页 / 共109页
点击查看更多>>
资源描述

《DataStage基础培训》由会员分享,可在线阅读,更多相关《DataStage基础培训(109页珍藏版)》请在金锄头文库上搜索。

1、http:/公司内部使用,请勿外传 DataStage 基础基础培训培训BI应用部 高棉泉2011年年4月月http:/公司内部使用,请勿外传内容 1 DataStage概述介绍 2 DataStage组成 3 DataStage 数据类型Stage类型、JOB类型 Sequence类型 4 元数据管理 5 DataStage开发基础http:/公司内部使用,请勿外传1DataStage概述DataStage是Ascential公司的产品,后被IBM以11亿美元收购,作为WebSphere产品线的一个组成部分,命名为IBMWebSphereDataStage。DataStage可以从多个不同的

2、业务系统中,从多个平台的数据源中抽取数据,完成转换和清洗,装载到各种系统里面。其中每步都可以在图形化工具里完成,同样可以灵活的被外部系统调度,提供专门的设计工具来设计转换规则和清洗规则等,实现了增量抽取、任务调度等多种复杂而实用的功能。其中简单的数据转换可以通过在界面上拖拉操作和调用一些DataStage预定义转换函数来实现,复杂转换可以通过编写脚本或结合其他语言的扩展来实现,并且DataStage提供调试环境,可以极大提高开发和调试抽取、转换程序的效率。DataIntegrationPlatform(Ascential公司数据集成管理平台):基于客户机/服务器数据集成架构,datatstag

3、e可以优化数据收集、转换和巩固的过程。这种架构支持团队开发,能够充分利用硬件资源。客户端工具是一套集成的图形化工具,他允许多个设计者共享服务器资源,以及设计和管理个人的转换规则。http:/公司内部使用,请勿外传2 DataStage组成组成DataStage是数据仓库常用的ETL工具。版本7.5.2企业版是C/S架构,包括以下五个部件:Designer通过提供“拖放”界面设计平台,以此实现在创建执行数据集成任务JOB的同时,对数据流和转换过程创建一个可视化的演示。Manager对每个工程的各个单元,包括库表定义、集中的转换程序和元数据连接等对象进行分类和组织。Director为启动、停止和监

4、视作业提供交互式控制。Administrator在服务器端管理DataStage的工程和使用者权限的分配。DataStageServer&Server集群是数据集成的主要设备。在服务器上,你可以在运行时间内对几个并行的处理过程进行控制,服务器可以安装在NT或UNIX、LINUX环境中,通过调度平台配置服务器集群使JOB能使用多台Server资源实现集群资源负载均衡。http:/DataStage功能概述连接、抽取、转换、加载n图形化的开发环境n用来进行数据整合,功能包括数据抽取,转化,净化,加载到目标数据库或者数据仓库中, 即ETL过程(Extract, Transform, Cleansin

5、g, Load)。n使用Stage实现对数据的操作。n在整个操作数据的过程中,需要创建从不同的数据源抽取数据的Stage,以及用来转化和净化数据的Stage,还需要一些Stage将数据加载到目标数据库中n一个ETL job就是一些被连线连接在一起的Stagesn数据从一个Stage流向下一个Stage。 http:/公司内部使用,请勿外传DataStage架构图客户端各个组成部分的功能将在下文中描述http:/公司内部使用,请勿外传DataStageDesigner-主要功能ETLJob的开发DataStageDesigner里面包含了DataStage为ETL开发已经构建好的组件,主要分为两

6、种,一种是用来连接数据源的组件,另一种是用来做数据转换的组件。利用这些组件,开发人员可以通过图形化的方式进行ETLJob的开发ETLJob的编译开发好ETLJob后,可以直接在DataStageDesigner里面进行编译。如果编译不通过,编译器会帮助开发人员定位到出错的地方。ETLJob的执行编译成功后,ETLJob就可以执行了,在DataStageDesigner里面可以运行ETLJob。ETLJob的运行情况可以在DataStageDirector中看到,这方面的内容将在介绍DataStageDirector的时候提到。http:/公司内部使用,请勿外传DataStageManager-

7、主要功能主要用来管理项目资源,即元数据的管理n定义元数据在DataStageManager里面可以把数据库中的表结构直接导入到项目中来,供这个项目中的所有ETLJob使用。DataStageDesigner也提供了从数据库中直接导入表结构的功能。nETLJob备份一个项目可能包含多个ETLJob,可以用DataStageManager把一个项目里面的ETLJob导出来。然后再用DataStageManager导入到另外一个项目中去,利用这个功能一方面可以实现ETLJob的备份,nETLJob重用另一方面就是可以在多个项目之间来重复使用开发好的ETLJob。http:/公司内部使用,请勿外传Da

8、taStageDirector-主要功能主要用来管理项目资源,即元数据的管理n定义元数据在DataStageManager里面可以把数据库中的表结构直接导入到项目中来,供这个项目中的所有ETLJob使用。DataStageDesigner也提供了从数据库中直接导入表结构的功能。nETLJob备份一个项目可能包含多个ETLJob,可以用DataStageManager把一个项目里面的ETLJob导出来。然后再用DataStageManager导入到另外一个项目中去,利用这个功能一方面可以实现ETLJob的备份,nETLJob重用另一方面就是可以在多个项目之间来重复使用开发好的ETLJob。htt

9、p:/公司内部使用,请勿外传DataStageServerJOB等DataStage单元运行的基础资源nDataStageServe支持操作系统:nWindows2000SP4+(专业班,服务器版,高级服务器版)nWindows2003Server(标准版)nSunSolaris2.8,2.9,2.10nIBMAIX5.1,5.2,5.3nHP-UX111i(11.11)forPA-RISCnHP-UX11iv2(11.23)forItaniumnHP/CompaqTru645.1,5.1A,5.1BnRedHatLINUXAdvancedServer3.0nSUSELINUXEnterpri

10、seServer9nUSSz/OS1.3+(fordeploymentofparalleljobsfromDataStageUNIXserver)DataStage集群nDataStageServe可通过JAVA等应用平台以发送CMD命令方式将不同的JOB分配给不同的SERBER运行,或者将同一JOB分给不同的NOTE节点运行.http:/公司内部使用,请勿外传DataStageServer集群http:/DataServer性能公司内部使用,请勿外传关关键问题 如何满足服务层协议 如何处理未知需求 如何优化硬件投资?如何选择并发性能和串行性能可可选择方案方案手工拆分手工编码处理单线程瓶颈分区

11、间加载改变代码来适应硬件的变化手工编码实现并行数据库和分区结构当前系统实时企业需求记录重分片 自动执行 当发生以下情况不需要重新分片 增加处理器 改变硬件结构分片的范围宽 方法整个, hash, 系数源数据源数据抽取抽取转换加加载数据数据仓库http:/公司内部使用,请勿外传数据类型参数变量job类型常见Stage类型3DataStage数据类型、Stage类型、JOB类型http:/公司内部使用,请勿外传数据类型企业版提供了丰富的数据数据类型,包括日期型(Date),十进制型(Decimal),浮点型(Floatingpoint),整型(Integer),字符串(Sting),时间(Time

12、),时间截(Timestamp);另外一种是附加类型,包括矢量型(Vector),记录型(Subrecord),Tagged,Raw。vector,相当于C语言数组。subrecord类型与vector类似,不同的是它的元素可以是不同类型的,与C语言结构体相似。tag类型,与subrecord类型类似,不同的是它的第一个元素必须是标签。http:/公司内部使用,请勿外传DS变量系统变量,用于对系统的各属性进行设置.用户自定义变量,在这里的变量都可以被工程下的其它所有元素应用。系统函数Routine,系统函数可理解为内置函数,包括各种类型的转换函数和Routinehttp:/系统变量公司内部使用

13、,请勿外传以开头的变量通常为只读例如:nDATEnDAYnINROWNUMnOUTROWNUM更多参见ServerJobDevelopersGuideP299http:/公司内部使用,请勿外传用户自定义变量start_date,end_date主要用于处理逻辑日期的开始、结束日期,为JOB缺省参数;Type为String,Value为任意值,格式类似为2007-09-03;file_path用于指定ETL过程中相关文件的存放路径;Type为String,Value为服务器存放路径“/etldata/dsadm”;period_id用于类似会计期、时间维等period_id变量存储;XX_dat

14、a_source用于与数据库进行交互的链接(ETL服务器的链接串);XX_user_name用于与数据库进行交互的链接的用户名;XX_password用于与数据库进行交互的链接的密码;http:/系统函数,什么叫Routine公司内部使用,请勿外传系统函数可理解为内置函数,包括各种类型的转换函数和RoutineRoutine可理解为就是函数,包括三种类型:nBuilt-in before/after subroutines:Routines-Built-in-Before/AfternExamples of transform functions: Routines-Examples-Func

15、tionsnTransform functions used by the SDK transformshttp:/公司内部使用,请勿外传Job类型分为原子job、sequencejob和jobcontrol三大类。原子job最为常用的Job类型,Job可以组合使用,原子job是Job的最小单位。SequencejobJobSequence主要用于Job间的协作工作控制,如各Job的执行流程,出错处理,文件文件监控等。本身只起到流程的控制作用,真正还要调度具体的原子job才能实现特定的功能。Controljob是一种特殊的原子job,这种原子job不是通过Designer来设计的,而是直接通过

16、DataStage内嵌支持的Basic语言来开发,因此方式更为灵活,完全可以利用JobControl替代JobSequence,因为在出错处理和Log输出等方面要灵活很多。http:/公司内部使用,请勿外传Stage类型GeneralStage数据库Stage调试Stage文件Stage处理Stagehttp:/公司内部使用,请勿外传GeneralStage主要包括主要包括Container、 、Annotation、 、DescriptionAnnotation、 、Link。 。Annotation 对Stage和Link功能等进行注释。 一个Job可以有多个Annotation 。 设定

17、方法和Description Annotation相同。GeneralStagehttp:/公司内部使用,请勿外传GeneralStageDescriptionAnnotation 对JOB属性进行注释,一个JOB只能有一个Description Annotation。设定方法如下:http:/公司内部使用,请勿外传DataBaseStage目前常到用的DataStage中的连接数据库的Stage有Oracle Enterprise, ODBC Enterprise, Stored Procedure, Dynamic RDBMS几种。OracleEnterpriseStage Oracle

18、Enterprise作为数据源,可有一条输出线,作为目标数据,可以有一条输入线和一条reject线。 http:/公司内部使用,请勿外传A。可直接输入名称密码,如下 Password=* User=hwdw Remote Server=BISTR9_TSB。可用参数,如下: Password=#$BISTR9_PASS# User=#$BISTR9_TS_USER# Remote Server=#$BISTR9_TS_SID#Oracle Enterprise的使用方法。第一步:设定要连接的Oracle数据库名称和密码。如下图:第二步:如果Oracle Enterprise是作为数据源,需要设

19、定读取数据的方法。如果是作为目标数据,需要设定写数据的方法。第三步:设定字段。DataBaseStagehttp:/公司内部使用,请勿外传ODBCEnterpriseStage ODBC Enterprise作为数据源,可有一条输出线,作为目标数据,可以有一条输入线。 采用ODBC Enterprise可以连接Oracle,SQL Server等多个数据库。 ODBC Enterprise的使用方法。 第一步:需要在服务器端设定一个数据源名。 第二步:设定数据连接。 第三步:如果ODBC Enterprise是作为数据源,需要设定读取数据方法。 如果是作为目标数据,需要设定写入数据的方法。 第

20、四步:设定字段。DataBaseStagehttp:/公司内部使用,请勿外传StoredProcedureStage Stored Procedure可以连接Oracle,DB2,Sybase三种数据库。它可以调数据库中的存储过程,或者执行用户定义的SQL语句。 Stored Procedure的使用方法。第一步:设定数据连接。如下图: 第二步:设定要调用存储过程或者要执行的SQL语句。调用存储过程设定如下:可以直接输入数据库连接和用户名及密码,也可用变量。变量的写法如下:#parameter#DataBaseStagehttp:/公司内部使用,请勿外传ColumnGeneratorStage

21、Column Generator可以新增列,并且随机的数据来填充这些列的值。可以有一条输入线和一条输出线。Column Generator的使用方法: 第一步:设定要生成的列名 第二步:设定要输出的列,如下图:Development/DebugStage要生成的列输入新生成的列名将要输出的字段从左边拖到右边http:/公司内部使用,请勿外传RowGeneratorStageRow Generator可以根据用户的定义可以随机生成行数据,没有输入Link,可以有一条输出Link.Row Generator的使用方法第一步:设定要生成的记录数,如下图: 第二步:设定要输出的列,如下图:Develo

22、pment/DebugStagehttp:/公司内部使用,请勿外传第三步:设定生成记录的算法(双击设定列的行头),如下左图:Development/DebugStagehttp:/公司内部使用,请勿外传PeekStagePeek是在调试Job时,打印出记录值,根据用户选择的结果,将记录打印到job log或者输入到文件中。 Peek可以有一条输入数据线和多条数据线。 Peek的使用方法: 设定要打印的记录数,打印的列,打印的分区和将记录打印到job log还是文件中(如上右图)。Development/DebugStage设定打印的记录数设定打印的列设定打印的分区设定将记录打印到job log

23、还是文件http:/公司内部使用,请勿外传DataSetStageData Set是DataStage中用来存储各管理数据,一个Job保存为Data Set的数据同时可以被其它Job使用。Data Set在操作系统中是以.后缀名为.DS的文件存储。Data Set可以作为数据源有一条输出数据线,可以作为目标数据有一条输入线。SequentialFileStageSequential File可以读取一个Flat文件,或者写入一个Flat文件,作为数据源时,可以有一条输出线和reject 线,作为目标数据时,可以有一条输入线和一条reject线。FileStagehttp:/公司内部使用,请勿外

24、传LookupFileSetStageLookup File Set可以创建一个查找的文件 或者作为Lookup的一个参考集。作为数据源时,Lookup File Set只能有一个输出线且只能为Lookup的参考输入,作为目标数据时,Lookup File Set只有一个输入线。FileSetStageFile Set可以读取数据从一个文件上,或者可以将数据写入到一个文件。File Set可以有一个输入数据线,一条输出数据线和一条reject线。FileStagehttp:/公司内部使用,请勿外传示例:FileStagehttp:/公司内部使用,请勿外传AggregatorStage目的: 汇

25、总数据特性: 决定汇总组的字段可以有0个或多个。汇总函数:count (nulls/non-nulls)sum Min, maxMeanMissing value countNon-missing value countPercent coefficient of variationProcessingStagehttp:/公司内部使用,请勿外传GroupingMethodsHash: 每条汇总结果都存放在哈希表中,并且只有当所有输入处理完毕才进行结果输出该方式不需要进行数据排序,适合进行少量的数据输入。Sort: 内存只存放一条汇总结果,当有新的汇总记录产生,前一条汇总记录将输出。该方式需要

26、按照汇总的字段进行排序可以处理大量的数据Example: 信用卡的日均余额ProcessingStagehttp:/公司内部使用,请勿外传AggregatorPropertiesProcessingStagehttp:/公司内部使用,请勿外传ProcessingStageCopyStage复制一条输入数据集成多条输出数据集 。一条输入多条输出http:/公司内部使用,请勿外传ProcessingStage-Properties TabForce (Options Category)选择 True 时,DataStage 即使在只有一条输入和一条输出时也会使用Copy组件进行数据复制; 默认设置

27、的值是 False,在上述情况时会忽略Copy组件就像没有一样.-Mapping Tab输出和输入的对应映射。http:/公司内部使用,请勿外传ProcessingStageCompareStage两条输入一条输出http:/公司内部使用,请勿外传Compare StageProperties Tab:- Abort On Difference设置为True时,当两条输入的任何一条记录比较出现偏差这个组件就会Abort,默认值是 False。 设置为True时,不能再设置 Warn on Record Count Mismatch.- Warn on Record Count Mismatch

28、设置为True时,当两条输入的记录总数不一致时导致比较Abort时系统发出一条警告信息。默认值是 False。设置为True时,不能设置 Abort on difference 为.True。http:/公司内部使用,请勿外传- Equals Value设置两条输入记录相同时结果值 ,默认是0 .- First is Empty Value当第二条输入的记录总数超过第一条输入的记录总数时返回的结果值,范围在 -128 127 。输出结果用于指明第一条输入是空的情况,默认值是 1.- Greater Than Value当第一条输入的某一记录值大于第二条输入的相对应的记录值时返回的结果值,范围在

29、 -128 127 。输出结果用于指明第一条输入的某一记录的情况,默认值是 2。Compare Stagehttp:/公司内部使用,请勿外传Less Than Value当第一条输入的某一记录值小于第二条输入的相对应的记录值时返回的结果值,范围在 -128 127 。输出结果用于指明第一条输入的某一记录的情况,默认值是-1.Second is Empty Value当第一条输入的记录总数超过第二条输入的记录总数时返回的结果值,范围在 -128 127 。输出结果用于指明第二条输入是空的情况,默认值是 -2.Key指定一个或多个关键字段,用于进行比较,只有选择了的字段才进行比较并确定返回结果Co

30、mpare Stagehttp:/公司内部使用,请勿外传Key columns: bcol1 and bcol4Compare Stagehttp:/公司内部使用,请勿外传ProcessingStageDifferenceStage两条输入,一条输出输入结果用于指明输入的差异性http:/公司内部使用,请勿外传FilterStage用于过虑符合指定条件的记录一条输入,多条输出,一条reject(optionally)ProcessingStagehttp:/公司内部使用,请勿外传Properties Tab:Where clause指明过滤并输出哪些记录,使用类似where的语句output

31、links 指标该条件作用于哪些输出。 output reject 当输入的记录对所有的输出的条件都不成立时是否reject 。output row only once 指明输出是否只要第一条符合条件的记录还是所有记录。FilterStagehttp:/公司内部使用,请勿外传FilterStageLink Ordering Tab:- 用于指定输出的顺序,这个对应当设置了output row only once 选项为True时更加重要。.Mapping Tab:-用于指明输入与输出的映射关系。Where clause的表达式: 输入字段. 与输入字段相关的表达. 常量(用于比较). 布尔表达

32、式 AND ,OR.Examples:name1 name2;serialno is null;number1 0 and number2 3 and number3 = 0 or name = ZAGhttp:/公司内部使用,请勿外传ProcessingStageFunnelStage组合各个数据集成一个数据集多个输入一个输出http:/公司内部使用,请勿外传FunnelStage三种模式:Continuous Funnel : 没有顺序的组合输入数据集. 一般是从各个输入轮流获取一条记录。如果某一条输入的数据无效,不等待该输入的有效数据直接跳到下一条输入获取数据。 Sort Funnel

33、: 根据指定的关键字段组合输入(输入也要根据这些关键字段已排好顺序),并按照这些关键字段进行有序输出. Sequence: 先把第一条输入全部输出,再将第二条输入全部输出,依次类推。http:/公司内部使用,请勿外传ProcessingStageRemoveDuplicatesStage一条排序的输入一条没有重复记录的输出 当两条记录彼此邻近而且关键字段相同,就认为是记录重复。http:/公司内部使用,请勿外传RemoveDuplicates输入必须是排序的,相同关键字段的记录才能相邻-Properties TabKey 指定关键字段,可以有一个或多个.Duplicate to retain

34、指定重复的记录哪条保留,默认值是第一条。.去除重复记录的方法:1.使用Sort stage 的 unique option2.使用Remove Duplicates stage(有更多的方式进行选择)http:/公司内部使用,请勿外传JoinStage在一个或多个输入数据集合上执行连接操作并输出一个结果数据集;四种连接操作支持:Inner、Left Outer、Right Outer和 Full Outer;两个或多个输入(事先排序),一个输出 LeftPrimary Input Right Secondary input 事先的排序减轻了Join的工作量,只有少量的行需要进入RAM遵循关系型

35、数据库模型 如果发生重复会产生笛卡儿乘积 匹配不到的数据可以被捕获(Right outer、Left outer、 Full outer)ProcessingStagehttp:/公司内部使用,请勿外传JoinStageExample1http:/公司内部使用,请勿外传MergeStage输入:1个Master,N个Update输出:1个output,reject的个数与Update对应(可选)在进入RAM前对Master、Update进行排序Master的Key值允许重复,通过选择Drop/Keep来捕获Update的Key值允许重复,当Update1时,Key值重复的Update记录可以被

36、捕获;但当update1时,只保留一条记录对于Master,没有匹配的数据通过选择Drop/Keep来捕获对于Update,没有匹配的数据通过Reject捕获ProcessingStagehttp:/公司内部使用,请勿外传MergeStageExample1两个输入对不能匹配的结果是否保留:KEEP/DROPhttp:/公司内部使用,请勿外传MergeStageExample2三个输入http:/公司内部使用,请勿外传LookupStage多个输入:一个Source Link,多个Reference Link;一个输出:一个output link;一个Reject Link(可选);当匹配不成

37、功时的选项: Continue,Drop,Fail,Reject由于Lookup是在内存中进行排序、匹配的,所以进行Lookup的表不能太大。ProcessingStagehttp:/公司内部使用,请勿外传LookupStageExamplehttp:/公司内部使用,请勿外传Comparison:Joins,Lookup,MergeJoinLookupMergeMemoryusageLightHeavyLightNumberandnamesofinputs2ormore:left,right1Source,NLUTables1Master,NUdate(s)Mandatoryinputsort

38、BothinputsNoAllinputsDuplicatesinprimaryinputOKOkWarningDuplicatesinsecondaryinputOKWarningOKonlywhenN=1OptionsonunmatchedprimaryKeep(leftouter),Drop(inner)fail|continue|drop|rejectkeep|dropOptionsonunmatchedsecondaryKeep(rightouter),Drop(inner)NONECaptureinrejectset(s)Numberofoutput11out,(1reject)1

39、out,(Nrejects)Capturedinrejectset(s)NothingUnmatchedprimaryentriesUnmatchedsecondaryentrieshttp:/公司内部使用,请勿外传ProcessingStageChangeCaptureStage两个输入:两个输入:Before、After;一个输出。;一个输出。Change Capture 的功能是的功能是“捕获变化捕获变化”。即将两组数据进行对比,。即将两组数据进行对比,Before经过何经过何种变化变为种变化变为After(设置某个字段为(设置某个字段为Key Column,设置另一个字段为,设置另一个

40、字段为Value作为比作为比较的依据):较的依据): 0:Copy (当(当Key Column与与Value 完全一致时)完全一致时) 1:Insert (After中存在该记录,但中存在该记录,但Before中不存在中不存在) 2:Delete (Before 中存在该记录,但中存在该记录,但After中不存在)中不存在) 3:Edit (After与与Before的的Key Column一致,但一致,但Value不同)不同)结果的展示通过结果的展示通过“Properties”中的中的“Options”设置设置http:/公司内部使用,请勿外传ChangeCaptureStageExamp

41、lehttp:/公司内部使用,请勿外传ProcessingStageTransform基本功能数据计算,通过利用系统函数和表达式进行数据列计算转换,输入输出Mapping数据分流,定义constraints数据分流、过滤http:/公司内部使用,请勿外传TransformStage定义变量,可以在定义变量,可以在整整Transform中使用Transform Stage-数据计算http:/公司内部使用,请勿外传TransformStageTransform Stage-数据分流过滤http:/公司内部使用,请勿外传ProcessingStageSortStagehttp:/公司内部使用,请勿

42、外传ProcessingStageSwitchStage-选择分支分支http:/公司内部使用,请勿外传Switch Stage 功能说明:将文件按照一定的条件(一般为字段的值)分割成多个子文件。具体是将输入的每一条记录按照各自符合的条件(关键字的值)分配到不同的输出(SwitchStage有一个inputlink和多个outputlink,一个rejectlink,outputlink最多可达128个;此功能很类似与C函数中的switch函数)。http:/公司内部使用,请勿外传Job实例介绍3.5.1LookupStage和Aggregator应用实例3.5.2差集Minus的DS实现ht

43、tp:/公司内部使用,请勿外传LookupStage和Aggregator应用实例关联维表,通过ID找名称,并对数据进行汇总http:/公司内部使用,请勿外传差集Minus的DS实现一、用Lookup实现Minus 1、将、将Minus的字段在的字段在Lookup Stage中关联。中关联。http:/公司内部使用,请勿外传 2、在、在lookup 的的constraint 里将里将lookup failure 设为设为reject, Reject Link输输 出的数据就是出的数据就是minus的结果。的结果。http:/公司内部使用,请勿外传二、用ChangeCapture实现Minus实

44、现Minus的操作:若若T1 minus T2,那么,将,那么,将T1设为设为after,T2设为设为before。 Change capture的设置:的设置:http:/公司内部使用,请勿外传局限:T1minusT2,如果T1里面多条数据,对应T2一条,则结果不正确。T1:T2:SQLMinus的结果ChangeCapture的结果多了一条记录!多了一条记录!http:/Sequence基础控件介绍参数变量及流程控制介绍公司内部使用,请勿外传http:/SequenceStage公司内部使用,请勿外传DescriptionAnnotation 对Sequence实现功能进行注释,一个Seq

45、uence只能有一个Description Annotation。设定方法如下:http:/SequenceStage公司内部使用,请勿外传StartLoop_Activity&EndLoop_ActivityStartLoop_Activity设置循置循环开始步开始步骤,循,循环次数,循次数,循环终止止步步骤http:/SequenceStage公司内部使用,请勿外传EndLoop_Activity设置循置循环终止点,需要将止点,需要将终止止STAGE链接接到到StartLoop_Activity上去形成一个上去形成一个闭合合环路路http:/SequenceStage公司内部使用,请勿外传

46、ExceptionHandlerStage 这个Stage只有输出没有输入,该Stage的作用是在sequence发出警告信息发出警告信息(JOB发生错误的时候)将该sequence 停掉。http:/SequenceStage公司内部使用,请勿外传ExecuteCommandStage 该STAGE用于调用放置在DS SERVER端的SHELL脚本或其他的命令脚本这里填写所调用脚本这里填写所调用脚本需要用到的参数需要用到的参数http:/公司内部使用,请勿外传JobActivityJob Activity 有一条 Input线和一条Output线. 在 JOB 选项中可以将需要运行的JOB导

47、入. Trigger 选项卡中可以选择根据当前JOB运行后的结果对进行下个动作SequenceStagehttp:/SequenceStage公司内部使用,请勿外传1.1.7Nested_ConditionNested Condition 可以根椐用户的定义条件进行后面的动作该组件具有一条Input 、多条Output线http:/SequenceStage公司内部使用,请勿外传Notification_ActivityNotification_Activity 配置邮件服务器对应的信息发送邮件http:/SequenceStage公司内部使用,请勿外传1.1.7Routine_Activit

48、y该控件提供在sequence中调用 RT的功能。该控件有一条Input 线和多条Output 线http:/SequenceStage公司内部使用,请勿外传1.1.8Sequencer该控件用于终止Sequence流程的执行该控件具有多条Input 线和多条Output线http:/SequenceStage公司内部使用,请勿外传Terminator_Activity该控件提供停止所有当前活动该控件提供停止所有当前活动JOBJOB发送发送STOPSTOP命令到各活动命令到各活动JOBJOB的功能的功能发送发送STOP命令到各命令到各RUNNING JOB直接将各运行直接将各运行JOB 置为置

49、为 Abort状状态态http:/公司内部使用,请勿外传Wait_For_File_Activity该控件提供等待某个控制文件出现后激活整个该控件提供等待某个控制文件出现后激活整个 SequenceSequence的功能的功能SequenceStagehttp:/SequenceStage公司内部使用,请勿外传UserVariables_Activity该控件提供在该控件提供在SequenceSequence运行的过程中修改参数及添加参数的能力运行的过程中修改参数及添加参数的能力http:/Sequence的编译和运行公司内部使用,请勿外传http:/4.元数据管理如何自定义自己的元数据如何引

50、用元数据公司内部使用,请勿外传http:/如何自定义自己的元数据公司内部使用,请勿外传n使用DataStageManager定义元数据n元数据的类型包括:表定义,数据元素,自定义函数等等n元数据可导入导出n可分析元数据在项目中的使用情况n在开始一个项目之前,建议考虑下面的因素:n要访问的数据源的数目和类型n数据的位置n是否需要从主机数据源提取数据。如果是,那么需要安装EnterpriseMVSEdition。n数据的内容。都有哪些列?能导入表定义吗?还是需要手工定义表定义?数据的定义与其他数据源的定义一致吗?n数据仓库。想要在数据仓库中保存哪些内容,以及如何保存?n因此,整体的项目顺序是:Ad

51、ministrator-Manager-Designer-Directorn建议:建立项目的元数据命名规范http:/公司内部使用,请勿外传5 DataStage实例开发基础开发一个简单的ETL Job 业务场景:将要开发的Job是把Oracle数据库CRMDMO中的表employee的内容导入到同一数据库中的另一个表XXX_employee中去。其中两个表的结构是相同的。employee表的结构为:http:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤1n用DataStageAdministrator登录到DataStageServer。Hostsystem是安装DataStage

52、Server的主机,输入它的IP地址或者主机名。另外再输入用户名和密码后,单击按钮OKn登录后,在标签Projects中可以看到目前这个DataStageServer上面所有的项目。单击按钮Add新建一个项目http:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤2n输入项目名SampleProject,项目存储的默认路径是DataStage安装路径的Projects目录下面。n单击按钮“Browse”来改变默认路径。n注意不要钩上选择框Createprotectedproject,因为如果钩上的话你所创建的工程将没办法被改变。n单击按钮OK,可以看到在项目列表里面已经有了我们刚创建好

53、的项目SampleProject,单击按钮Close关闭DataStageAdministratorhttp:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤3n用DataStageDesigner登陆到DataSatgeServer,输入DataStageServer的IP或主机名以及用户名和密码,并指定Project为我们刚才创建的项目SampleProject。单击按钮OKn在DataStageDesigner当中单击File-New创建一个新的ETLJobhttp:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤4选择ParallelJob,单击按钮OK一个新的ETLJob

54、已经创建了,单击工具栏上的图标“保存”,或者用快捷键“CtrlS”来保存,这时候一个保存ETLJob的对话框会弹出来在弹出的对话框中。在Jobname一栏输入SampleJob,在Category中输入Sample。单击按钮OKhttp:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤5n保存好刚创建的ETL Job后,用Designer来导入数据库的表结构。在DataStage Designer的左下方的Repository中右键单击Table Definition。然后选择 ImportPug-in Meta Data Definitions n在弹出的对话框中选择ORACLE9,单

55、击按钮OK http:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤6n在弹出的对话框中,ServerName选择Source。输入用户名和密码,然后点击NEXTn选择Tables复选框之后单击按钮Nextn选择表ps_employee,把要保存到的目录改成SampleSource。然后单击按钮Importhttp:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤7重复上述步骤把存储在数据库中的表XXX_employee的表结构导入进来,这次存放的路径改成SampleTarget。完成后,可以在Repository中看到你导入的表结构http:/公司内部使用,请勿外传开发一个简单

56、的ETLJOB步骤8从左边的面板中拖入两个Oracle_OCIStage到右边的面板上。Oracle_OCIStage是用来连接Oracle数据库的,这两个Stage一个用来连接表employee,另一个用来连接表XXX_employee右键单击左边的Stage不要放开,一直拖拽鼠标到右边的Stage上面。这时候在这两个Stage之间会出现一条连线,代表了数据的流向。下面我们将配置这两个Stage的属性http:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤9双击左边的Oracle_OCI Stage,会弹出如下图所示的属性框。在标签Stage的子标签General中,设置Stage

57、name为Source,Server name为CRMDMO,User ID和 Password设置为有权限访问这个数据库的用户名和密码。选择标签页Output,保持Transaction Isolation的默认的选项Read Commited 在标签Output的子标签General中,选择Query type为Use SQL Builder tool。这样DataStage会自动帮你生成大部分的SQL代码。然后单击子标签Columns http:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤10在Columns子标签中单击按钮Load去导入刚才从数据库中导进来的表结构在弹出的对话

58、框中选择目录SampleSource中的表结构employee,然后单击按钮OK在弹出的对话框中选择要导入的表的列,默认是全选,保持默认并单击按钮OK这时候你会看到表的字段已经被导入进来。单击子标签SQLhttp:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤11n在子标签SQL中,你会看到通过SQL Builder自动生成的SQL语句。n单击按钮 View Data查看表employee中的数据,当前employee表中有两条数据。 http:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤12n现在编辑用来连接目标表的Oracle_OCIStage的属性。双击这个Stage,

59、弹出的属性设置窗口如右图所示。在标签Stage的子标签General中,Stagename设置为Target,Servername设置为CRMDMO,UserID和Password分别设置为有权限对CRMDMO数据库进行操作的用户名和密码。其他属性保持默认值,然后单击标签Inputn设置Tablename为PS_XXX_EMPLOYEE,Updateaction选择Insertrowswithoutcleaning。Createtableaction选择Donotcreatetargettable。然后单击子标签Columnshttp:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤13

60、在子标签Columns中,你会发现已经有表结构load进来了,这个表结构是和source数据库中的employee表的结构一致的。单击按钮OK并保存ETLJobhttp:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤14n在工具栏中单击图标“编译”对刚开发完的ETL Job进行编译 n编译过程中会弹出一个对话框显示编译的进行情况。最终ETL Job编译成功后对话框中会显示如下图中所示的消息:Job successfully compiled with no errors http:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤15n编译成功后,打开DataStageDirect

61、or来运行我们开发的ETLJob。从DataStageDesigner中打开DataStageDirector的方法为:从菜单栏中选择Tools-RunDirectorn打开DataStageDirector后你会在Sample目录下面发现我们开发好的ETLJobSampleJob,状态为Compiled。选择SampleJob,然后单击工具栏中的运行按钮http:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤16在弹出的对话框中可以设置运行的参数,比如出现多少个warning后ETLJob会自动中止掉。我们保持这个对话框中的默认设置,单击按钮Run这时候你会注意到SampleJob的状态从Compiled变成了Running,等到SampleJob的状态变成Finished后,该ETLJob的运行就结束了如右图所示,SampleJob的状态变成了Finished。SampleJob成功结束运行http:/公司内部使用,请勿外传开发一个简单的ETLJOB步骤17到DataStageDesigner中,用ViewData功能查看目标表XXX_employee表中的数据。你会发现和源表employee表中的数据是一样的。也说明我们开发的ETLJob成功的完成了我们想要它完成的任务http:/公司内部使用,请勿外传AQ&QUESTIONS&ANSWERS

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号