- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)