datastage入门教程
- 格式:doc
- 大小:539.00 KB
- 文档页数:21
DataStage官方培训教程10DataStage是一个ETL工具,它提供了广泛的数据连接选项以及数据转换和清理功能,以帮助企业完成数据仓库构建和管理。
由于数据驱动的世界越来越重要,数据管理和ETL应用程序的需求也变得越来越迫切。
DataStage官方培训教程10涵盖了DataStage常见的任务和操作,为学习DataStage用户提供了完整的指导。
在本文中,我们将对DataStage官方培训教程10进行分析和实践,以帮助读者更好地了解和掌握DataStage。
DataStage官方培训教程10的结构和内容DataStage官方培训教程10是一本基于DataStage 11.7版本的官方培训教材。
该教材共包含15个单元,分为4个部分。
第一部分介绍了DataStage概述和安装过程,包括DataStage架构、组件、工作流程等。
第二部分介绍了DataStage的数据源定义、数据移动和数据变换。
第三部分主要介绍了DataStage的错误处理和调试,包括日志、报告、来源和目标检查等。
第四部分介绍了高级主题,如DataStage管理、性能调整、共享资源和集成JDBC驱动程序等。
DataStage官方培训教程10的学习方法和技巧DataStage官方培训教程10是一本详细的教材,需要耐心和时间来学习。
以下是一些学习方法和技巧,可以帮助读者更好地掌握DataStage。
1.按照教材结构进行学习按照各个部分和单元的结构进行学习,以便逐步深入理解每个主题。
特别是,在学习前两部分时需要仔细阅读和理解数据源定义、数据移动和数据变换的概念和操作指南,掌握其重要性和影响关系。
2.完整地跟随实例进行演示教材中提供了许多实例来示范DataStage的各个方面,读者可以用自己的DataStage环境进行实操,加深对DataStage的理解和熟练度。
值得注意的是,在学习高级主题时需要一定的实践经验和技能,否则可能会花费更多的时间和精力。
目录1. 引言 (1)2. 常用STAGE使用说明 (1)2.1.S EQUENTIAL F ILE S TAGE (1)2.2.A NNOTATION (4)2.3.C OLUMN E XPORT S TAGE (5)2.4.C HANGE C APTURE S TAGE (7)2.5.C OPY S TAGE (9)2.6.F ILTER S TAGE (10)2.7.F UNNEL S TAGE (11)2.8.T ANSFORMER S TAGE (12)2.9.S ORT S TAGE (13)2.10.L OOK U P S TAGE (14)2.11.J OIN S TAGE (14)2.12.M ERGE S TAGE (16)2.13.M ODIFY S TAGE (17)2.14.D ATA S ET S TAGE (18)2.15.F ILE S ET S TAGE (19)2.16.L OOKUP F ILE S ET S TAGE (21)2.17.O RACLE E NTERPRISE S TAGE (23)2.18.A GGREGATOR S TAGE (24)2.19.R EMOVE D UPLICATES S TAGE (26)2.20.C OMPRESS S TAGE (27)2.21.E XPAND S TAGE (28)2.22.D IFFERENCE S TAGE (29)2.23.C OMPARE S TAGE (31)2.24.S WITCH S TAGE (32)2.25.C OLUMN I MPORT S TAGE (33)3. DATASTAGE MANAGER使用 (35)3.1.导入导出J OB及其它组件 (35)3.2.管理配置文件 (37)4. DATASTAGE ADMINISTRATOR常用配置 (39)4.1.设置T IME O UT时间 (39)4.2.设置P ROJECT的属性 (40)4.3.更新D ATA S TAGE S ERVER的L ICENSE和本地C LIENT的L ICENSE (41)5. DATASTAGE DIRECTOR使用 (41)5.1.察看J OB的状态,运行已经编译好的J OB (41)5.2.将编译好的J OB加入计划任务 (44)5.3.监控J OB的运行情况 (45)1.引言DataStage EE的开发主要由DataStage Designer完成。
Datastage应用开发1 Datastage 简介Datastage包含四大部件:Administrator、Manager、Designer、Director。
1.用DataStage Administrator 新建或者删除项目,设置项目的公共属性,比如权限。
2.用DataStage Designer 连接到指定的项目上进行Job的设计;3.用DataStage Director 负责job的运行,监控等。
例如设置设计好的job的调度时间。
4.用DataStage Manager 进行Job的备份等job的管理工作。
2 设计一个JOB示例2.1 环境准备目标:将源表中数据调度到目标表中去。
1 数据库:posuser/posuser@WHORADB , ip: 192.168.100.882 源表:a_test_from3 目标表:a_test_to两者表结构一样,代码参考:create table A_TEST_FROM(ID INTEGER not null,CR_SHOP_NO CHAR(15),SHOP_NAME VARCHAR2(80),SHOP_TEL CHAR(20),YEAR_INCOME NUMBER(16,2),SHOP_CLOSE_DATE DATE,SHOP_OPEN_DATE DATE);alter table A_TEST_FROMadd constraint TEST primary key (ID);4. 示例数据:insert into A_TEST_FROM (ID, CR_SHOP_NO, SHOP_NAME, SHOP_TEL, YEAR_INCOME, SHOP_CLOSE_DATE, SHOP_OPEN_DATE)values (24402, '105420580990038', '宜昌市云集门诊部', '82714596 ', 1000, to_date('01-05-2008', 'dd-mm-yyyy'), to_date('01-06-2008', 'dd-mm-yyyy'));insert into A_TEST_FROM (ID, CR_SHOP_NO, SHOP_NAME, SHOP_TEL, YEAR_INCOME, SHOP_CLOSE_DATE, SHOP_OPEN_DATE)values (24403, '105420559982198', '于志良', '82714596 ', 2000, to_date('02-05-2008', 'dd-mm-yyyy'), to_date('02-06-2008', 'dd-mm-yyyy'));insert into A_TEST_FROM (ID, CR_SHOP_NO, SHOP_NAME, SHOP_TEL, YEAR_INCOME, SHOP_CLOSE_DATE, SHOP_OPEN_DATE)values (24404, '105420556410012', '阳光儿童广场', '82714596 ', 3000, to_date('03-05-2008', 'dd-mm-yyyy'), to_date('03-06-2008', 'dd-mm-yyyy'));insert into A_TEST_FROM (ID, CR_SHOP_NO, SHOP_NAME, SHOP_TEL, YEAR_INCOME, SHOP_CLOSE_DATE, SHOP_OPEN_DATE)values (24405, '105420580620033', '秭归县医疗中心', '82714596 ', 4000, to_date('04-05-2008', 'dd-mm-yyyy'), to_date('04-06-2008', 'dd-mm-yyyy'));insert into A_TEST_FROM (ID, CR_SHOP_NO, SHOP_NAME, SHOP_TEL, YEAR_INCOME, SHOP_CLOSE_DATE, SHOP_OPEN_DATE)values (24406, '105420559120063', '同德医药零售北门连锁店', '82714596 ', 5000, to_date('05-05-2008', 'dd-mm-yyyy'), to_date('05-06-2008', 'dd-mm-yyyy'));2.2 打开Designer任务:打开datastage designer,连接datastage服务器1.双击桌面datastage designer图标。
简介DataStage 使用了Client-Server 架构,服务器端存储所有的项目和元数据,客户端DataStage Designer 为整个ETL 过程提供了一个图形化的开发环境,用所见即所得的方式设计数据的抽取清洗转换整合和加载的过程。
Datastage 的可运行单元是Datastage Job ,用户在Designer 中对Datastage Job 的进行设计和开发。
Datastage 中的Job 分为Server Job, Parallel Job 和Mainframe Job ,其中Mainframe Job 专供大型机上用,常用到的Job 为Server Job 和Parallel Job 。
本文将介绍如何使用Server Job 和Parallel Job 进行ETL 开发。
Server Job一个Job 就是一个Datastage 的可运行单元。
Server Job 是最简单常用的Job 类型,它使用拖拽的方式将基本的设计单元-Stage 拖拽到工作区中,并通过连线的方式代表数据的流向。
通过Server Job,可以实现以下功能。
1.定义数据如何抽取2.定义数据流程3.定义数据的集合4.定义数据的转换5.定义数据的约束条件6.定义数据的聚载7.定义数据的写入Parallel JobServer Job 简单而强大,适合快速开发ETL 流程。
Parallel Job 与Server Job 的不同点在于其提供了并行机制,在支持多节点的情况下可以迅速提高数据处理效率。
Parallel Job 中包含更多的Stage 并用于不同的需求,每种Stage 使用上的限制也往往大于Server Job。
Sequence JobSequence Job 用于Job 之间的协同控制,使用图形化的方式来将多个Job 汇集在一起,并指定了Job 之间的执行顺序,逻辑关系和出错处理等。
数据源的连接DataStage 能够直接连接非常多的数据源,应用范围非常大,可连接的数据源包括:•文本文件•XML 文件•企业应用程序,比如SAP 、PeopleSoft 、Siebel 、Oracle Application•几乎所有的数据库系统,比如DB2 、Oracle 、SQL Server 、Sybase ASE/IQ 、Teradata 、Informix 以及可通过ODBC 连接的数据库等•Web Services•SAS 、WebSphere MQServer JobServer Job 中的Stage 综述Stage 是构成Datastage Job 的基本元素,在Server Job 中,Stage 可分为以下五种:1.General2.Database3.File4.Processing5.Real Time本节中将介绍如何使用Datastage 开发一个Server Job。
DataStage系列教程(Pivot_Enterprise⾏列转换)有⼈提到Pivot_Enterprise这个组件,之前没有⽤过,今天捣腾了会,写下来供以后参考,如果有什么不对的,还请多指出,谢谢!Pivot_Enterprise主要⽤来进⾏⾏列转换。
1 ⽰例如下两表数据的相互转换。
2 操作在接下来的例⼦都是⽤到三个组件,源⽂件、pivot_Enterprise、⽬标⽂件,如Figure 1所⽰。
Figure 1 所⽤到的组件2.1 列转⾏即从A->B。
这⾥主要是Pivot_Enterprise的配置。
Stage选项卡中Properties选项卡的Pivot Type设置为Horizontal。
Properties中添加⼀⾏,⾃定义个列名,设置好精度等。
双击Derivation,选择需要列转⾏的列。
Figure 2 ⽔平转换Pivot设置输出映射。
选择ID和合并的那⼀列,这样最终结果就是2列了。
Figure 3 ⽔平转换结果映射2.2 ⾏转列设置与之前的类似。
执⾏的结果类似与sql中的groupby,select后⾯可以使⽤聚合函数。
如Figure 4就添加了⼀个平均值的列。
值得注意的是图中标红的位置,我们需要根据数据的情况设置Array Size的⼤⼩。
根据最开始展⽰的B的数据,我们看到ID为a的记录有3条,所以设置为3。
Figure 4 ⾏转列Pivot设置设置Array Size⼤⼩为3之后,在【输出】【映射】选项卡中,就会⾃动⽣成3列。
我们⼀⼀映射到⽬标即可。
Figure 5 垂直转换映射⾄此,⾏列转换就完成了。
本⽂链接:。
DATESTAGE 使用实用指南1.DataStage官方文档学习笔记1.1通过右键添加link鼠标右键点击起始stage,按住右键移动鼠标到目标stage。
还有一种方法就是把鼠标放在起始stage的边缘等到变为一个小圆圈里面有一个叉的时候拖动鼠标到目标stage。
1.2DataStage中默认和隐式类型转换时注意的问题当从源向目标映射数据时,如果类型不一致,对于有些类型我们需要在modify或transfomer stage中通过函数进行转换,对于有些系统会自动完成类型转换,在类型转换过程中,注意以下几点:1 在变长到固定长度字符串的默认转换中,parallel jobs用null(ASCII 0)字符来填充剩余长度。
联系到前面做的一个parallel job,当目标是变长时(当时源也是变长,但是好像源的精度要小些),但是字符串实际的长度没有指定的变长那么长的话,系统会自动用空格(ASCII 20)来填充(具体在哪个stage 填充的不知),而且环境变量APT_STRING_PADCHAR的默认值也是空格(ASCII 20)。
2 通过环境变量APT_STRING_PADCHAR可以改变默认的填充字符null(ASCII 0)。
注:联系上面两点,感觉文档讲的与实际不符,难道我们项目的administrator改变了该环境变量的默认值?3 有个PadString 函数可以用来用指定的字符来填充一个变长的字符串到指定的长度。
这个函数的参数不能使固定长度字符串,如果是固定长度的先转化为变长。
1.3Copy Stage作为占位符在job开发中,当你暂时不知道该使用哪个stage时,可以使用copy stage作为占位符,注意不要把Force 属性设为True,在不把Force设为True时,复制将在运行时进行优化。
使用Schema file来指定meta data1 可以通过列定义和schema file两种方式来指定meta data,值得注意的一点是Note that, if you usea schema file, you should ensure that runtime column propagation is turned on. Otherwise the column definitions specified in the stage editor will always override any schema file.即,如果想通过schema file来指定meta data,必须勾上runtime column propagation,否则总是使用列定义来作为meta data。
1、【第一章】datastage简介与工作原理1、简介数据中心(数据仓库)中的数据来自于多种业务数据源,这些数据源可能是不同硬件平台上,使用不同的操作系统,数据模型也相差很远,因而数据以不同的方式存在不同的数据库中。
如何获取并向数据中心(数据仓库)加载这些数据量大、种类多的数据,已成为建立数据中心(数据仓库)所面临的一个关键问题。
针对目前系统的数据来源复杂,而且分析应用尚未成型的现状,专业的数据抽取、转换和装载工具DataStage是最好的选择。
Websphere DataStage 是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集市或数据中心(数据仓库)目标数据库的集成工具。
DataStage 能够处理多种数据源的数据,包括主机系统的大型数据库、开放系统上的关系数据库和普通的文件系统等,以下列出它所能处理的主要数据源:大型主机系统数据库:IMS,DB2,ADABAS,VSAM 等开放系统的关系数据库:Informix,Oracle,Sybase,DB2,Microsoft SQL Server等ERP 系统:SAP/R3,PeopleSoft系统等,普通文件和复杂文件系统,FTP 文件系统,XML等IIS,Netscape,Apache等Web服务器系统Outlook等Email系统。
DataStage 可以从多个不同的业务系统中,从多个平台的数据源中抽取数据,完成转换和清洗,装载到各种系统里面。
其中每步都可以在图形化工具里完成,同样可以灵活的被外部系统调度,提供专门的设计工具来设计转换规则和清洗规则等,实现了增量抽取、任务调度等多种复杂而实用的功能。
其中简单的数据转换可以通过在界面上拖拉操作和调用一些DataStage 预定义转换函数来实现,复杂转换可以通过编写脚本或结合其他语言的扩展来实现,并且DataStage 提供调试环境,可以极大提高开发和调试抽取、转换程序的效率。
DATASTAGE总结一、安装datastageA、安装服务端安装虚拟机(注册码在文件中)---解压datastage安装包redhat3__Datastage----点击解压文件中Red Hat Enterprise Linux 3---安装---在虚拟机启动---查看虚拟机IP地址,在dos窗口验证是否可以连接---打开secureCRT,连接虚拟机---进入/app/oracle/product/10.2/network/admin/tnsnames.ora中---按E键,再按i 进入编辑状态---将IP地址设为本机Ip地址,数据库实例名自己设置---按ESC、W、Q、:键退出---完成B、安装客户端解压datastage客户端安装包Datastageclient---点击解压文件datastage7.5.3\datastage client---安装---注册码在datastage7.5.1下载地址及license中----完成二、DATASTAGE主键1、transforme r(oracle----transformer---file)数据源oracle设置properties\source\readmethod=auto-generated sqlproperties\source\table=要导入的表名点击connection,出现remote server=数据库实例名,user=Scott,password=tigerColumns下将length设置合适---load---oracleI9--选定导入的表名---ok注意:若不知道导入表的格式Columns下将length设置合适---load---import---plug-in meda data definitions---oracleI9--ok---数据库实例名,用户名、密码---ok--选择Scott用户下---选表--- 导入Transformer设置:将需要显示的字段拖拽过去---ok目标文件file设置:properties下file--填入保存路径first line is columns name=trueFomat下点击record level 添加record delimiter 属性为UNIX newline点击field defaults 添加 null field value 属性为0 Quote=noneColumns下将length设置合适----ok以下主键数据源或目标文件为oracle/file的设置同上transformer的设置方法2、转存(file---transformer---file)Transformer设置:将需要显示的字段拖拽过去---ok3、导入(file---transformer---oracle)Transformer设置:将需要显示的字段拖拽过去---ok4、copy(file--copy--多file):一个输入,多个输出Copy设置:stage当只有一个输入及一个输出时最好将Force设置为TrueOutput下将需要显示的字段拖拽过去---ok5、filter(file--filter---多file):只有一个输入,可以有多个输出Filter设置:stage下properties\where clause=过滤条件--点击whereclause出现output link=slink值(在link orderingzhong看对应值) Output下将需要显示的字段拖拽过去---ok6、join(多oracle---join---file):多表连接Join设置:stage下properties\join keys\key=关联字段,options\join type=连接类型(内、全、左、右连接)Output下将需要显示的字段拖拽过去---ok7、look up(多oracle---look up--file):数据的查询Look up设置:将关联字段连接,再将需要显示的字段拖拽过去8、merge(多file---merge---file):相同数据的合并Merge设置:stage下properties\merge keys\key=字段,sort order=排序Options下unmatched masters mode=保留/删除Output下将需要显示的字段拖拽过去---ok9、funnel(多file---funnel---file):数据的合并Funnel设置:stage下properties\options\funnel type=选择合并方式Output下将需要显示的字段拖拽过去---ok10、aggregator(oracle---aggregator---file):数据的分类、汇总Aggregator设置:stage下properties\grouping keys\group=分组字段点击aggregations\aggregation type出现column for calculation=聚合字段及合方式,可以取最大值,最小值, Sum值,count值等多种聚合方式。
DATASTAGE的介绍及基本操作DataStage的基本操作包括设计和开发数据集成任务、管理数据集成任务的执行、监控任务的运行状态和性能等。
下面将分别介绍DataStage 的设计和开发、任务管理和监控等方面的基本操作。
1.设计和开发数据集成任务:- 创建项目:在DataStage中创建一个新的项目,并指定项目的名称和存储位置。
-创建作业流:在项目中创建一个新的作业流,并指定作业流的名称和描述。
-添加源和目标:将源数据和目标数据的连接器添加到作业流中,并配置其连接属性。
-设计转换:使用图形化工具将数据转换逻辑以节点的方式添加到作业流中。
可以使用预定义的转换函数、过滤器和聚合函数,并自定义转换规则。
-配置作业参数:为作业流设置参数,例如源数据的路径、目标数据的路径等。
-配置作业调度:定义作业流的调度规则,例如每日、每周或每月执行一次。
2.任务管理:- 启动任务:在DataStage的用户界面中选择要执行的作业流,并单击启动按钮来启动任务。
-监控任务状态:查看任务的运行状态,例如正在运行、已完成或已失败。
-管理调度:可以根据需要修改任务的调度规则,例如修改任务的执行时间或频率。
-管理依赖关系:设置任务之间的依赖关系,例如一个任务的输出作为另一个任务的输入,确保任务按照正确的顺序执行。
3.监控任务:- 实时监控:在DataStage的用户界面中查看任务的实时执行情况,包括输入/输出数据的数量、处理速度、错误记录等。
-查看日志:查看任务执行的详细日志,包括每个节点的执行情况、输入/输出数据的详细信息、转换规则的执行结果等。
-分析性能:分析任务的性能指标,例如任务的执行时间、内存使用情况、CPU利用率等,以优化任务的运行效率。
DataStage还提供了其他高级功能,例如数据质量检查、数据变化捕获和增量加载等。
此外,DataStage与其他数据集成工具和平台的集成也是可能的,例如与大数据处理框架Hadoop、数据仓库工具Teradata等的集成。
简介DataStage 使用了Client-Server 架构,服务器端存储所有的项目和元数据,客户端DataStage Designer 为整个ETL 过程提供了一个图形化的开发环境,用所见即所得的方式设计数据的抽取清洗转换整合和加载的过程。
Datastage 的可运行单元是Datastage Job ,用户在Designer 中对Datastage Job 的进行设计和开发。
Datastage 中的Job 分为Server Job, Parallel Job 和Mainframe Job ,其中Mainframe Job 专供大型机上用,常用到的Job 为Server Job 和Parallel Job 。
本文将介绍如何使用Server Job 和Parallel Job 进行ETL 开发。
Server Job一个Job 就是一个Datastage 的可运行单元。
Server Job 是最简单常用的Job 类型,它使用拖拽的方式将基本的设计单元-Stage 拖拽到工作区中,并通过连线的方式代表数据的流向。
通过Server Job,可以实现以下功能。
1.定义数据如何抽取2.定义数据流程3.定义数据的集合4.定义数据的转换5.定义数据的约束条件6.定义数据的聚载7.定义数据的写入Parallel JobServer Job 简单而强大,适合快速开发ETL 流程。
Parallel Job 与Server Job 的不同点在于其提供了并行机制,在支持多节点的情况下可以迅速提高数据处理效率。
Parallel Job 中包含更多的Stage 并用于不同的需求,每种Stage 使用上的限制也往往大于Server Job。
Sequence JobSequence Job 用于Job 之间的协同控制,使用图形化的方式来将多个Job 汇集在一起,并指定了Job 之间的执行顺序,逻辑关系和出错处理等。
数据源的连接DataStage 能够直接连接非常多的数据源,应用范围非常大,可连接的数据源包括:∙文本文件∙XML 文件∙企业应用程序,比如SAP 、PeopleSoft 、Siebel 、Oracle Application∙几乎所有的数据库系统,比如DB2 、Oracle 、SQL Server 、Sybase ASE/IQ 、Teradata 、Informix 以及可通过ODBC 连接的数据库等∙Web Services∙SAS 、WebSphere MQServer JobServer Job 中的Stage 综述Stage 是构成Datastage Job 的基本元素,在Server Job 中,Stage 可分为以下五种:1.General2.Database3.File4.Processing5.Real Time本节中将介绍如何使用Datastage 开发一个Server Job。
Datastage虚拟机配置指南Datastage配置文档由于Datastage是个C/S架构的,如下图所示:因此首先要通过本机客户端(Client)连接服务器(Server),然后再通过服务器(Server)连接数据库(Database)。
本文档主要介绍如何通过配置虚拟机的连接方式,从而连接本机客户端(Client),虚拟机上的服务器(Server)及其本机的数据库(Database)。
具体方式如下:1.打开VMware Workstation,依次点击File ->Open。
2.找到服务器虚拟机存放路径,并打开Red Hat Enterprise Linux 4.vmx(或者直接进入Red Hat 4文件夹,双击打开Red Hat Enterprise Linux 4.vmx)。
3.启动服务器虚拟机,点击红圈所示。
4.对弹出的对话框全部点OK。
5.等待服务器虚拟机启动完毕,使用Username:dsadm及其Password:dsadm登录。
6.修改虚拟机连接方式为NAT,依次点击VMware Workstation 右下角的网络连接设置(图中红圈所示)-> Setting并在弹出的对话框中选择NAT,然后点击OK。
7.打开虚拟机的网卡配置。
在虚拟机中依次点击左上角的Applications -> SystemTools -> Network Device Control.8.然后选择Configure。
此时会提示输入Root密码,在这里输入:wangli,然后点OK。
9.配置网卡,选择所要配置的网卡,然后点击Edit。
10.设置虚拟机IP。
Address: 192.168.92.X(和Dafault gateway address 相对应。
X可以随便写,范围2-253),Subnet mask:255.255.255.0Dafault gateway address:192.168.92.1(注意,此处填写的是本机中虚拟网卡VMnet8的IP地址,比如说我的机器为192.168.92.1。
DataStage开发指南DataStage开发指南DataStage EE开发指南目录目录 ..................................................................... . (I)1. 引言 ..................................................................... .........................................................................1 1.1 编写目的 ..................................................................... ............................................................ 1 1.2 帮助使用 ..................................................................... ............................................................ 1 2. 产品概述 ..................................................................... .................................................................. 2 3. 常规应用 ..................................................................... .................................................................. 3 3.1 常用组件使用方法 ..................................................................... ............................................. 3 3.1.1 Sequentialfile ................................................................... ................................................. 3 3.1.2Annotation ............................................................. ............................................................ 7 3.1.3 Change CaptureStage .................................................................. ...................................... 8 3.1.4 CopyStage .................................................................. .................................................... 10 3.1.5 Filter Stage .................................................................. .................................................... 11 3.1.6 Funnel Stage .................................................................. .................................................. 12 3.1.7 Tansformer Stage .................................................................. ........................................... 13 3.1.8 SortStage .................................................................. ...................................................... 14 3.1.9 LookUp Stage .................................................................. ................................................ 15 3.1.10 JoinStage .................................................................. .................................................... 16 3.1.11 LookUp Stage 和 Join Stage的区别...................................................................... ........ 17 3.1.12 MergeStage .................................................................. ................................................. 18 3.1.13 Modify Stage .................................................................. ............................................... 19 3.1.14 Data Set Stage .................................................................. .............................................. 20 3.1.15 File SetStage .................................................................. ............................................... 22 3.1.16 Lookup File SetStage .................................................................. .................................. 23 3.1.17 Oracle EnterpriseStage .................................................................. ................................ 26 3.1.18 Aggregator Stage................................................................... ......................................... 28 3.1.19 Remove Duplicates Stage .................................................................. ............................. 30 3.1.20 CompressStage .................................................................. ............................................ 31 3.1.21 ExpandStage .................................................................. ............................................... 32 3.1.22 Difference Stage............................................................................................................. 33 3.1.23 CompareStage .................................................................. ............................................. 36 3.1.24 SwitchStage .................................................................. ................................................ 37 3.1.25 Column Import Stage .................................................................. ................................... 39 3.1.26 Column ExportStage .................................................................. ................................... 41 3.1.27 Teradata EnterpriseStage .................................................................. ............................. 43 3.2 常用数据库的连接 ..................................................................... ........................................... 45 3.2.1 Informix数据库连接 ..................................................................... ................................... 45 3.2.2 Oracle数据库连接 ..................................................................... ...................................... 46 4. 高级应用 ..................................................................... ................................................................ 48 4.1 DATASTAGE BASIC接口 ..................................................................... ................................... 48 4.2 自定义STAGETYPE ................................................................... ............................................. 49 4.2.1 WrappedStage .................................................................. ............................................... 49 4.2.2 BuildStage .................................................................. .................................................... 49 4.2.3 Custom Stage .................................................................. ................................................. 49 4.3 性能调优 ..................................................................... .......................................................... 49 4.3.1 优化策略 ..................................................................... ................................................... 49 4.3.2 关键问题分析 ..................................................................... ........................................... 54 4.3.3 并行度 ..................................................................... . (54)DataStage EE开发指南4.3.4 处理建议 ..................................................................... ................................................... 55 4.3.5 其它...................................................................... .......................................................... 56 4.3.6 机器的对称性 ..................................................................... ........................................... 56 4.3.7 并行调度测试说明: .................................................................... ................................. 56 5. 开发经验技巧汇总 ..................................................................... .............. 错误~未定义书签。
1部署软件环境DB服务器:22.4.8.7DB客户端:22.4.8.10,22.4.8.11,22.4.8.12,22.4.8.13DataStage主服务器:22.4.8.11DataStage备份服务器:22.4.8.13DataStage节点:22.5.8.10,22.5.8.122创建用户为每台机器创建dstage组和dsadm用户运行smit命令,启动管理界面在安装机器上创建dstage组设置ADMINISTRA TIVE USER 选项为true设置GID设为300创建用户dsadm设置主属为dstage,设置ADMINISTRA TIVE USER 选项为true;设置UID设为300;设置Primary GROUP,Group SET,ADMINISTRATIVE GROUPS:均为dstage;设置Soft FILE size [-1] (无限制)设置Hard FILE size [-1] (无限制)3修改系统参数调整每台机器的最大进程数查看用户进程最大数目:lsattr -El sys0|grep maxuproc如:修改用户进程最大数目:注意:要调整每个Datastage节点的最大进程数用root用户登陆,键入即可。
chdev -l sys0 -a maxuproc=40964DataStage安装4.1上传DataStage介质到服务器上将介质拷贝到终端上,然后ftp到22.4.8.11和22.4.8.13上,将介质放在/Ascential.media 目录下,并赋上所有权限:chmod -R 777 /Ascential.media4.2安装DataStage4.2.1进入/Ascential.media,运行sh ./install.sh –admin dsadm,中间安装过程请参考上线文档,在安装过程中创建工程ETL_ODS.4.2.2配置dsadm用户.profile环境变量,增加如下内容22.4.8.11:# The following three lines have been added by IBM DB2 instance utilities.if [ -f /home/db2inst1/sqllib/db2profile ]; then. /home/db2inst1/sqllib/db2profilefi#ds envexport ETLPLUS_HOME=/home/dsadmexport DSHOME=/home/dsadm/Ascential/DataStage/DSEngineexport APT_ORCHHOME=/home/dsadm/Ascential/DataStage/PXEngineexport DB2HOME=/home/db2inst1/sqllibexportPATH=$PATH:$DSHOME/bin:$DB2HOME/include:/home/dsadm/Ascential/DataStage/PX Engine.753.1/libexportLIBPATH=$LIBPA TH:$DSHOME/lib:$APT_ORCHHOME/lib:/home/dsadm/Ascential/Dat aStage/PXEngine.753.1/lib. $DSHOME/dsenv22.4.8.13:# The following three lines have been added by IBM DB2 instance utilities.if [ -f /home/db2inst1/sqllib/db2profile ]; then. /home/db2inst1/sqllib/db2profilefi#ds envexport ETLPLUS_HOME=/home/dsadmexport DSHOME=/home/dsadm/Ascential/DataStage/DSEngineexport APT_ORCHHOME=/home/dsadm/Ascential/DataStage/PXEngineexport DB2HOME=/home/db2inst1/sqllibexportPATH=$PATH:$DSHOME/bin:$DB2HOME/include:/home/dsadm/Ascential/DataStage/PX Engine.753.1/libexportLIBPATH=$LIBPA TH:$DSHOME/lib:$APT_ORCHHOME/lib:/home/dsadm/Ascential/Dat aStage/PXEngine.753.1/lib. $DSHOME/dsenv22.4.8.10:export DSHOME=/home/dsadm/Ascential/DataStage/DSEngineexport APT_ORCHHOME=/home/dsadm/Ascential/DataStage/PXEngineexport DB2DIR=/opt/IBM/db2/V9.5export DB2INSTANCE=db2inst1export INSTHOME=/home/db2inst1exportPATH=$PATH:$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/misc: $APT_ORCHHOME/lib:$APT_ORCHHOME/binexportDB2PATH=$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/misc exportLIBPATH=$LIBPA TH:$DB2DIR/lib:$INSTHOME/sqllib/lib:$APT_ORCHHOME/lib export ETLPLUS_HOME=/home/dsadm22.4.8.12:export DSHOME=/home/dsadm/Ascential/DataStage/DSEngineexport APT_ORCHHOME=/home/dsadm/Ascential/DataStage/PXEngineexport DB2DIR=/opt/IBM/db2/V9.5export DB2INSTANCE=db2inst1export INSTHOME=/home/db2inst1exportPATH=$PATH:$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/misc: $APT_ORCHHOME/lib:$APT_ORCHHOME/binexportDB2PATH=$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/misc exportLIBPATH=$LIBPA TH:$DB2DIR/lib:$INSTHOME/sqllib/lib:$APT_ORCHHOME/libexport ETLPLUS_HOME=/home/dsadm22.4.8.7:# The following three lines have been added by IBM DB2 instance utilities.if [ -f /home/db2inst1/sqllib/db2profile ]; then. /home/db2inst1/sqllib/db2profilefiexport ETLPLUS_HOME=/progexport DSHOME=/home/dsadm/Ascential/DataStage/DSEngineexport APT_ORCHHOME=/home/dsadm/Ascential/DataStage/PXEngineexport DB2DIR=/opt/IBM/db2/V9.5export DB2INSTANCE=db2inst1export INSTHOME=/home/db2inst1exportPATH=$PATH:$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/misc: $APT_ORCHHOME/lib:$APT_ORCHHOME/binexportDB2PATH=$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/misc exportLIBPATH=$LIBPA TH:$DB2DIR/lib:$INSTHOME/sqllib/lib:$APT_ORCHHOME/libexport DateInfoPath=/gpfsf/DateInfoPath5配置rsh环境。
工作总结1 如何重新启动DataStage服务器, 步骤如下: (5)2 DataStage开发经验积累: (5)2.1模板开发 (5)2.2通过S ERVER S HARED C ONTAINER在P ARALLEL J OB中添加S ERVER J OB S TAGE (5)2.3去除不需要的字段 (5)2.4T RANSFORMER S TAGE的使用 (5)2.5L OOK UP/JOIN 空值处理 (6)2.6D ATA S TAGE中默认和隐式类型转换时注意的问题 (6)2.7配置一个INPUT或OUTPUT,就VIEW DATA一下,不要等到RUN时再回头找ERROR (6)2.8D ATA型数据是比较麻烦的 (6)2.9行列互换之H ORIZONTAL P IVOT(P IVOT S TAGE) (7)2.10行列互换之V ERTICAL P IVOT (7)2.11O RACLE EE S TAGE在VIEW数据时出现的错误及解决方法 (9)2.12D ATA S TAGE SAP S TAGE的使用 (10)2.13C OLUM I MPORT S TAGE的使用 (10)2.14C OLUM E XPORT S TAGE的使用 (12)2.15G OT ERROR:C ANNOT FIND ANY PROCESS NUMBER FOR STAGES IN J OB J OBNAME解决 (13)2.16U NABLE TO CREATE RT_CONFIG NNN (14)2.17查看JOB和CLIENT的对应的后台进程 (14)2.18强制杀死DS进程 (14)2.19查看S ERVER E NGINE的进程 (15)2.20查看S ERVER L OCKS (15)2.21关于UNIX系统下无法启动服务的解决办法 (16)2.22L OCKED BY OTHER USER (17)2.23DATA S TAGE J OB L OG的处理 (17)2.24一些BASIC语言中处理字符串的函数 (17)2.25BASIC程序中使用到的一些语法知识 (18)3DS中常见问题记录 (22)3.1权限管理问题 (22)3.2JOB MAY BE BEING MONITORED或者是CLEANUP问题 (22)3.3删除文件的问题 (22)3.4SEQUENCE调度出现的错误问题 (23)3.17字符集问题 (23)3.18V ERSION C ONTROL的问题 (23)3.19SEQUENCE调不起JOB的问题 (23)3.20SEQUENCE调度失败的问题 (24)3.21DS发送邮件的配置问题 (25)3.22随机错误问题 (26)3.23DS中的日期问题 (26)3.24DS连接ORACLE问题 (27)。
一、工具入门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,然后就可以使用了。
简介DataStage 使用了Client-Server 架构,服务器端存储所有的项目和元数据,客户端DataStage Designer 为整个ETL 过程提供了一个图形化的开发环境,用所见即所得的方式设计数据的抽取清洗转换整合和加载的过程。
Datastage 的可运行单元是Datastage Job ,用户在Designer 中对Datastage Job 的进行设计和开发。
Datastage 中的Job 分为Server Job, Parallel Job 和Mainframe Job ,其中Mainframe Job 专供大型机上用,常用到的Job 为Server Job 和Parallel Job 。
本文将介绍如何使用Server Job 和Parallel Job 进行ETL 开发。
Server Job一个Job 就是一个Datastage 的可运行单元。
Server Job 是最简单常用的Job 类型,它使用拖拽的方式将基本的设计单元-Stage 拖拽到工作区中,并通过连线的方式代表数据的流向。
通过Server Job,可以实现以下功能。
1.定义数据如何抽取2.定义数据流程3.定义数据的集合4.定义数据的转换5.定义数据的约束条件6.定义数据的聚载7.定义数据的写入Parallel JobServer Job 简单而强大,适合快速开发ETL 流程。
Parallel Job 与Server Job 的不同点在于其提供了并行机制,在支持多节点的情况下可以迅速提高数据处理效率。
Parallel Job 中包含更多的Stage 并用于不同的需求,每种Stage 使用上的限制也往往大于Server Job。
Sequence JobSequence Job 用于Job 之间的协同控制,使用图形化的方式来将多个Job 汇集在一起,并指定了Job 之间的执行顺序,逻辑关系和出错处理等。
数据源的连接DataStage 能够直接连接非常多的数据源,应用范围非常大,可连接的数据源包括:文本文件XML 文件企业应用程序,比如SAP 、PeopleSoft 、Siebel 、Oracle Application几乎所有的数据库系统,比如DB2 、Oracle 、SQL Server 、Sybase ASE/IQ 、Teradata 、Informix 以及可通过ODBC 连接的数据库等Web ServicesSAS 、WebSphere MQServer JobServer Job 中的Stage 综述Stage 是构成Datastage Job 的基本元素,在Server Job 中,Stage 可分为以下五种:1.General2.Database3.File4.Processing5.Real Time本节中将介绍如何使用Datastage 开发一个Server Job。
如图 1 所示:图 1. Server Job点击查看大图Sequential File StageSequential File Stage 可用来从一个Sequential 文件中获取源数据或将数据加载到一个Sequential 文件中。
在使用Sequential File Stage 时需要指定文件的路径和名称,文件的格式,列的定义和文件写入的类型(覆盖或追加)。
图 2. Sequential File 属性框点击查看大图图 3. Sequential File 列定义点击查看大图上图是本节例子中使用到的Sequence File。
在Input 页中,File Name 参数代表文件的实际路径,如果文件不存在将会被自动建立。
Update Action 中选择Overwrite existing file 表示此文件在加载数据之前将被清空;在Format 页中,定义文件的格式,例如分隔符,NULL 值,首行是否为列定义等;在Column 页中,需要输入文件的列定义。
Hash File StageHash File 以主键将记录分成一个或多个部分的文件,在Datastage 中通常被用做参考查找。
在进行参考查找的时候,Hash File 文件会被加载到内存中,因此具有较高的查找效率。
和Sequence File 类似,使用Hash File 时需要输入文件的实际地址,通过参数设置写入时的选项,并提供数据的列定义。
需要注意的是,Hash File 需要指定主键,如果未指定,第一列被默认为主键。
进行参数查找时,使用主键值在Hash File 中搜索,如果找到则返回该数据,如果未找到则返回NULL 值。
图 4. Hash File 属性框点击查看大图Transformer StageTransformer Stage 是一个重要的,功能强大的Stage。
它负责ETL 过程中的数据转换操作。
在Transformer Stage 中可以指定数据的来源和目的地,匹配对应输入字段和输出字段,并指定转换规则和约束条件。
图 5. Transformer Stage 列映射点击查看大图Transformer Stage 中分为5 个区域:左上方区域,是用表格形式描述的输入数据信息。
如果有多条输入数据流,则有很多表格。
本例中有一个输入,一个参照查询,因此左上方有两个表格。
右上方区域,是用表格形式描述的输出信息。
左下方区域为输入的元数据列定义,包括列名,类型和长度等属性。
右下方区域为输出的元数据列定义,包括列名,类型和长度等属性。
左上方和右上方的表格由带有流向的箭头连接,代表了字段的对应关系。
此例中,输入的数据只有一个字段EMPLOYEE_ID,通过此字段在Hash File 中进行参照查找,获取EMPLOYEE_NAME 字段。
如果在Hash File 中找到了EMPLOYEE_NAME 则将数据发送到输出端,这个条件是通过Transformer Stage 提高的约束功能实现,我们在约束中的定义为NOT(ISNULL)。
另外无论是否在Hash File 中查找到对应的数据,我们都将数据记录到一个csv 文件中,即对应的save_all 输出。
Parallel JobParallel Job 的Stage 综述与Server job 相比,Parallel Job 提供了更丰富的stage,增加了Development/Debug,Restructure 和Transactional 类的stage。
同时,对于一些在server job 中可以在transformer 中完成的功能,Parallel job 也提供了专用的stage 以提高运行性能和开发效率,比如lookup,join,Compare 等。
另外一个显著的区别是在Parallel Job 中内置地支持job 的并行运行,并行执行也就意味着数据在job 中的各个stage 见处理时需要处理partition 和combination 的问题,所以在开发job 时,我们需要设定partition 和combination 的策略。
Lookup DataSet 与Lookup StageParallel Job 对lookup 的实现做了一些调整,在Server Job 中,我们一般是用Transformer Stage 配合lookup 数据源(一般是hash 文件)来实现lookup,同一个transformer 中可以同时完成多个lookup,类似于sql 中的多表自然联接,如果lookup 数据源使用的是database stage 而不是hash file 而且对于一条记录返回多条lookup data 的话,job 会产生warning(hash file 的键唯一特性使得它不会存在这个问题,后面插入的重复数据会覆盖前面的同主键的数据)。
而在Parallel Job 中,lookup 需要用一个单独的stage 来实现,transformer 不再兼职lookup 的“副业”,在一个lookup stage 中,可以有一个主数据link 和多个lookup link。
同时,Parallel 中的lookup 还有以下的新特性支持multi rows,在一个lookup stage 中对于一行主输入数据可以有一个lookup link 返回多于一行的lookup 数据。
结果也会变成多行。
Parallel 中不在支持hash file,转而使用封装更强的Data Set stage, Data Set 本质上也是hash 数据结构,但对Job 开发人员隐藏了实现细节,我们不用象开发Server Job 那样去手动设定详细参数Parallel 中除了支持等值lookup 外,还直接支持Range lookup 和Caseless lookup。
这样我们在完成类似月份转换为季度性质的设计时就会非常的方便和自然。
类似于Server Job 中的hash 文件,在Parallel Job 中我们使用Data Set 文件来缓存lookup 数据,并加载到内存中,在Data Set stage 中,我们只需要制定记录的主键和存储的文件名,Parallel 引擎会为我们处理其他的操作。
但为了达到性能的最优化,我们有时需要制定Data Set 的缓存策略和缓存大小,系统默认的缓存大小是3M,如果我们的lookup 数据比较大,就需要设定合适的缓存大小,否则会严重影响lookup 的性能。
图 6. DataSet 缓存设置点击查看大图Sort StageParallel Sort stage 的行为类似于Sql 中的order by,但是比order by 提供了更多的选项。
在job 中,Sort stage 接收一个输入link 并产生一个输出link。
对于写过sql order by 或者排序程序的开发人员使用Sort Stage 的基本功能应该是很简单的,但是要充分发挥Parallel stage 的强大功能,我们还是需要注意下面几点:并行还是串行执行,如果选择串行执行,那么Sort stage 的行为就类似于Server Job 中的Sort Stage,整个输入数据都会按照设定的排序选项排序,但如果选择分区/ 并行排序,则只有每个分区内的输出是有序的,这在有些情况下是可以接受的,但在另外一些情况下会导致代码缺陷,需要根据sort 的后续操作做出选择。
如果有可能,尽量在数据源端的数据库中进行排序,这样不但会提高数据排序的效率,还能大大减少job 对内存,I/O 的压力。
Sort stage 只有在接收完输入之后才能完成排序,进而输出数据,使得job 的后续stage 都处于等待状态。