ETL DataStage实现V16

Parallel Job的实现方式基本一样,只不过他们用到的Stage的”长相”相差比较大。另外,Parallel Job中有多得多的Stage可以选择,用他们的组合可以实现很复杂,很强大的功能,前提是对这些Stage的能力,优缺点有个清楚的认识。不过,刚开始时,可以只熟悉一些常用的Stage,然后用时再考虑。

这些Stage将功能都进行了封装,除了那些选项外,其他的不能添加、修改,其灵活性就差一些。一旦读到数据,无论是从数据文件还是从数据库中读到的,其操作方式就完全一样了,不用关心数据来自哪里。

上面这两个示例都是实现了很基本的功能,对于稍复杂的ETL,可能需要每一步都分成一个JOB,而不同的JOB间的关系可能会有依赖,互斥等,这些关系如何处理?这就用到了Job SequenceJob Sequence也是用StageParallel JobServer Job等联接起来,再加上其他的Stage,就可以实现满足哪些条件开始执行,哪些JOB执行完成功或者失败之后,其他相关JOB才能执行,以及循环操作等功能。而且Job Sequence可以再调用Job Sequence,将其合理的组合,就可以比较好的实现ETL

4.5    Stage权衡取舍

术业有专攻,DS提供了这么多的Stage,都是专于某类特定功能的,所以我们需要记住常用Stage的适用范围。常用Stage的适用范围和用法,详见联想网盘à文档下的《DataStage学习文档.doc》中的”常用组件使用方法”

4.6    性能优化

这个范围很广,就说点最常用的也是最废话也是很容易忽视的东西,:

1、尽早将没用的数据过滤掉,包括数据范围和字段等,无论是用DS还是数据库的存储过程。

2、用最合适的Stage,如Join StageLookup StageDatabase Plug-inODBCSequentional fileDataSet功能很相近,某些情况下一种很合适,另一种用不了,或者是性能相差几十甚至上百倍。

3、充分应用操作系统,DS,数据库和自编程序的优势,如果硬件资源丰富,可以大量的应用并行化(DS的,数据库的,自编程序的多进程,多线程等),如果资源本来就很稀缺,就千万别用什么并行化的方式,会导致性能严重下降。

4、不要过早优化。说的人很多,我也不清楚啥意思,知道的帮我补充一下。

具体且有用的优化方式详见联想网盘à文档下的《DataStage学习文档.doc》中的”性能调优”。

第5章    ETL维护

5.1    自编程序的维护

把最新且正确的shell,存储过程,DS Basic等程序放在CVS,或者SVN上,这个都知道,只是做起来很难,自勉。

5.2    DS维护

有大的JOB变动,就导出一份,最好别放在DS服务器上。虽然服务器很健壮,但99.9%的努力也许就是为了可能的0.1%

附录I.    帮助

首先也是最重要的,就是打开的DS窗口中,按F1就出来的帮助,还有自带的PDF的文档,最全的,也是最权威的。

适合新手的,
http://dazheng.360doc.com
目录”DW–>tools“下本人收集的几篇入门级的文章。系统学习DS就是IBM出的红皮书《IBM InfoSphere DataStage Data Flow and Job Design》,也在联想网盘中。

遇到问题,不知道如何解决的,可以上DS MSN 群:group214752@xiaoi.com或者是到论坛:http://www.itpub.net/list.html 讨论。

联想网盘:http://www.lenovodata.com在首页,点左下角的原测试版登录,进去后输入”登录邮箱/密码”: cuixuezheng@hotmail.com/group214752
。软件和文档都是从网上找到的,仅供学习用。

附录II.    DS Job状态

无论是在Job Control中用Basic调用JOB,或者是自己写的调度程序,都需要知道DS JOB的状态。以下是DS JOB常用的一些状态

Status Code 

Description 

Job is Actually Running

Job Finished with no Warnings

Job Finished with Warnings

Job Finished with wit Fatal error

11 

Job Validated with No Warnings

12 

Job Validated with Warnings

13 

Job alidation Failed

21 

Job Reset Finished

96 

Job has Crashed

97 

Job was Stopped by Operator

98 

Job has not been Compiled

99 

Any Other Status

在用的过程中,发现我们正在运行的JOB的状态返回值有时为空,不知道是不是那个版本软件的BUG

 

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注