datastage入门教程

合集下载

DataStage官方培训教程10

DataStage官方培训教程10

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的理解和熟练度。

值得注意的是,在学习高级主题时需要一定的实践经验和技能,否则可能会花费更多的时间和精力。

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完成。

Datastager入门应用开发(详细示例)

Datastager入门应用开发(详细示例)

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基础培训教程ppt课件

DataStage基础培训教程ppt课件

全局变量与Job变量
• 全局变量 -- 生命周期:整个Project -- 在Administrator中定义
• Job变量 -- 生命周期:一个Job -- 在Designer、Manager中定义
演示:定义一个Job变量 在Designer中定义参数
Meta data definition
Debug and Tuning
• View Status and Logs - status, log, detail等多种视图 - 配合Monitor来查错、调优
Job Status
• Not Compiled • Compiled • Reset • Running • Finished • Finished (with warning) • Abort
演示:生成事实表
明细表
关联
聚合
事实表
Hash File
• 用途: -- 左连接时用作副表 -- 多次被访问的数据集 -- 存储其他临时数据
• 关键点: -- 必须指定key -- output的position必须与input一致
Transformer
• 用途: -- 提供丰富的运算符和函数 -- 数据清洗、转换 -- 关联多个数据源
DataStage基础培训
Jerry 2006.03
议程
• Hello World • DataStage Components • Define Parameter & Table • Hash File、Transformer、Aggregator • Director & Monitor • Administrator & Manager • Routine & Control

DataStage系列教程(Pivot_Enterprise行列转换)

DataStage系列教程(Pivot_Enterprise行列转换)

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 垂直转换映射⾄此,⾏列转换就完成了。

本⽂链接:。

DATASTAGE使用实用指南

DATASTAGE使用实用指南

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。

datastage教程

datastage教程

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入门教程

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值等多种聚合方式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简介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。

如图 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(lkp_name.EMPLOYEE_ID))。

另外无论是否在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 的压力。

相关文档
最新文档