DATASTAGE----DATASTAGE经验积累解析.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DATASTAGE----DATASTAGE经验积累解析

DATASTAGE——一DATASTAGE经验积累 一、JOB的分类与作用 ????1、Server JOB: ?????最为常用的Job类型,Job可以组合使用,Server Job是Job的最小单位。 ?????原文档:If you have the Web Services pack installed an additional check box, Web Service Enabled, appears. Select it to indicate the job can be made available as a web service. ????2、Parallel JOB: ????3、Mainframe JOB:运行于大型机的JOB。   4、JOB Sequences:Job Sequence主要用于Job间的协作工作控制,如各Job的实行流程,出错处理,文件监控等。 二、jobstatus的用法?????? jobstatus -jobstatus waits for the job to complete, then returns an exit code derived from the job status. 命令格式为: ??????? dsjob –run ??????? [ –mode [ NORMAL | RESET | VALIDATE ] ] ??????? [ –param name=value ] ??????? [ –warn n ] ??????? [ –rows n ] ??????? [ –wait ] ??????? [ –stop ] ??????? [ –jobstatus] ??????? [–userstatus] ??????? [-local] ??????? project job 三、判断NULL值   实例 ??????? STAGE :JOIN STAGE ??????? 设置: ????????LEFT JOIN ????????左输入语句:SELECT * FROM PMP_Insured_Amount ????????右输入语句:SELECT COL_ID,TAB_NAME,WORK_DATE, REF_COLUMN1 AS UNIQUE_ID_IN_SRC_SYS, REF_COLUMN2,ROW_ID, HASHCODE AS B_HASHCODE, ANCHOR_ID,PARTITION_KEY, IS_DUPLICATED, A AS MARK?????????????? --用以判断结果集右边是否为空 FROM ETL_FOR_INC_TMP2 SQL语句: ?? SELECT A.*,B.* ?? FROM PMP_Insured_Amount A LEFT JOIN ETL_FRO_INC_TMP2 B ON A.UNIQUE_ID_IN_SRC_SYS = B.UNIQUE_ID_IN_SRC_SYS 功能:判断来自A表的所有记录,哪些能够B表关联,哪些不能与B表关联。说明:由于在构造右输入语句时增加了一个B表中没有的常量字段MARK,所以如果A表能够与B表关联的记录,该常量字段就不为空值(此处设了该常量值为 A);如果A表与B表关联不上的记录,该常量字段就为空值(NULL)。如此只需用一条判断语句判断常量字段是否为空,从而分出两种记录来。 ??????? 记录分离所使用的STAGE是Transform stage。一开始时,使用Condition设置了字段MARK = A与字段MARK A 来分离记录,运行后发现只有MARK = A 的一支有数据通过,而MARK A 的一支没有数据通过,后来把 MARK A 的一支的条件(condition)改为 ISNULL(MARK) 后,数据正常输出。 总结:从理论上说,任何与NULL值作比较运算(=、、、)结果都为NULL,而 MARK A 属于比较运算,当MARK为NULL时,结果就为NULL,所以就会没有数据输出。实际上,在MSSQL SERVER2000中,如果使用 WHERE MARK A 作筛选条件,是可以把为 NULL 值的字段输出的。这是DATASTAGE与MSSQL SERVER在处理 NULL 值运算的不同,MSSQL SERVER是允许一定违反规范规则的情况存在。 四、关于对多表进行关联操作的STAGE对不同表的同名字段的处理。 手工起别名 ??????? 这些STAGE有:JOIN、LOOKUP、MERGE等。 ??????? DATASTAGE的处理原则:保留前者,抛弃后者。 ??????? 例子:   源表:A(a,b,c,d),关联表

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档