datastagedads - 图文

发布时间 : 星期五 文章datastagedads - 图文更新完毕开始阅读

工作总结 2007 无论是在datastage 的routines 中用到这个环境变量还是用一个stage调用shell程序都要这样做,只要是通过datastage 来用到这个环境变量,那么都要在两个文件中配置! 3.32 IConv 和 OConv

IConv 将一个字符型的日期转换成一个国际数字,是天数 ; OConv 将一个日期的‘天数’转换成一个具有格式的字符串; 例如:

IConv(“12-31-1967”,“D-DMY[2,2,4]” ) -----》0 IConv(“12311967” ,“D4 DMY[2,2,4]”) -----》0 IConv(“12-31-67” ,“D2-MDY[2,2,2]”) -----》0

OConv(0,“D-DMY[2,2,4]”)----》“12-31-1967” OConv(IConv(“12311967” ,“D4 DMY[2,2,4]”),”D/YDM[4,2,A10]“)-----》”1967/31/December\

3.33 在Merge中使用特殊字符

在语句中间要是需要加字符的话要用下面的方法:

Merge into (SELECT \\* FROM ##SCHEMA##.TD_ASC_PART WHERE VALID=1 AND ASC_CODE<>'\\'SGM\\'')

注意语句中的 '\\'SGM\\'' 本身应该是‘SGM’

注意:用来判断是否匹配的字段值不能为NULL,如果有为NULL的可以用一下方法来替换一下:

例如:

若字段是字符形的:coalesce(ah.STORAGE_CODE,'\\'1\\'')=coalesce(sh.STORAGE_CODE,'\\'1\\'') 若字段是数字形的:VALUS(ah.STORAGE_CODE,1)=VALUS(sh.STORAGE_CODE,1)

注释: 如何把双引号包含到echo命令的字符串中,引号是一个特殊字符,所以必须要使用反斜杠 \\ 来使shell

忽略它的特殊含义!例如你希望输出字符串: \那么只需要在引号前面加上反斜杠 \\ 就可以了

echo \ \

4 部分常用Stage 的使用说明

Stage名称 Transformer 说明 对任何需要转换的输入的数据集合进行转换,并将数据传输到其他活动的Stage 中或一个将数据写入数据库或文件的Stage Sort 用来并行执行更复杂的排序操作 Individual 2007-10 29 /

65

工作总结 2007 Merge Join 将一个或多个排序的更新数据集合合并成一个排序的主数据集合 在一个或多个输入数据集合上执行连接操作并输出一个结果数据集,连接操作支持:Inner, Left Outer, Right Outer 和 Full Outer Join Aggregator Lookup Funnel Remove Duplicates Filter Switch Copy Change Capture Pivot Peek 对于输入的数据记录进行分组并且计算每一组的合计和总计 对多个表进行左外连接操作 把多个数据集合并成一个大的数据集,且表结构要相同 删除重复的记录 基于用户指定的约束(“where 子句),将输入数据转换到不同的输出数据集(Link),对于过滤记录是非常有效的 相当于C语言中Switch功能,通过selector来选定字段,case来指定值,最多128个output, 1个reject link 拷贝一个输入数据集到多个输出数据集;而且不需要修改 抓取两个输入数据集,表现为前和后,并且获取后面的数据路输出一个记录表现已经改变的数据集. 行列互换 将记录字段值显示到作业日志或分开的output link,就象Copy Stage将输入的数据拷贝到一个或多个输出数据集. Surrogate_Key_Generator 用于产生一个代理键 IBM DB2 UDB 访问 DB2 ? 从数据库读取数据或将数据写入DB2数据库 ? ? ? ? Oracle 顺序执行或并行执行 支持DB2的HASH分区 支持WRITE,UPSERT和LOAD的写方法 支持表,自动产生SQL和用户定义SQL读方法 Oracle数据库访问 ? 从ORACLE数据库读取数据或将数据写入数据库 ? ? ? 顺序执行或并行执行 支持LOAD和UPSERT写方法 支持TABLE和QUERY读方法 Teradata Teradata数据库访问 ? 从TERADATA数据库读取数据和将数据写入数? ? ? 据库 FastExport: Table, Auto-generated SQL, User-generater SQL FastLoad: Create, Append, Replace, Truncate 顺序执行和并行执行 Informix XPS ? 支持TUF6.1, TTU7.0 Informix XPS 数据库访问 从INFORMIX XPS数据库读取数据或将数据写入数据库 Individual 2007-10 30 / ? 65

工作总结 2007 ? ODBC 顺序执行或并行执行 使用ODBC 访问数据库 5 dsjob 语法说明:

登陆DataStage服务器,输入:cd $DSHOME/bin;在输入dsjob 回车,进入dsjob命令;

Command Syntax:

dsjob [-file | [-server ][-user ][-password ]] []

Valid primary command options are: -run -stop -lprojects -ljobs

-linvocations -lstages -llinks

-projectinfo -jobinfo -stageinfo -linkinfo -lparams -paraminfo -log -logsum -logdetail -lognewest -report -jobid -import 命令说明 语法 命令 -run -stop -lprojects -ljobs -lstages -llinks 65

运行JOB,也可获得JOBSTATUS 停止JOB运行 显示服务器上的所有工程名 显示一个工程上的所有JOB名 显示一个JOB中所有的stage名 显示一个stage中含有的LINK名 dsjob –run dsjob –run –jobstatus dsjob –stop dsjob –lprojects dsjob -ljobs dsjob -lstages [-useid] dsjob -llinks [-useid] Individual 2007-10 31 /

工作总结 2007 -projectinfo -jobinfo -stageinfo -lparams -paraminfo -log -lognewest 显示一个工程的信息,包括服务器名,工程名 显示一个JOB的信息,包括Job Status, dsjob -jobinfo [-useid] Job Start Time, Invocation List等 显示Stage 的信息,包括Stage Type, dsjob In Row Number, Stage Name等 显示一个JOB中的参数列表 显示参数的信息 dsjob -projectinfo -stageinfo dsjob -paraminfo [-useid] dsjob -lparams [-useid] [-useid] 向JOB日志中写信息,可以写一个INFO信息,或者一条WARNING信息 获得最新的日志ID dsjob -log [-info | -warn] dsjob -lognewest [-useid] [] event type = INFO | WARNING | FATAL | REJECT | STARTED | RESET | BATCH -logdetail -report 根据日志ID,来获得日志的详细信息 得到一个JOB最近的状态报告信息,包括:JOB运行时间,结束时间,耗时,JOB中的STAGE,LINK信息等. dsjob -logdetail [-useid] [] dsjob -report [-useid] [report type>] report type = BASIC | DETAIL | XML dsjob -import DSXfile [ [-OVERWRITE] -JOB[S] | jobname ...] | [-LIST] -import 向一个工程导入JOB 6

如何从DataStage服务器导出所开发的JOBS列表

步骤如下:

1. 登陆DataStage服务器,输入登陆帐户,进入系统;

Individual 2007-10 32 /

65

联系合同范文客服:xxxxx#qq.com(#替换为@)