《IBMDataStage技能培训》由会员分享,可在线阅读,更多相关《IBMDataStage技能培训(35页珍藏版)》请在金锄头文库上搜索。
1、IBM-DataStageIBM-DataStage技能培训技能培训培训内容大纲1 IBM DatastageV9.1.01工具介绍2 DataStage工具的组成3 Stage控件介绍,源库的连接方式及比较4 常用Stage使用的介绍5 Parallel JOB,Sequence JOB例子6 DataStage的调度7 DataStage存储过程的调用8 DataStage 备份及恢复9 DataStage常见错误处理培训内容大纲培训内容大纲什么是DataStage?最专业的ETL工具工具,价格不菲,使用难度一般。 IBM WebSphere DataStage(下面简称为DataStag
2、e)为整个 ETL 过程提供了一个图形化的开发环境,它是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集市或数据仓库的集成工具。多种字符集支持,Datastage几乎支持目前所有的编码格式。传统的数据整合方式需要大量的手工编码,而采用 IBM DataStage 进行数据整合可以大大的减少手工编码的数量,而且更加容易维护。数据整合的核心内容是从数据源中抽取数据,然后对这些数据进行转化,最终加载到目标数据库或者数据仓库中去,这也就是我们通常所说的ETL过程其它ETL集成工具Informatica 公司的PowerCenter 专业程度如Datastage旗鼓相
3、当,也是图形化界面开发,很多控件的功能与Datastage相似,价格似乎比Datastage便宜,可以在Window、Linux、Unix、Aix等多个环境上运行。Kettle Kettle 中文名叫水壶,纯java编写的开源ETL工具,开源当然就免费,免费的有些东西使用就不是很方便,很多功能需要结合Java开发,可以在Window、Linux、Unix、Aix上运行,数据抽取高效稳定。ODI Oracle数据库厂商提供的工具,有局限性,与oracle数据库耦合太深完完备的开的开发环境境 IBM WebSphere DataStage 的开发环境是基于 C/S 模式的,通过 DataStage
4、 Client 连接到DataStage Server 上进行开发,DataStage Server 支持多种平台,比如 Windows、Redhat Linux、 IBM AIX 、HP-UNIX等。 DataStage架构图DataStage可操作的数据源DataStage 能够处理多种数据源的数据,包括主机系统的大型数据库、开放系统上的关系数据库和普通的文件系统等,以下列出它所能处理的主要数据源:1、大型主机系统数据库:IMS,DB2,ADABAS,VSAM等2、开放系统的关系数据库:Oracle,DB2,Microsoft SQL Server,Teradata,Informix, S
5、ybase等3、ERP系统:SAP/R3,PeopleSoft, SAS(Statistical Analysis System )系统等4、普通文件和复杂文件系统,FTP文件系统,XML等5、 Web ServicesDataStage工具的组成DataStage企业版使用了Client-server架构,如下所示。Designer 工具Designer:用来创建各种可执行的Job(Job Sequence,Parallel Job,Server Job),修改删除各种Job,设置Job的参数;导入表的元数据(表结构),自定义用户元数据1.Job的开发2.Job的编译3.Job的执行4.Jo
6、b的DEBUG5.Job Report的生成Administrator 工具 用来执行管理任务,如建立DataStage用户、建立和删除工程并且建立清洗标准。设置工程的各种参数属性;系统的环境变量属性,服务器字符集、并行作业字符集设置,自动清除日志设置等。Manager 工具DataStage Manager主要用来管理项目资源。一个项目可能包含多个ETL Job,可以用DataStage Manager把一个项目里面的ETL Job导出来。然后再用DataStage Manager导入到另外一个项目中去,利用这个功能一方面可以实现ETL Job的备份,另一方面可以通过Manager实现多版本
7、客户端切换。在DataStage Manager里面可以把数据库中的表结构直接导入到项目中来,供这个项目中的所有ETL Job使用。9.1.01以上版本可以在Designer中直接用Import、Export对JOB、Table Definitions、Routines进行备份。Director 工具DataStage Director 主要有以下两个功能:1 监测ETL Job的运行状态ETL Job在DataStage Designer中编译好后,可以通过DataStage Director来运行它。前面在介绍DataStage Designer的时候提到在DataStage Design
8、er中也可以运行ETL Job,但是如果要监测ETL Job的运行情况还是要登陆到DataStage Director中。在这里,你可以看到ETL Job运行的详细的日志文件,还可以查看一些统计数据,比如ETL Job处理的数据量,JOB运行时长等。 2 设置ETL Job调度ETL Job开发完成后,我们可能希望ETL Job在每天的某个时间都运行一次。DataStage Director为这种需求提供了解决方案。在DataStage Director中可以设置在每天、每周或者每月的某个时间运行ETL Job。Parallel JOB 常用Stage控件介绍1.DB操作控件Oracle Co
9、nnector,ODBC Connector,DB2 Connector,Sybase,Teradata Connector2.文件操作控件常用的有Sequential File;可指定编码形式和格式的txt文件,可设置字段分隔符,行记录分隔符,日期时间格式,空值处理等。3数据处理控件主要的处理控件有Transformer、Aggregator、Join、Lookup、Copy、Sort、Filter、Switch、Remove Duplicates、Funnel、Change Capture; Transformer是负责数据转换的关键控件,在该控件中可以调用一些自定义函数。Aggregat
10、or是用于统计的控件,类似于SQL中的 GROUP BY,也提供Count、Max、Min、Sum、 AVG的统计操作,还支持如First、Last等操作。 Switch数据分流, Remove Duplicates去除重复数据, Funnel相当于Union Aall, Change Capture 根据key值做数据比对用的,华为那边做缓慢变化使用该控件。Sequence JOB常用Stage控件介绍序列:1.Job_Activity:调用对应的Parallel JOB2.Execute_Command:执行Shell、Perl等脚本,命令3.Sequencer:序列控制,有2中值,”AL
11、L”或”Any”。4.Wait_ For_File_Activity:文件等待,等待文件出现或者消失的时候开始执行后面的序列 5.UserVariables_Activity:自定义参数控件,可以定义全局参数,供整个JOB引用6.Routine_Activity:调用封装好的Routine,Routine类似于SQL中的存储过程。Demo: SEQ_POL_MAIN一个数据抽取转换装载的实例Demo: CopyCopyPjob_PRIP_LJTEMPFEE实例目的:暂收费表,根据中保信二期逻辑改造而来,介绍Prallel JOB常用Stage使用方法。制作步骤1.在Administrator里
12、定义参数,设置默认值。2.导入目标表的元数据信息(字段名称,字段类型)3.在面板上放入上页图示的控件并进行连线4.检查目标表和SQL字段别名的一一对应关系,字段个数必须相等5.填入Oracle控件数据库连接参数,导入目标表数据列,填入SQL,Test数据库连通性,SQL正确性。6. 在Transform拖入输出列,并对需要类型转换的字段做处理。7.填入文件路径,并设置字段分隔符,行记录分隔符,字符集,Null值处理,日期时间处理。8.编译并运行第一步截图设置自定义参数设置自定义参数第二步(导入目标表元数据)选择如图功能选择如图功能项,填入数据项,填入数据库参数,选择库参数,选择导入表及导入导入
13、表及导入目录目录第三步(建job并放入控件)在Designer中新建一个Paralle Job,可以使用Annotation进行美化注释第四步(填入ORACLE连接参数,SQL逻辑,并Test是否能够连通DB,SQL是否正确。)第五步(调整transform输出列,进行类型转换)第六步(填入Sequential文件参数)第七步(编译运行)点击编译,没有错误后,打开Director察看日志,然后运行DataStage的调度运行Director,选择需要设置的Job,在右键菜单中点击“Add to schedule”,在窗口中选择需要定时执行的选项DataStage存储过程的调用(方法一)可以通过
14、可以通过SQL语句块调用存储过程语句块调用存储过程DataStage存储过程的调用(方法二)两种调用比较:第一种简两种调用比较:第一种简单明了,但是取不到存储单明了,但是取不到存储过程的返回值;第二种方过程的返回值;第二种方法比较复杂,下去可以在法比较复杂,下去可以在测试环境搞搞。测试环境搞搞。DS备份(导出)可以选择不同的对象进行备份,一般建议完全备份,选择可以选择不同的对象进行备份,一般建议完全备份,选择Whole projectDS恢复(导入)可以选择不同的对象进行导入,可以选择不同的对象进行导入,.dsx 格式或格式或.XML格式格式DataStage常见错误处理(1) Filler和
15、sqlload的关键字冲突问题 DataStage在oracle全表插入的时候,原理是将文件打散后并行调用sqlldr, 由于filler字段是其关键字,所以不能有字段叫filler。测试中将其该为 filler1或其他名字。(2) Table columns和tab columns 一致的问题Stage Colums里面的名字一定要和SQL指定的字段名字,或者字段别名相同;sql里面如果有名字相同的字段,一定要有别名,保持字段名字的唯一性,Colums字段顺序要和SQL字段顺序一致,否则数据会错乱;(3) 数据库连接失败问题在Administrator客户端已经配置好DB_TNS,DB_US
16、ER,DB_PWD,但是在跑Parallel JOB的时候数据库Test不通。本次连不上数据库是因为作业属性设置的密码是错误的,重新把缺省值改为$PROJDEF连接成功。注:建议把所有参数对应的缺省值都改为$PROJDEF,表示默认从Administrator获取参数值。DataStage常见错误处理(4) Decimal类型字段生成文件,数据不符合要求 在生成文件的时候Decimal(16,2)这种带精度的字段输出的数据错误,前面补了很多0,补齐16位;把Decimal类型改为Varchar DataStage常见错误处理(5) 时间戳问题 Oracle中字段中字段类型是型是Date类型,但
17、是数据是型,但是数据是带时分秒的,分秒的,在在DS中如果中如果选用用Date类型,生成文件会型,生成文件会丢失失时分秒;改分秒;改为Timestamp类型型(6)文件数据中途换行 字段值中间有换行符,导致文件数据自动换行了;解决方法:找到换行符对应的ASCII 码值,替换成“;”或者其他符号 REPLACE(REPLACE(REPLACE(REPLACE(S.INVESTIGATIONCONCLUSION,CHR(10),),CHR(13),),CHR(124),),CHR(92),) AS INVESTIGATIONCONCLUSIONDataStage常见错误处理DataStage常见错误处理(7)主键更新问题主键更新问题 DS中中SQL SERVER控件选择控件选择 Insert then update加载方式报如下错误。加载方式报如下错误。原因:原因: Insert then update是根据主键字段进行更新目标表数据的,主键字段需要勾上,是根据主键字段进行更新目标表数据的,主键字段需要勾上,否则报主键冲突错误。否则报主键冲突错误。解决方法:勾上主键字段解决方法:勾上主键字段结束结束