Parallel Job的实现方式基本一样,只不过他们用到的Stage的”长相”相差比较大。另外,Parallel Job中有多得多的Stage可以选择,用他们的组合可以实现很复杂,很强大的功能,前提是对这些Stage的能力,优缺点有个清楚的认识。不过,刚开始时,可以只熟悉一些常用的Stage,然后用时再考虑。
这些Stage将功能都进行了封装,除了那些选项外,其他的不能添加、修改,其灵活性就差一些。一旦读到数据,无论是从数据文件还是从数据库中读到的,其操作方式就完全一样了,不用关心数据来自哪里。
上面这两个示例都是实现了很基本的功能,对于稍复杂的ETL,可能需要每一步都分成一个JOB,而不同的JOB间的关系可能会有依赖,互斥等,这些关系如何处理?这就用到了Job Sequence。Job Sequence也是用Stage将Parallel Job、Server 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 Stage和Lookup Stage,Database Plug-in和ODBC,Sequentional file和DataSet功能很相近,某些情况下一种很合适,另一种用不了,或者是性能相差几十甚至上百倍。
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 |
|
0 |
Job is Actually Running |
|
1 |
Job Finished with no Warnings |
|
2 |
Job Finished with Warnings |
|
3 |
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…