Dastage经验总结
目录
1 如何重新启动DataStage服务器, 步骤如下: ........................................................................ 4 2 DataStage开发经验积累: ...................................................................................................... 4 2.1 模板开发...................................................................................................................................... 4 2.2 通过SERVER SHARED CONTAINER在PARALLEL JOB中添加SERVER JOB STAGE ....................................... 4 2.3 去除不需要的字段 ...................................................................................................................... 4 2.4 TRANSFORMER STAGE的使用 ........................................................................................................... 4 2.5 LOOK UP/JOIN 空值处理 ............................................................................................................... 5 2.6 DATASTAGE中默认和隐式类型转换时注意的问题 ...................................................................... 5 2.7 配置一个 INPUT或OUTPUT,就VIEW DATA一下,不要等到RUN时再回头找ERROR ......................... 5 2.8 DATA型数据是比较麻烦的 .......................................................................................................... 5 2.9 行列互换之HORIZONTAL PIVOT(PIVOT STAGE) ............................................................................. 6 2.10 行列互换之VERTICAL PIVOT ......................................................................................................... 6 2.11 ORACLE EE STAGE在VIEW数据时出现的错误及解决方法 ........................................................ 8 2.12 DATASTAGE SAP STAGE的使用 ....................................................................................................... 9 2.13 COLUM IMPORT STAGE的使用 ........................................................................................................ 9 2.14 COLUM EXPORT STAGE的使用 ...................................................................................................... 11 2.15 GOT ERROR: CANNOT FIND ANY PROCESS NUMBER FOR STAGES IN JOB JOBNAME解决 ............................ 12 2.16 UNABLE TO CREATE RT_CONFIGNNN .............................................................................................. 13 2.17 查看JOB和CLIENT的对应的后台进程 .................................................................................... 13 2.18 强制杀死DS进程 ................................................................................................................... 13 2.19 查看SERVER ENGINE的进程 ...................................................................................................... 14 2.20 查看SERVER LOCKS ..................................................................................................................... 14 2.21 关于UNIX系统下无法启动服务的解决办法........................................................................ 15 2.22 LOCKED BY OTHER USER ................................................................................................................. 16 2.23 DATASTAGE JOB LOG的处理 ......................................................................................................... 16 2.24 一些BASIC语言中处理字符串的函数 .................................................................................. 16 2.25 BASIC程序中使用到的一些语法知识 ................................................................................... 17 3
DS中常见问题记录 .......................................................................................................... 21 3.1 权限管理问题 ............................................................................................................................ 21 3.2 JOB MAY BE BEING MONITORED或者是CLEANUP问题 ....................................................................... 21 3.3 删除文件的问题 ........................................................................................................................ 21 3.4 SEQUENCE调度出现的错误问题 ................................................................................................. 22 3.17 字符集问题 ............................................................................................................................. 22 3.18 VERSIONCONTROL的问题 ............................................................................................................ 22 3.19 SEQUENCE调不起JOB的问题................................................................................................... 23 3.20 SEQUENCE调度失败的问题 ....................................................................................................... 23 3.21 DS发送邮件的配置问题 ........................................................................................................ 24 3.22 随机错误问题 ......................................................................................................................... 25
Individual 2007-10 1 / 64
Dastage经验总结
3.23 DS中的日期问题 .................................................................................................................... 25 3.24 DS连接ORACLE问题 ................................................................................................................ 26 3.25 在SEQUENCE FILE STAGE中的空值处理问题 .............................................................................. 26 3.26 在DS中使用ORACLE ENTERPRISE STAGE必须的权限 ................................................................. 26 3.27 DS中去除‘回车符’的问题以及从CHAR类型转变成整型的方法 .................................... 26 3.28 从后台看JOB列表的方法 ..................................................................................................... 27 3.29 DATASTAGE和数据库的连接方法 ............................................................................................. 27 3.30 在DATASTAGE中使用环境变量的问题 ..................................................................................... 27 3.31 ICONV 和 OCONV ...................................................................................................................... 28 3.32 在MERGE中使用特殊字符 ..................................................................................................... 28 4 5 6 7 8 9 10 11 12
部分常用Stage 的使用说明 ............................................................................................ 28 dsjob 语法说明: .............................................................................................................. 30 如何从DataStage服务器导出所开发的JOBS列表 ....................................................... 31 查看当前服务器状态信息的方法: ..................................................................................... 35 如何在两台机器之间进行FTP文件 ................................................................................. 35 如何获得Jobstatus ,步骤如下: ....................................................................................... 37 dsjob –run 的用法 ...................................................................................................... 38 如何在后台运行和停止一个JOB ................................................................................. 39 DS Oracle EE Stage 配置........................................................................................... 41
11.1 安装ORACLE客户端 ................................................................................................................. 41 11.2 添加ORACLE用户到DSADM GROUP组选项 ............................................................................... 41 11.3 配置DATASTAGE服务器DSENV文件 .......................................................................................... 41 11.4 配置TNSNAMES.ORA ................................................................................................................... 42 11.5 重起DATASTAGE服务 ................................................................................................................ 42 11.6 配置OACLE STAGE抽取的SELECT权限 ...................................................................................... 42 11.7 OACLE EE STAGE配置结束 ........................................................................................................ 43 13
DS ODBC 的配置 ........................................................................................................ 43
12.1 修改$DSHOME /DSENV ............................................................................................................ 43 12.2 修改$DSHOME/.ODBC.INI, 来提供数据库连接信息; ............................................................. 43 12.3 修改$DSHOME/UVODBC.CONFIG, 来指定DSN(DATA SOURCE NAME). ........................................... 44 14 15
ETL系统扩展 ............................................................................................................... 45 Remote Shell (rsh)的配置 ........................................................................................... 45
14.1 创建并配置 .RHOSTS文件 ...................................................................................................... 45 14.2 修改/ETC/HOSTS.EQUIV文件 ...................................................................................................... 46 16
dsadmin命令的使用 ................................................................................................... 46
15.1 DSADMIN命令的使用 .............................................................................................................. 46
Individual 2007-10 2 / 64
Dastage经验总结
17 18 19
如何启动JobMonApp ................................................................................................. 48 DS.TOOLS ................................................................................................................... 48 uvsh常用命令 .............................................................................................................. 51
18.1 LOGTO PROJECTNAME --------登录一个工程 ............................................................................... 51 18.2 DS.TOOLS ---------进入DS工具 ................................................................................................ 51 18.3 LIST DS_JOBS --------显示所有的JOB及JOB的分类CATEGORY .............................................. 51 18.4 LIST DS_JOBS WITH NAME=JOBNAME ------显示某个特定JOB的信息 ..................................... 51 18.5 LIST.READU EVERY -----列出所有的锁及锁的拥有用户USERNAME ..................................... 51 18.6 UNLOCK USER USERNO ALL ----解锁用户锁住的JOBS ................................................................ 51 18.7 LIST.INDEX ----- 列出资料库的索引 ........................................................................................ 52 20
Usage Analysis来进行影响分析 ................................................................................ 52
19.1 如何启动USAGE ANALYSIS .......................................................................................................... 52 19.2 USAGE ANALYSIS中SELECT COLUMNS的使用 ................................................................................ 53 19.3 USAGE ANALYSIS中VIEW HTML的使用 ....................................................................................... 54 19.4 USAGE ANALYSIS中LOCATE IN MANAGER的使用 ............................................................................ 55 19.5 USAGE ANALYSIS可使用的SOURCE类型 ...................................................................................... 56 21
DS Message Handlers ................................................................................................ 57
20.1 MESSAGE HANDLERS的两种级别 ................................................................................................. 57 20.2 MESSAGE HANDLERS的三种动作种类 ......................................................................................... 58 20.3 MESSAGE HANDLERS的文件格式 ................................................................................................. 58 22
DS Parallel Routine .................................................................................................... 59
21.1 PARALLEL ROUTINE注意事项 ....................................................................................................... 59 21.2 PARALLEL ROUTINE创建流程 ....................................................................................................... 59 21.3 PARALLEL ROUTINE示例 ............................................................................................................... 60 23
uvconfig文件中参数修改方法 ..................................................................................... 62
22.1 修改文件UVCONFIG中的参数 .................................................................................................. 62 22.2 运行UVREGEN............................................................................................................................ 62 22.3 重启DS服务 ........................................................................................................................... 62 22.4 校验 ......................................................................................................................................... 62 24
&PH& ........................................................................................................................... 62
23.1 CD \\&PH\\& 或 CD ‘&PH&’ ........................................................................................................ 62 25 26
DB2支持的数据格式 .................................................................................................... 63 DB2中Load语法和基本使用 ...................................................................................... 64
Individual 2007-10 3 / 64
Dastage经验总结
1 如何重新启动DataStage服务器, 步骤如下:
1.01
启动DataStage Server 的命令要在$DSHOME/bin 目录下进行. 启动之前要切断所有与服务器端的连接:
1. 登陆DataStage 服务器,输入: $DSHOME/bin 2. 关闭DataStage 服务器 ./uv –admin –stop
3. 检查服务器上是否还有进程没关掉,否则服务器无法启动起来,netstat -a | grep ds 4. 重起服务器 ./uv –admin –start.
Note: 关闭DataStage 服务器后,建议过30 sec 再重起服务器.
2 DataStage开发经验积累:
2.1 模板开发
并行JOB中模板的开发可以最大程度的重用并行JOB的构件,节省时间
1. 使用JOB参数(PARAMETER)可以在运行时提供参数的值,增加灵活性,可以在
不同的环境处理不同的数据;使用JOB PARAMETER 可以在同一时间使用不同参数运行同一个JOB
2. Shared Container 共享容器可以在多个JOB中共享相同的逻辑,当一个JOB
编译时共享容器被嵌入.
2.2 通过Server Shared Container在Parallel Job中添加Server Job Stage
在Designer中创建一个server shared container,添加需要的Server job stage,再把server shared container添加到parallel job并连接到其他parallel stage.
2.3 去除不需要的字段
当从数据库中读取数据时,要尽可能早的去除不需要的字段,只读取需要的字段,而不是整个表,这样可以提高数据读取效率.
2.4 Transformer Stage的使用
1. 慎用Transformer Stage,因为它可能降低JOB的运行效率,有些功能能合并成
一个单独的STAGE的不要用多个STAGE,要用其他的STAGE来代替Transformer Stage 能完成的任务.
2. Transformer Stage 的数据流程是先经过constraint的过滤,然后再经过
Derivation处理
3. 对于确定类型的操作,使用其他STAGE 比使用TRANSFORMER 会更好:
(1) 对如下情况,使用Copy Stage 将比Transformer Stage 更好
﹡在界面上提供一个JOB 设计占位符 ﹡重新命名字段
Individual 2007-10 4 / 64
Dastage经验总结
﹡删除字段
﹡Implicit类型变换
(2) 使用Filter Stage 或者 Switch Stage 来把输入记录按照限制表式分
成多个输出分支.
(3) 使用Modify Stage 来explicit 类型变换和Null处理
﹡Modify Stage 也可重新命名字段 ﹡保持(keep)或删除(drop)字段
﹡也可增加新字段,并为新增字段赋值,但赋值方式要以字段=字段 形式,例如: new_columnname = old_columnname; 但new_columnname =”hf”这样赋值是错误的 ﹡Null的处理
destinationColum=handle_null(sourceColum,Value)
destinationColum=make_null(sourceColum,Value),这个使用中有问题,不处理空值
2.5 Look up/join 空值处理
1. 当使用Lookup Failure = Contunue 时,要把 reference link 的非主键设置成
Nullable,即使reference data 是非空的,也要设置成Nullable,这样能够确保Lookup 把空值分配给没有匹配的参考非主键
2. 如果参考非主键没有设置成Nullable ,将会发生什么:Lookup 将会分配一个默
认值给没有匹配的的行:
Integer 默认值为0 Varchar/char 默认值为空字符串(0长度的)
2.6 DataStage中默认和隐式类型转换时注意的问题
当从源向目标映射数据时,如果类型不一致,对于有些类型我们需要在modify或transfomer stage中通过函数进行转换,对于有些系统会自动完成类型转换,在类型转换过程中,注意以下几点:
1 在变长到固定长度字符串的默认转换中,parallel jobs用空格(ASCII 20)字 符来填充剩余长度(环境变量APT_STRING_PADCHAR的默认值也是空格(ASCII 20),具体在哪个stage填充的不知.
2 通过环境变量APT_STRING_PADCHAR可以改变默认的填充字符null(ASCII 0)。
3 有个PadString 函数可以用来用指定的字符来填充一个变长的字符串到指定的长度。这个函数的参数不能使固定长度字符串,如果是固定长度的先转化为变长。
2.7 配置一个 input或output,就view data一下,不要等到run时再回头找error 2.8 Data型数据是比较麻烦的
因为Datastage中的日期格式为timestamp,当然你也可以把它的日期格式更改为date型,但经常会出现错误。对于oracle数据库源表和目标表,不需要对date型数据做任何转换,直接使用默认即可,但对于informix等一些数据库,则需要使用oconv,iconv函数进行转换,并在output中相应的修改output sql中的日期格式
Individual 2007-10 5 / 64