文档库 最新最全的文档下载
当前位置:文档库 › datastage经验总结

datastage经验总结

datastage经验总结
datastage经验总结

目录

1 如何重新启动DataStage服务器, 步骤如下: (4)

2 DataStage开发经验积累: (4)

2.1模板开发 (4)

2.2通过S ERVER S HARED C ONTAINER在P ARALLEL J OB中添加S ERVER J OB S TAGE (4)

2.3去除不需要的字段 (4)

2.4T RANSFORMER S TAGE的使用 (4)

2.5L OOK UP/JOIN 空值处理 (5)

2.6D ATA S TAGE中默认和隐式类型转换时注意的问题 (5)

2.7配置一个INPUT或OUTPUT,就VIEW DATA一下,不要等到RUN时再回头找ERROR (5)

2.8D ATA型数据是比较麻烦的 (5)

2.9行列互换之H ORIZONTAL P IVOT(P IVOT S TAGE) (6)

2.10行列互换之V ERTICAL P IVOT (6)

2.11O RACLE EE S TAGE在VIEW数据时出现的错误及解决方法 (8)

2.12D ATA S TAGE SAP S TAGE的使用 (9)

2.13C OLUM I MPORT S TAGE的使用 (9)

2.14C OLUM E XPORT S TAGE的使用 (11)

2.15G OT ERROR:C ANNOT FIND ANY PROCESS NUMBER FOR STAGES IN J OB J OBNAME解决 (12)

2.16U NABLE TO CREATE RT_CONFIG NNN (13)

2.17查看JOB和CLIENT的对应的后台进程 (13)

2.18强制杀死DS进程 (13)

2.19查看S ERVER E NGINE的进程 (14)

2.20查看S ERVER L OCKS (14)

2.21关于UNIX系统下无法启动服务的解决办法 (15)

2.22L OCKED BY OTHER USER (16)

2.23DATA S TAGE J OB L OG的处理 (16)

2.24一些BASIC语言中处理字符串的函数 (16)

2.25BASIC程序中使用到的一些语法知识 (17)

3DS中常见问题记录 (21)

3.1权限管理问题 (21)

3.2JOB MAY BE BEING MONITORED或者是CLEANUP问题 (21)

3.3删除文件的问题 (21)

3.4SEQUENCE调度出现的错误问题 (22)

3.17字符集问题 (22)

3.18V ERSION C ONTROL的问题 (22)

3.19SEQUENCE调不起JOB的问题 (23)

3.20SEQUENCE调度失败的问题 (23)

3.21DS发送邮件的配置问题 (24)

3.22随机错误问题 (25)

3.23DS中的日期问题 (25)

3.24DS连接ORACLE问题 (26)

3.25在S EQUENCE F ILE S TAGE中的空值处理问题 (26)

3.26在DS中使用O RACLE E NTERPRISE S TAGE必须的权限 (26)

3.27DS中去除‘回车符’的问题以及从CHAR类型转变成整型的方法 (26)

3.28从后台看JOB列表的方法 (27)

3.29D ATASTAGE和数据库的连接方法 (27)

3.30在DATASTAGE中使用环境变量的问题 (27)

3.31IC ONV 和OC ONV (28)

3.32在M ERGE中使用特殊字符 (28)

4部分常用Stage 的使用说明 (28)

5dsjob 语法说明: (30)

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

7查看当前服务器状态信息的方法: (35)

8如何在两台机器之间进行FTP文件 (35)

9如何获得Jobstatus ,步骤如下: (37)

10dsjob –run 的用法 (38)

11如何在后台运行和停止一个JOB (39)

12DS Oracle EE Stage 配置 (41)

11.1安装O RACLE客户端 (41)

11.2添加O RACLE用户到DSADM GROUP组选项 (41)

11.3配置D ATA S TAGE服务器DSENV文件 (41)

11.4配置TNSNAMES.ORA (42)

11.5重起D ATA S TAGE服务 (42)

11.6配置O ACLE S TAGE抽取的S ELECT权限 (42)

11.7O ACLE EE STAGE配置结束 (43)

13DS ODBC 的配置 (43)

12.1修改$DSHOME/DSENV (43)

12.2修改$DSHOME/.ODBC.INI,来提供数据库连接信息; (43)

12.3修改$DSHOME/UVODBC.CONFIG,来指定DSN(DATA SOURCE NAME). (44)

14ETL系统扩展 (45)

15Remote Shell (rsh)的配置 (45)

14.1创建并配置.RHOSTS文件 (45)

14.2修改/ETC/HOSTS.EQUIV文件 (46)

16dsadmin命令的使用 (46)

15.1DSADMIN命令的使用 (46)

17如何启动JobMonApp (48)

18DS.TOOLS (48)

19uvsh常用命令 (51)

18.1LOGTO P ROJECT N AME --------登录一个工程 (51)

18.2DS.TOOLS---------进入DS工具 (51)

18.3LIST DS_JOBS--------显示所有的J OB及J OB的分类C ATEGORY (51)

18.4LIST DS_JOBS WITH NAME=J OB N AME ------显示某个特定J OB的信息 (51)

18.5LIST.READU EVERY-----列出所有的锁及锁的拥有用户U SER N AME (51)

18.6UNLOCK USER USERNO ALL----解锁用户锁住的J OBS (51)

18.7LIST.INDEX-----列出资料库的索引 (52)

20Usage Analysis来进行影响分析 (52)

19.1如何启动U SAGE A NALYSIS (52)

19.2U SAGE A NALYSIS中S ELECT C OLUMNS的使用 (53)

19.3U SAGE A NALYSIS中V IEW HTML的使用 (54)

19.4U SAGE A NALYSIS中L OCATE IN M ANAGER的使用 (55)

19.5U SAGE A NALYSIS可使用的S OURCE类型 (56)

21DS Message Handlers (57)

20.1M ESSAGE H ANDLERS的两种级别 (57)

20.2M ESSAGE H ANDLERS的三种动作种类 (58)

20.3M ESSAGE H ANDLERS的文件格式 (58)

22DS Parallel Routine (59)

21.1P ARALLEL R OUTINE注意事项 (59)

21.2P ARALLEL R OUTINE创建流程 (59)

21.3P ARALLEL R OUTINE示例 (60)

23uvconfig文件中参数修改方法 (62)

22.1修改文件UVCONFIG中的参数 (62)

22.2运行UVREGEN (62)

22.3重启DS服务 (62)

22.4校验 (62)

24&PH& (62)

23.1CD \&PH\&或CD ‘&PH&’ (62)

25DB2支持的数据格式 (63)

26DB2中Load语法和基本使用 (64)

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 再重起服务器.

2DataStage开发经验积累:

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 设计占位符

﹡重新命名字段

﹡删除字段

﹡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中的日期格式

2.9 行列互换之Horizontal Pivot(Pivot Stage)

列变行,即宽表变窄表,字段变少了,记录数变多了,牵涉到Column数量的变化;注

意要在Pivot-→Output的Derivation中写上转换字段的来源字段,字段之间用逗号

隔开

例子:

PIVOT Input记录如下:

Id col1 col2 col3

2 Rootpath Workdate EdsDbname

3 Rootpath Workdate AsdmDbname

PIVOT Output记录如下:

Id colum

2 Rootpath

2 Workdate

2 EdsDbname

3 Rootpath

3 Workdate

3 AsdmDbname

2.10 行列互换之Vertical Pivot

Pivot Stage是宽表变窄表,也即:Horizontal Pivot;实际应用中还会牵涉到窄表

宽表,即Vertical Pivot的应用。例如:

输入Input记录如下:

Id Column

2 Rootpath

2 Workdate

2 EdsDbname

3 Rootpath

3 Workdate

3 AsdmDbname

我们想要的输出Output记录是这样的:

Id NewCol

2 Rootpath,Workdate,EdsDbname

3 Rootpath,Workdate,AsdmDbname

解决方法如下:

Server Job的做法:

Sequence File---→ Transform---→ Hash File

源表结构:

Id varchar 10

Column varchar 10

Define Transform as follows

Stage Variables:

currentKey

Initial value = ""

Derivation = L1.Id

newRecord

Initial value = ""

Derivation = if currentKey=lastKey Then newRecord:",":L1.Column else L1. Column

lastKey

Initial value = ""

Derivation = currentKey

L2 Deriviations

L2.key = L1.Id

L2.line = newRecord

目标表结构:

Id varchar 10 (marked as the key)

Newcol varchar 200

(注意:Stage Variable的有先后顺序的,它是按照先后顺序来赋值的,所以lastKey要在newRecord后面)

如果把Newcol的值放在不同的字段中,格式如下:

Id Col1 Col2 Col3

2 Rootpath Workdate EdsDbname

3 Rootpath Workdate AsdmDbname

解决方法是:把NewColm的值读出来赋给一个Stage Variable,然后使用Field(NewCord, ",",1),Field(NewCord, ",",2)..等等,把值赋给每个Colm。

Parallel Job的做法:(按照SERVER JOB的做法,然后改成串行方式也能实现)

1. 使用Sort Stage对Key Column:Id 进行分区和排序;并设置Create Key Change

Column=True(作用是第一条记录会标识为1,其它0),产生KeyChange Column;

运行出来的结果如下:

Id Column KeyChange

-- ---------- ----------

2 Rootpath 1

2 Workdate 0

2 EdsDbname 0

3 Rootpath 1

3 Workdate 0

3 AsdmDbname 0

2. 在Transform Stage里创建Stage Variable;

创建变量后,根据KeyChange的值来设置变量的值;如:创建变量svBuildColum,赋值:if DSLink12.keyChange=1 then DSLink12.Column else

svBuildColumn : "$" : DSLink12.Column

运行出来的结果如下:

Id Column KeyChange svBuildColum

-- ---------- ---------- ------------------------------------------------

2 Rootpath 1 Rootpath

2 Workdate 0 Rootpath $Workdate

2 EdsDbname 0 Rootpath $Workdate $EdsDbname

3 Rootpath 1 Rootpath

3 Workdate 0 Rootpath $Workdate

3 AsdmDbname 0 Rootpath $Workdate $AsdmDbname

3. 使用Remove_Duplicates Stage,根据Key Colum:Id去除重复行,并Retain Last;

运行的结果如下:

Id svBuildColum

----- ----------------------------------------------

2 Rootpath $Workdate $EdsDbname

3 Rootpath $Workdate $AsdmDbname

4. 如果把svBuildColum的值放在不同的字段中,使用Field(NewCord, "$",1),

Field(NewCord, "$",2)..等等,把值赋给每个Colm.

最后结果如下:

Id Col1 Col2 Col3

2 Rootpath Workdate EdsDbname

3 Rootpath Workdate AsdmDbname

2.11 Oracle EE Stage在VIEW数据时出现的错误及解决方法

错误信息如下:

##I TOSH 000002 04:05:22(001) orchgeneral: loaded

##I TOSH 000002 04:05:22(002) orchsort: loaded

##I TOSH 000002 04:05:22(003) orchstats: loaded

>##E TOSH 000205 04:05:22(004) PATH search failure:

>##E TOSH 000000 04:05:22(005) Error loading "orchoracle":

Could not load "orchoracle": The specified module could not be found.

>##E TOSH 000000 04:05:22(006) Could not locate operator

definition, wrapper, or Unix command for "oraread"; please check that all needed

libraries are preloaded, and check the PATH for the wrappers

>##E TCOS 000029 04:05:22(007) Creation of step finished with

status = FAILED

解决方法:

running 7.5x2 EE on the Windows platform

1.cd to your C:\Ascential\DataStage\PXEngine\install

2. type sh

3. ORACLE_HOME="C:/Your_Oracle_Client"

4. export ORACLE_HOME

5. APT_ORCHHOME="C:/Ascential/DataStage/PXEngine"

6. export APT_ORCHHOME

7. sh install.liborchoracle

then you will see the message on the screen;

Installing Oracle Drvie

Using C:/Your_Oracle_Client as ORACLE_HOME

Installing drive for Oracle version 9i or 10g

Oracel installation is complete.

Reboot the machine after above is done

2.12 DataStage SAP Stage的使用

见附件:E:\个人学习\

DataStage SAP Stage的

2.13 Colum Import Stage的使用

将一个字段中的数据输出到多个字段中, 完成分割单个字段数据到多个字段的目的;

输入数据应为定长或者有可以被识别的可分割的界限,必须是String或者Binary类型的,输出数据可以是任何数据类型;

字段分割后:

2.14 Colum Export Stage的使用

与Column Import Stage相反,将多个类型不同的字段合并成一个string或者binary类型的字段

合并字段后:

2.15 Got ERROR: Cannot find any process number for stages in Job Jobname解决

当我们用Director来ClearUp Resources 或 Clear Status File 时候,会出现上面的错误提示;

原因是:

incorrect permissions settings.

Following correct settings were done to solve the problem:

-rwsr-x--x 1 root dstage 1519616 Nov 13 2003 dsdlockd

-rwsr-x--x 1 root dstage 1499136 Nov 13 2003 dslictool

-rwsr-x--x 1 root dstage 3678208 Nov 13 2003 dstskup

-rwsr-x--x 1 root dstage 1519616 Nov 13 2003 list_readu

-rwsr-x--x 1 root dstage 1486848 Nov 13 2003 upduvtrans

-rwsr-x--x 1 root dstage 53248 Nov 13 2003 uv

-rwsr-x--x 2 root dstage 3796992 Nov 13 2003 uvbackup

-rwsr-x--x 1 root dstage 49152 Nov 13 2003 uvdls

-rwsr-x--x 2 root dstage 3796992 Nov 13 2003 uvrestore

-rwsr-x--x 1 root dstage 16384 Nov 13 2003 uvsetacc

Settings for all the above was found to be incorrect. dsadm was the owner instead of root and also permissions were incorrect.

2.16 Unable to create RT_CONFIGnnn

造成这种问题的最普遍的两个原因是:

Is the file system on which your project directory exists full;

Do you have write permission to your project directory

2.17 查看job和client的对应的后台进程

$ps -fu dsadm

UID PID PPID C STIME TTY TIME CMD

dsadm 11779 11776 0 09:02:02 ? 0:14 phantom DSD.StageRun loadDataDayAg. loadupdIRCashIVDayAg.xfm 3 0/0

dsadm 1761 1760 2 08:56:27 ? 23:16 phantom DSD.RUN

Batch::MasterControlOrderDetail. 0 ParameterFile=/var/opt/dat

前者是Job stage thread,后者是Job main thread

dsadm 29865 29863 0 Oct 25 ? 2:57 dsapi_slave 8 7 0(User client database slave)

2.18 强制杀死DS进程

Cd $DSHOME/bin

list_readu

ps –ef | grep username

2.19 查看Server Engine的进程

$netstat -a|grep uv or $netstat -a|grep dsrpc

*.uvrpc *.* 0 0 24576 0 LISTEN------Daemon listener

...... ...................ESTABLISHED------Clients attached

$ ipcs ------Shared memory usage

$ ps -ef |grep uni------Engine daemon

root 12970 1 0 Oct 09 ? 0:11 /opt/Ascential/DataStage/unishared/unirpc/unirpcd-----Engine daemon

2.20 查看Server Locks

$ cd `cat /.dshome`

$ . ./dsenv

$ bin/uvsh------DSEngine command prompt

上面的操作等同于DataStage

Adminitratot--->Projects(tab)--->Command(button)

>DS.TOOLS

Verb "DS.TOOLS" is not in your VOC. DS.TOOLS utility

>LOGTO yourprojectname

>DS.TOOLS

Which would you like? ( 1 - 6 ) ?5

Which would you like? ( 1 - 11 ) ?4

>LISTU----Users in DataStage

>LIST.READU----List lock table command

上面操作等同于$DSHOME/bin/list_readu

>QUIT

同样,在查看job pid及locks也可以通过datastage

director--->Jobs--->Clearup Resources

4,DataStage Filesystem Mount Points

$ cd `cat /.dshome`

$ df -k .

5,DataStage Engine Daemon

$ cd /etc/rc2.d

$ more S999ds.rc

2.21 关于UNIX系统下无法启动服务的解决办法

在诊断启动失败的原因之前,先说说如何停止服务。

启停服务的命令大家都知道,要注意的是停止服务之前应先确保无client连接、无端口连接:

1.使用ps -ef|grep ds 查看client连接情况,如果还有client连接,你又无法查找是谁,

急需重启,可以通过director将所有的连接log off

2.使用netstat -a|grep dsrpc 查看网路连接状况,确保只有listen状态

这样,将服务停止,会很顺利的重启服务。

当执行完重启命令后,使用ps -ef|grep dsrpcd 查看服务是否启动,如果此服务没有启动,查看:

1.ps查看有无client连接,杀掉进程。

https://www.wendangku.net/doc/f015740723.html,stat查看网络情况,有无FIN_WAIT_2 or CLOSE_WAIT等的tcp状态,如果有,

则使用ndd 命令调整datastage的端口连接,

方法如下(如hp-unix):

查找进程号:ndd -get /dev/tcp tcp_status |grep -e state -e FIN_WAIT_2

断开连接,释放端口:ndd -set /dev/tcp tcp_discon 0x+进程号

如果上述情况都核实后,仍启动失败

请使用"./bin dsrpcd -d9 >/tmp/dsrpcd.log 2>&1 &" 来启动服务,在dsrpcd.log 文件中看到启动日志信息,根据实际情况解决。

2.22 Locked by other user

启动DataStag Director ,Job---->Clearup Resources,在这个操作窗口中,首先选择窗口下部"Locks"中的"Show All",你可以看到窗口显示了所有lock的信息:PID#----Lock Type----Item Id。在Item Id的列表里找到你需要重新打开的job/routine和其对应的PID #值。然后选择上半部分"Processes"中的"Show All",鼠标选中刚才查到的PID#,然后LogOut。如果不使用Diretor,你可以在DS administrator中使用"list.readu" 或者"DS.TOOLS" command,同样会列出所有的lock信息。That's Ok!

2.23 dataStage Job Log的处理

如何在操作系统层面上,使用command的到job log?

在操作系统中我们可以使用engine(UNIX DSEngine)/bin 下的命令:

dsjob -log [-info | -warn]

dsjob -logsum [-type]

[-max ] [-userid]

dsjob -lognewest [-userid] []

event type = INFO|WARNING|FATAL|REJECT|STARTED|RESET|BATCH

dsjob -logdetail [useid]

可以编辑shell或者bat文件,将所有的job log输出。

在datastage内部有其相应的function:

DSGetLogEntry

DSGetLogSummary

DSGetNewestLogId

2.24 一些BASIC语言中处理字符串的函数

a 使用冒号":"作为字符串连接的符号。

例如:"5A" : "_" : "2N" 等价于字符串"5A_2N"

b 使用中括号[ ]来取出某个字符串的子串,其语法如下:

expression [ [ start, ] length ]

例如:strA="abcdef ", 那么strA[1,3]的意思就是从序号为1的字符开始,一共取出三个字符,其结果就是"abc"。BASIC语言中数组或者字符串的第一个元素的序号是1。

c Count (string, substring)用来计算字符串中的某个子串出现的次数。

例如:计算字符串"abacab"中的子串"ab"出现的次数,arrCnt = Count("abacab", "ab"),那么arrCnt就等于2。

d Len (string) 用来计算字符串中包含的字符的个数。

例如:Len("abc")的值就是3。

e TRIMF (string) 用来删掉字符串首部的空格。

TRIMB (string) 用来删掉字符串尾部的空格。

例如,字符串strA=" abc ",其首尾各有多个空格。经过strA= TRIMF (strA)和strA= TRIMB (strA)这样的处理就可以除掉字符串首尾的所有空格了,其结果是"abc"。

f Index (string, substring, instance) 用来得到字符串中的某个子串的位置。其中

instance表示这个子串是在整个字符串中是第几次出现。

例如:字符串为"abacab",要计算子串"ab"第二次出现在字符串中的位置。Index ("abacab", "ab", 2 )的结果就是5。

2.25 BASIC程序中使用到的一些语法知识

(1). BASIC语言有四种符号用来标记注释,分别是REM,*,! ,$*。例如,

*Initial. Validate the input parameters.

这一行以"*"星号开头,就表示这一行内容是程序的注释。

(2). 条件判断语句,其语法结构如下:

If condition

Then statements

End

[Else statements

End]

其中condition可以是一个数字,也可以是一个比较关系式。当条件为真时,程序执行Then后面的表达式;当条件为假时,则会执行Else后面的表达式。在Basic语言中,逻辑关系运算符是这样的:

AND (或者符号&),表示逻辑与的关系。

?OR (或者!),表示逻辑或的关系。

?NOT,表示逻辑非的关系。

例如:

If bitCount > arrCnt Then

Ans="error bitValue: " : bitCount :".Its value is too large."

Call DSLogWarn(Ans,"TransBitMask")

GoTo ExitFunc

End

由BitValue转化而来的二进制数的位数大于子串的个数时,就在日志信息中告诉用户BitValue的值和OriStr的值是不可能一一对应的,输入的数据有错误。

If BitValue >= 0 AND Count(BitValue, ".")=0 Then

mask=Oconv(BitValue, "MB")

End Else

Ans="error bitValue:" : BitValue

Call DSLogWarn(Ans,"TransBitMask")

GoTo ExitFunc

End

当输入变量BitValue的值大于零且不是小数的时候,就把它转化为二进制的数;否则为用户提出警告信息并且离开这个函数。

(3). 使用BASIC自带的一些功能函数。

Oconv(expression, conversion)

其中expression表示一个字符串,conversion则表示这个字符串的输出格式。Oconv("10", "MB")的功能是把十进制数"10",转化为二进制数"1010";而Oconv("10", "MD1")的功能是把十进制数"10"的小数点左移一位,转化为"1.0"。DSLogInfo (Message, CallingProgName)和DSLogWarn (Message, CallingProgName) 的功能十分相似,都是在执行Server Job的时候,输入一些必要的日志信息,帮助用户了解程序的执行情况。其中Message为输出的日志信息的内容,CallingProgName 就是调用这个函数的程序名。区别在于DSLogInfo输出的仅仅是普通的日志信息,而DSLogWarn则是输出一些警告的信息给用户。

例如:

Ans="OriStr is blank, maybe there is no lights in this room"

Call DSLogWarn(Ans,"TransBitMask")

Call DSLogInfo("OriStr:" : OriStr : " is valid","TransBitMask")

(4). 两种循环条件语句

a). For…Next语句,其基本语法如下:

For variable = start To end [Step increment]

[loop.statements]

Next [variable]

其中start To end定义了变量变化的区间;而increment定义了每次变量增加的值,当start的值大于end的值,increment的值可以是负数。

For num = 1 To arrCnt - bitCount

mask = "0" : mask

Next num

如果二进制数的位数小于子串的个数,则在二进制数mask的前面补上"0"。比如,OriStr中有三个子串"light_01,light_02,light_03",BitValue的值为2,把十进制的数"2"转化为二进制的数"10"。这时,二进制数的位数小于子串的个数,就需要在二进制数前面补上"0",使其变成"010"才能和三个子串一一对应起来。

b). Loop…Repeat语句,其基本语法如下:

Loop

[statements]

[While | Until condition Do]

[statements]

Repeat

其中,Loop定义了循环的开始,Repeat定义了循环的结束。

While condition Do 的含义是,当条件为真的时候执行循环体中的代码。当条件为假的时候,退出循环。Until condition Do 的含义正好相反,当条件为假的时候执行循环体中的代码。当条件为真的时候则退出循环。

例如:

pos = 1

start = 1

Ans=""

Loop

While pos <= arrCnt Do

idx = Index(proStr,separator,pos)

If mask[pos,1] = "1" Then

subStr = proStr[start,idx - start]

subStr=trim(subStr)

*make sure every substring matches the specified pattern

If subStr match "5A" : "_" : "2N" Then

Ans=Ans:",":subStr

End Else

Ans="error substring:" : subStr:".It does not match the pattern."

Call DSLogWarn(Ans,"TransBitMask")

GoTo ExitFunc

End

End

start = idx+1

pos+=1

Repeat

这段代码的功能是从输入的字符串中把每一个子串分离出来,然后判断每一个子串对应的二进制数中的值是否为"1"。如果其对应的数是"0",就直接进行下一个循环去处理下一个子串。如果其对应的数是"1"则继续判断这个子串是否符合命名的规则,如果符合就把子串添加到输出字符串中;如果不符合规则就在日志信息中提示用户输入的字符串有错误,之后跳出循环。

在循环语句中可以使用两个用来控制循环的关键字Continue和Exit:Continue用来结束本次循环,进行下一次循环;而Exit的功能是退出当前循环。

(5). 一些BASIC语言中处理字符串的函数。

?使用冒号":"作为字符串连接的符号。

例如:"5A" : "_" : "2N" 等价于字符串"5A_2N"

?使用中括号[ ]来取出某个字符串的子串,其语法如下:

expression [ [ start, ] length ]

例如:strA="abcdef ", 那么strA[1,3]的意思就是从序号为1的字符开始,一共取出三个字符,其结果就是"abc"。BASIC语言中数组或者字符串的第一个元素的序号是1。

?Count (string, substring)用来计算字符串中的某个子串出现的次数。

例如:计算字符串"abacab"中的子串"ab"出现的次数,arrCnt = Count("abacab", "ab"),那么arrCnt就等于2。

?Len (string) 用来计算字符串中包含的字符的个数。

例如:Len("abc")的值就是3。

?TRIMF (string) 用来删掉字符串首部的空格。

TRIMB (string) 用来删掉字符串尾部的空格。

例如,字符串strA=" abc ",其首尾各有多个空格。经过strA= TRIMF (strA)和strA= TRIMB (strA)这样的处理就可以除掉字符串首尾的所有空格了,其结果是"abc"。

?Index (string, substring, instance) 用来得到字符串中的某个子串的位置。其中instance表示这个子串是在整个字符串中是第几次出现。

例如:字符串为"abacab",要计算子串"ab"第二次出现在字符串中的位置。Index ("abacab", "ab", 2 )的结果就是5。

(6). 读者看到代码中的这一行subStr match "5A" : "_" : "2N",也许会觉得迷惑,下面就重点讲解一下BASIC语言中的模式匹配规则(Pattern Matching)。

表1. DataStage BASIC语言中的模式匹配规则

DataStage BASIC 语言开发实践

本文着重介绍了如何使用 DataStage BASIC 语言开发一个用户自定义的功能函数,并且以一个完整的 Server Job 实例为读者讲解在 Transformer Stage 中如何使用内置的和自定义的函数来转化数据。文章的最后介绍了如何重用自定义的功能函数。读者定位为具有一定 DataStage 使用经验的开发人员。 DataStage 概述 IBM WebSphere DataStage是一个图形化的进行数据整合的开发环境,可以用来实现数据抽取,转化,净化,加载到目标数据库或者数据仓库中, 即ETL过程(Extract, Transform, Cleansing, Load)。DataStage使用Stage实现对数据的操作。在整个操作数据的过程中,需要创建从不同的数据源抽取数据的Stage,以及用来转化和净化数据的Stage,还需要一些Stage将数据加载到目标数据库中,一个ETL job就是一些被连线连接在一起的Stages,数据则是从一个Stage 流向下一个Stage。关于DataStage的基本使用方法,读者可以参考发表在developWorks中国网站上的《用 IBM WebSphere DataStage 进行数据整合》系列文章。 回页首 Transformer Stage 介绍 在数据整合的整个过程中,很重要的一步就是对抽取数据的格式或者内容进行必要的转化。用户可以在Transformer Stage中,对传入的数据进行任何必要的处理,再把处理好的数据传给下一个Stage。 图1就是一个正在被编辑的Transformer Stage,窗口的上半部分显示了输入与输出的字段之间的对应关系,其中DSLink13是输入的连线名称,DSLink4是输出的连线名称。而窗口下半部分详细说明了每一个输入或者输出字段的定义。

Datastage 安装后启动was失败

按照安装教程安装虚拟机版的datastage 8.7后,使用命令启动was失败 [plain]view plain copy https://www.wendangku.net/doc/f015740723.html,srvr:~ # /opt/IBM/WebSphere/AppServer/bin/startServer.sh server1 2.ADMU0116I: Tool information is being logged in file 3. /opt/IBM/WebSphere/AppServer/profiles/InfoSphere/logs/server1/sta rtServer.log 4.ADMU0128I: Starting tool with the InfoSphere profile 5.ADMU3100I: Reading configuration for server: server1 6.ADMU3200I: Server launched. Waiting for initialization status. 7.ADMU3011E: Server launched but failed initialization. startServer.log, 8. SystemOut.log(or job log in zOS) and other log files under 9. /opt/IBM/WebSphere/AppServer/profiles/InfoSphere/logs/server1 sho uld 10. contain failure information. 按照提示查看报错日志: [html]view plain copy https://www.wendangku.net/doc/f015740723.html,srvr:/opt/IBM/WebSphere/AppServer/profiles/InfoSphere/logs/server1 # tai l -100 SystemErr.log 2. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 3. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorI mpl.java:60) 4. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodA ccessorImpl.java:37) 5. at https://www.wendangku.net/doc/f015740723.html,ng.reflect.Method.invoke(Method.java:611) 6. at https://www.wendangku.net/doc/f015740723.html,uncher.Main.invokeFramework(Main.java:340) 7. at https://www.wendangku.net/doc/f015740723.html,uncher.Main.basicRun(Main.java:282) 8. at https://www.wendangku.net/doc/f015740723.html,uncher.Main.run(Main.java:981) 9. at https://www.wendangku.net/doc/f015740723.html,unchEclipse(WSPreLauncher .java:340) 10. at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:110 ) 11.Caused by: https://www.wendangku.net/doc/f015740723.html,.ascential.xmeta.repository.core.CoreRepositoryException: Error initializ ing persistence manager module 13. at com.ascential.xmeta.repository.core.impl.DefaultSandbox.(De faultSandbox.java:70) 14. at https://www.wendangku.net/doc/f015740723.html,ng.J9VMInternals.newInstanceImpl(Native Method)

ETL开发指南(DataStage EE)V2.0

DataStage Enterprise Edition 开发指南v2.0

目录 目录.................................................................................................................................................. I 1. 引言.. (1) 1.1编写目的 (1) 1.2帮助使用 (1) 2. 产品概述 (2) 3. 常规应用 (3) 3.1常用组件使用方法 (3) 3.1.1 Sequential file (3) 3.1.2 Annotation (7) 3.1.3 Change Capture Stage (8) 3.1.4 Copy Stage (10) 3.1.5 Filter Stage (11) 3.1.6 Funnel Stage (12) 3.1.7 Tansformer Stage (13) 3.1.8 Sort Stage (14) 3.1.9 LookUp Stage (15) 3.1.10 Join Stage (16) 3.1.11 LookUp Stage 和Join Stage的区别 (17) 3.1.12 Merge Stage (18) 3.1.13 Modify Stage (19) 3.1.14 Data Set Stage (20) 3.1.15 File Set Stage (22) 3.1.16 Lookup File Set Stage (23) 3.1.17 Oracle Enterprise Stage (26) 3.1.18 Aggregator Stage (28) 3.1.19 Remove Duplicates Stage (30) 3.1.20 Compress Stage (31) 3.1.21 Expand Stage (32) 3.1.22 Difference Stage (33) 3.1.23 Compare Stage (36) 3.1.24 Switch Stage (37) 3.1.25 Column Import Stage (39) 3.1.26 Column Export Stage (41) 3.1.27 Teradata Enterprise Stage (43) 3.2常用数据库的连接 (45) 3.2.1 Informix数据库连接 (45) 3.2.2 Oracle数据库连接 (46) 4. 高级应用 (48) 4.1D ATA S TAGE BASIC接口 (48) 4.2自定义S TAGE T YPE (49) 4.2.1 Wrapped Stage (49) 4.2.2 Build Stage (49) 4.2.3 Custom Stage (49) 4.3性能调优 (49) 4.3.1 优化策略 (49) 4.3.2 关键问题分析 (54)

DataStage 工作笔记

1.安装与配置 参考文档:《Planning, Installation, and Configuration Guide.pdf》 1.1服务端与客户端的安装 1.1.1安装拓扑 采用简单的两层部署进行安装,安装拓扑如下图所示: Host1环境如下: (1)硬件环境 CPU:Inetel Core Duo P8600 内存:4GB (2)软件环境 操作系统:Windows Server 2003 EE SP2 C++编译器:Microsoft Visual Studio .NET 2008 Express Edition C++ 1.1.2安装 参考文档:《Planning, Installation, and Configuration Guide.pdf》[pages 198-200] 1.1.3C++编译器配置 参考链接: https://www.wendangku.net/doc/f015740723.html,/infocenter/iisinfsv/v8r5/index.jsp?topi

c=/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsis inst_set_envars_cpp.html (1)支持的C++编译器,见如下链接的系统要求说明: https://www.wendangku.net/doc/f015740723.html,/support/docview.wss?rs=14&uid=swg27016382 1.1.4登陆与安装语言选择 登陆(会话)语言选择中文,DataStage安装语言选择英文,结果Designer里同时有中文和英文,而DB2和WAS都是中文版,如何安装纯英文版的? 解决方法1: 登陆语言选择和安装语言全部选择英文即可安装上纯英文版。 解决方法2: 通过控制面板->区域和语言选项,将语言设置为英语,安装完成后将语言再修改为中文即可。 1.1.5新建用户与凭证(Credentials) 参考文档:《Day 1 Exercise-DS.doc》[Exercise 1: Administration Console] (1)通过Web浏览器登陆Web Console for IBM Information Server,地址如下 (localhost为server端主机名): http://localhost:9080/ibm/iis/console/loginForm.jsp?displayForm=true (2)新建两个用户dsadmin和dsuser,如下图: 权限设置如下: dsadmin:Suite User、DataStage and QualityStage Administrator/User dsadmin:Suite User、DataStage and QualityStage User dsadmin 可以正常使用,但dsuser 只能登陆 Administrator,登陆Designer

数据处理师岗位职责范本

岗位说明书系列 数据处理师岗位职责(标准、完整、实用、可修改)

编号:FS-QG-39727数据处理师岗位职责 Data processor position duties 说明:为规划化、统一化进行岗位管理,使岗位管理人员有章可循,提高工作效率与明确责任制,特此编写。 数据处理工程师全日制本科以上学历(985/211),计算机科学与技术/软件工程/数据相关专业 1、3年以上ETL开发经验,熟悉ETL开发规范和流程; 2、熟练使用DataStage、Informatica、Kettle、Hive、PLSQL、SPARK、MapReduce等工具中的一个或多个,有开发、维护经验; 3、熟练编写存储过程,擅长SQL优化; 4、熟悉Oracle、SQLServer等常用数据库中的一个或多个; 5、熟悉perl、shell脚本,Linux操作系统; 6、有大型数据仓库、BI相关项目的开发经验,精通架构、建模者优先; 7、熟练使用Erwin或PowerDesigner等进行数据建模;

8.以下经验优先考虑:流式处理、日志处理、数据仓库全日制本科以上学历(985/211),计算机科学与技术/软件工程/数据相关专业 1、3年以上ETL开发经验,熟悉ETL开发规范和流程; 2、熟练使用DataStage、Informatica、Kettle、Hive、PLSQL、SPARK、MapReduce等工具中的一个或多个,有开发、维护经验; 3、熟练编写存储过程,擅长SQL优化; 4、熟悉Oracle、SQLServer等常用数据库中的一个或多个; 5、熟悉perl、shell脚本,Linux操作系统; 6、有大型数据仓库、BI相关项目的开发经验,精通架构、建模者优先; 请输入您公司的名字 Foonshion Design Co., Ltd

etl教程

ETL本质 做数据仓库系统,ETL是关键的一环。说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具。回忆一下工作这么些年来,处理数据迁移、转换的工作倒还真的不少。但是那些工作基本上是一次性工作或者很小数据量,使用access、DTS或是自己编个小程序搞定。可是在数据仓库系统中,ETL上升到了一定的理论高度,和原来小打小闹的工具使用不同了。究竟什么不同,从名字上就可以看到,人家已经将倒数据的过程分成3个步骤,E、T、L分别代表抽取、转换和装载。 其实ETL过程就是数据流动的过程,从不同的数据源流向不同的目标数据。但在数据仓库中,ETL 有几个特点,一是数据同步,它不是一次性倒完数据就拉到,它是经常性的活动,按照固定周期运行的,甚至现在还有人提出了实时ETL的概念。二是数据量,一般都是巨大的,值得你将数据流动的过程拆分成E、T和L。 现在有很多成熟的工具提供ETL功能,例如datastage、powermart等,且不说他们的好坏。从应用角度来说,ETL的过程其实不是非常复杂,这些工具给数据仓库工程带来和很大的便利性,特别是开发的便利和维护的便利。但另一方面,开发人员容易迷失在这些工具中。举个例子,VB是一种非常简单的语言并且也是非常易用的编程工具,上手特别快,但是真正VB的高手有多少?微软设计的产品通常有个原则是“将使用者当作傻瓜”,在这个原则下,微软的东西确实非常好用,但是对于开发者,如果你自己也将自己当作傻瓜,那就真的傻了。ETL工具也是一样,这些工具为我们提供图形化界面,让我们将主要的精力放在规则上,以期提高开发效率。从使用效果来说,确实使用这些工具能够非常快速地构建一个job来处理某个数据,不过从整体来看,并不见得他的整体效率会高多少。问题主要不是出在工具上,而是在设计、开发人员上。他们迷失在工具中,没有去探求ETL的本质。 可以说这些工具应用了这么长时间,在这么多项目、环境中应用,它必然有它成功之处,它必定体现了ETL的本质。如果我们不透过表面这些工具的简单使用去看它背后蕴涵的思想,最终我们作出来的东西也就是一个个独立的job,将他们整合起来仍然有巨大的工作量。大家都知道“理论与实践相结合”,如果在一个领域有所超越,必须要在理论水平上达到一定的高度 探求ETL本质之一 ETL的过程就是数据流动的过程,从不同异构数据源流向统一的目标数据。其间,数据的抽取、清洗、转换和装载形成串行或并行的过程。ETL的核心还是在于T这个过程,也就是转换,而抽取和装载一般可以作为转换的输入和输出,或者,它们作为一个单独的部件,其复杂度没有转换部件高。和OLTP系统中不同,那里充满这单条记录的insert、update和select等操作,ETL过程一般都是批量操作,例如它的装载多采用批量装载工具,一般都是DBMS系统自身附带的工具,例如Oracle SQLLoader和DB2的autoloader 等。 ETL本身有一些特点,在一些工具中都有体现,下面以datastage和powermart举例来说。 1、静态的ETL单元和动态的ETL单元实例;一次转换指明了某种格式的数据如何格式化成另一种格式的数据,对于数据源的物理形式在设计时可以不用指定,它可以在运行时,当这个ETL单元创建一个实例时才指定。对于静态和动态的ETL单元,Datastage没有严格区分,它的一个Job就是实现这个功能,在早期版本,一个Job同时不能运行两次,所以一个Job相当于一个实例,在后期版本,它支持multiple instances,而且还不是默认选项。Powermart中将这两个概念加以区分,静态的叫做Mapping,动态运行时叫做Session。 2、ETL元数据;元数据是描述数据的数据,他的含义非常广泛,这里仅指ETL的元数据。主要包括每次转换前后的数据结构和转换的规则。ETL元数据还包括形式参数的管理,形式参数的ETL单元定义的参数,相对还有实参,它是运行时指定的参数,实参不在元数据管理范围之内。

主流ETL工具选型

主流ETL工具选型 ETL(extract, transform and load)产品乍看起来似乎并不起眼,单就此项技术本身而言,几乎也没什么特别深奥之处,但是在实际项目中,却常常在这个环节耗费太多的人力,而在后续的维护工作中,更是往往让人伤透脑筋。之所以出现这种状况,恰恰与项目初期没有正确估计ETL工作、没有认真考虑其工具支撑有很大关系。 做ETL产品的选型,仍然需要从以前说的四点(即成本、人员经验、案例和技术支持)来考量。在此,主要列举三种主流ETL产品: Ascential公司的Datastage、 Informatica公司的Powercenter、 NCR Teradata公司的ETL Automation、 Oracel 公司的ODI、 国产udis睿智ETL、 其中,ETL Automation相对其他两种有些特别之处,放在后面评述。 旗鼓相当:Datastage与Powercenter: 就Datastage和Powercenter而言,这两者目前占据了国内市场绝大部分的份额,在成本上看水平相当,虽然市面上还有诸如Business Objects公司的Data Integrator、Cognos公司的DecisionStream,但尚属星星之火,未成燎原之势。 谈Datastage和Powercenter,如果有人说这个就是比那个好,那听者就要小心一点了。在这种情况下有两种可能:他或者是其中一个厂商的员工,或者就是在某个产品上有很多经验而在另一产品上经验缺乏的开发者。为什么得出这一结论?一个很简单的事实是,从网络上大家对它们的讨论和争执来看,基本上是各有千秋,都有着相当数量的成功案例和实施高手。确实,工具是死的,人才是活的。在两大ETL工具技术的比对上,可以从对ETL流程的支持、对元数据的支持、对数据质量的支持、维护的方便性、定制开发功能的支持等方面考虑。 一个项目中,从数据源到最终目标表,多则上百个ETL过程,少则也有十几个。这些过程之间的依赖关系、出错控制以及恢复的流程处理,都是工具需要重点考虑。在这一方面,Datastage的早期版本对流程就缺乏考虑,而在6版本则加入Job Sequence的特性,可以将Job、shell脚本用流程图的方式表示出来,依赖关系、串行或是并行都可以一目了然,就直

datastage入门教程

简介 DataStage 使用了Client-Server 架构,服务器端存储所有的项目和元数据,客户端DataStage Designer 为整个ETL 过程提供了一个图形化的开发环境,用所见即所得的方式设计数据的抽取清洗转换整合和加载的过程。Datastage 的可运行单元是Datastage Job ,用户在Designer 中对Datastage Job 的进行设计和开发。 Datastage 中的Job 分为Server Job, Parallel Job 和Mainframe Job ,其中 Mainframe Job 专供大型机上用,常用到的Job 为Server Job 和Parallel Job 。 本文将介绍如何使用Server Job 和Parallel Job 进行ETL 开发。 Server Job 一个Job 就是一个Datastage 的可运行单元。Server Job 是最简单常用的Job 类型,它使用拖拽的方式将基本的设计单元-Stage 拖拽到工作区中,并通过连线的方式代表数据的流向。通过Server Job,可以实现以下功能。 1.定义数据如何抽取 2.定义数据流程 3.定义数据的集合 4.定义数据的转换 5.定义数据的约束条件 6.定义数据的聚载 7.定义数据的写入 Parallel Job Server Job 简单而强大,适合快速开发ETL 流程。Parallel Job 与Server Job 的不同点在于其提供了并行机制,在支持多节点的情况下可以迅速提高数据处理效率。Parallel Job 中包含更多的Stage 并用于不同的需求,每种Stage 使用上的限制也往往大于Server Job。 Sequence Job Sequence Job 用于Job 之间的协同控制,使用图形化的方式来将多个Job 汇集在一起,并指定了Job 之间的执行顺序,逻辑关系和出错处理等。 数据源的连接 DataStage 能够直接连接非常多的数据源,应用范围非常大,可连接的数据源包括: ?文本文件 ?XML 文件

高级数据分析师工作的基本职责

高级数据分析师工作的基本职责 高级数据分析师需要协助业务数据收集整理,撰写数据分析报告,结合业务对多种数据源进行深度诊断性组合分析。下面是小编整理的高级数据分析师工作的基本职责。 高级数据分析师工作的基本职责1 职责: 1. 负责出行平台层面司乘用户分析,给平台相关业务及策略建设输入洞察和方法; 2. 形成天、周和月度的分析报告,传递给公司管理层并进行定期汇报; 3. 可独立完成针对特定问题的分析解读,支持临时型研究项目,产出用户留存及迁移的分析结论,用于输出给各品类优化营销产品的运营策略; 4. 参与产品上线前的预估,上线时的数据埋点,上线后的效果评估及优化,构建乘客端营销工具的分析体系。

5. 保持数据敏感,监控与发现问题、将数据转化为可落地的和有说服力的洞察,辅助推进业务决策 岗位要求: 1、数据分析相关工作经验,了解用户需求,互联网相关领域优先,应用数学,统计学,计算机, 经济学相关专业硕士优先; 2、具备大数据的处理能力,掌握hive、SQL等相关数据提取工具,熟练使用R或Python、excel、SAS/SPSS、PPT等工具; 3、具有较强的思维逻辑能力,良好的数据敏感度,能从海量数据提炼核心结果;有丰富的数据分析、挖掘、建模的经验; 4、具备良好的沟通协调能力,有独立开展分析研究项目经验; 5、一定的抗压能力和和团队精神;能有效的推动数据结论的落地 高级数据分析师工作的基本职责2 职责: 1.对海量业务数据进行处理和分析,发现和跟踪其中的问题。能够从业务和产品的角度出发,利用数据发现产品、系统或是业务的瓶颈,并提出优化的方案

2.分析海量用户行为数据,优化用户生命周期流程,提升用户规模 3.利用数据挖掘,机器学习等技术解决实际问题,比如实现模块或流程自动化,业务报表系统的建设,离线数据流程的建设,数据可视化等 4.建立各种业务逻辑模型和数学模型,帮助公司改善运营管理,节省成本 任职要求 1.计算机、数学、统计相关专业,本科及以上学历 2.熟练掌握:mysql、hdfs/hive/数据库使用,较强的数据库及SQL 能力,并对Hadoop 技术体系有所了解和研究 3.具备数据敏感性和探知欲、分析、解决问题的能力,能够承受工作中的压力,专注数据的价值发现和变现转化 4.工作认真、负责、仔细,有良好的团队合作精神,良好的分析问题能力、沟通技巧及数据呈现能力 高级数据分析师工作的基本职责3 职责: 1、研究大数据新技术分析发展方向;

数据仓库工程师岗位的主要职责说明

数据仓库工程师岗位的主要职责说 明 数据仓库工程师负责数据仓库系统与业务系统的接口设计和确认工作。下面是小编为您精心整理的数据仓库工程师岗位的主要职责说明。 数据仓库工程师岗位的主要职责说明1 职责: 1、负责数据仓库建模和ETL技术工作,确保项目实施过程中的数据源分析,能顺利有序地进行; 2、熟练掌握ETL设计过程,参与数据平台架构的设计、开发、流程优化及解决ETL相关技术问题; 3、与用户和项目组进行有效沟通,采集项目需求,并提出相应的解决方案; 4、有ERP开发或实施经验者优先; 5、参与海量数据情况下的数据库调优等工作;

6、按照项目推进情况,完成主管交付的临时性任务; 7、能够按照公司全面质量管理的要求,高质量完成各类技术支持工作。 岗位要求: 1、计算机相关专业本科以上学历,2年工作经验; 2、具备独立完成ETL开发、设计数据仓库流程,精通Oracle, MS SQL Server 等主流数据库,具备独立设计数据库和编写存储过程的能力; 3、掌握Java,Python等任意一门开发语言,可以独立开发模块; 4、精通数据库SQL调优; 5、有多维数据仓库工作经验优先; 6、具备财务基础知识或者ERP基础知识者优先; 7、有DataStage,informatica,kettle经验者优先; 8、逻辑思维能力强,对数据敏感,有较强学习能力和创新思维; 9、可以独立与客户进行需求沟通,工作认真负责,团队意识强;

数据仓库工程师岗位的主要职责说明2 职责: 1、负责金融数据的收集、整理与分析; 2、负责oracle数据仓库的设计、开发搭建及运行维护; 3、依据业务需求优化数据存储结构; 4、协助项目其他成员设计关键的SQL语句和触发器、存储过程、表等; 5、通过数据库的日常检查,对性能较差的SQL语句提出优化方案; 6、协助搭建量化投资策略平台。 要求: 1、计算机网络、统计、数学或信息技术本科及以上学历; 2、能编写Oracle简单脚本,可以独立在windows和linux环境下搭建管理oracle服务器数据库; 3、对linux,unix 操作系统有了解,熟练使用shell,python等脚本语言处理数据; 4、至少一年以上的的数据分析、挖掘、清洗和建模的经验;

datastage入门培训

一、工具入门 DataStage是一个ETL的工具,就是对数据的抽取,转换,加载。个人通俗的理解就是一个对数据进行处理,提取的工具,这里面的数据大部分是以数据库中表的格式存在着的,所以如果要使用这个工具,首先必须对关系数据库的一些基本概念要有所了解,比如最基本的字段,键,记录等概念。 DataStage是通过设计job来实现ETL的功能的。 Job的设计跟普通的IDE设计一样,通过拖拽控件,并填加脚本来完成。这里的控件称为stage,每一个不同的stage都有不同的数据处理的功能,将各个stage通过一定的方式组合起来,设计成job,对job进行编译,运行,就能够实现对数据抽取转换加载。 1,安装datastage,看学习指导,先对该工具有个大概的认识,大概知道administrator,design,director,manager的区别。 了解datastage工具的主要用途:简单的说就是把一批数据input进来,经过各种各样的转化,清洗,然后在output出去,整个就是ETL 的过程。 对4个工具我们最常做的操作有: Administrator:1、对Project的管理,主要是建立和删除project; 2、对Licensing的管理,主要是更换Licensing。 design:datastage的核心,所有的开发都在design里面完成,在这里可以编辑你的job,使用各种stage控件。 director:1、查看日志,当运行job结束时,无论job成功或者失败,我们都可以在director 里面查看日志,里面能反映我们job运行的状态,经常job出错我们都是先查看日志,然后分析原因,再到design里面修改。 2、director的另外一个很有用的功能是logout job,当服务器或者网络出问题时,正在编辑的job很有可能被锁定,这时你就算把design关了再重新登陆还是无法打开job,会提示job has been used, 这就需要到director里面把job logout,然后就可以使用了。manage:manage的最主要的功能是可以对design里面的资源进行导入导出,当我们要把开发的job从一台机器转移到另外一台机器时,就需要用到。 二、开始学习使用design,做一些简单的job,接触几个常用的stage。 做练习1的1-2至4-2的练习,练习中用到的Oracle组件全部用sequence file 代替, 1-2练习中会教你导入练习所要用到的表的结构,练习中要用到的数据文件放在数据及表定义目录下。(表定义可以通过manage工具导入,但是数据文件必须自己手工导入,所以开发前请先将数据及表定义目录下面的所有.txt的数据文件导到你所使用的datastage的开发环境上,导数据文件的方法可以使用ftp工具) 要设计job的关键,就在于能够熟悉每个不同的stage并且能够灵活运用。在文档和指导中有对每个控件的使用方法作了图文并茂的说明,但是教材语言的一个缺点就是太过形式化,所以有些概念不能够很好的理解。比如lookup这个stage我在看教材的时候就没有太了解。所以,我就结合自己,用自己的语言对一些比较常用的stage说一下自己的理解和一些需要注意的地方。 几个常用stage的经验总结: Sequential File Stage:这个控件实际上是指代主机上面的一个文件,在它的属性中可以选定文件的路径,目录。一般这些文件都是以类似数据库表的格式存在的。使用这个控

华为各平台技能要求

华为各平台技能要求 说明:下面各平台级别及技能要求都是华为项目所需要的,未列出的级别及技能华为10年还没有需求。 J2EE平台 三级 计算机相关专业,本科三年以上本领域工作经验;技能要求:掌握J2EE架构;熟练掌握IBM WSAD 版本5.1以上或IBM RAD开发工具;熟练掌握Struts框架开发技术;熟练掌握Java 语言编程技术;熟悉UML语言,能够理解UML设计图;熟练掌握Oracle SQL开发与存储过程开发。具有三年以上的Java开发经验,2年以上的基于J2EE技术规范的WEB开发经验 二级 计算机相关专业,本科两年以上或大专四年以上本领域工作经验;技能要求:掌握Java编程语言;了解J2EE架构;熟练掌握java script,html、Jsp、Servlet、JavaBean等web 开发技术;掌握标准SQL语言,有Oracle Sql开发经验。了解UML语言;掌握IBM WSAD 版本5.1以上或IBM RAD开发工具或Eclipse开发工具;熟悉WEB/J2EE服务器的使用,可熟练配置使用Tomcat,Apache。参与过系统的设计与开发工作,2年以上Java开发经验。 Net平台 三级 计算机相关专业,本科三年以上本领域工作经验,技能要求:除满足二级人员要求外,熟练掌握.Net开发框架,熟练掌握https://www.wendangku.net/doc/f015740723.html,开发和C#开发;熟悉IIS服务器配置与管理;熟悉Web Service,精通XML文件的解析。具有三年以上的.Net开发经验,1年以上的基于.Net 技术规范的WEB开发经验。有能力解决项目组内重大问题、能指导设计开发 二级 计算机相关专业,本科两年以上或大专四年以上本领域工作经验,技能要求:掌握C#开发语言;熟悉.Net多层架构;熟练掌握java script,html、https://www.wendangku.net/doc/f015740723.html,等web开发技术;有COM/COM+的开发经验;掌握标准SQL语言,有较好的基于Oracle或Sql Server的 Sql开发经验。了解UML语言;掌握Microsoft Visual Studio (版本 2003,2005)开发工具;熟悉配置使用IIS服务器。参与过中等规模系统的设计与开发工作;与他人能够保持良好沟通与合作。 Oracle(开发)平台 三级 1、沟通能力强,理解能力强,工作态度好; 2、Oracle Form,Oracle Report,Oracle数据库开发3年以上工作经验; 3、至少参与1个基于oracle开发的中大型项目; 4、使用过版本管理工具;

datastage入门教程

简介 DataStage 使用了 Client-Server 架构,服务器端存储所有的项目和元数据,客户端 DataStage Designer 为整个 ETL 过程提供了一个图形化的开发环境,用所见即所得的方式设计数据的抽取清洗转换整合和加载的过程。Datastage 的可运行单元是 Datastage Job ,用户在 Designer 中对 Datastage Job 的进行设计和开发。Datastage 中的 Job 分为 Server Job, Parallel Job 和 Mainframe Job ,其中 Mainframe Job 专供大型机上用,常用到的 Job 为Server Job 和 Parallel Job 。本文将介绍如何使用 Server Job 和 Parallel Job 进行 ETL 开发。 Server Job 一个 Job 就是一个 Datastage 的可运行单元。Server Job 是最简单常用的Job 类型,它使用拖拽的方式将基本的设计单元 -Stage 拖拽到工作区中,并通过连线的方式代表数据的流向。通过 Server Job,可以实现以下功能。 1.定义数据如何抽取 2.定义数据流程 3.定义数据的集合 4.定义数据的转换 5.定义数据的约束条件 6.定义数据的聚载 7.定义数据的写入 Parallel Job Server Job 简单而强大,适合快速开发 ETL 流程。Parallel Job 与 Server Job 的不同点在于其提供了并行机制,在支持多节点的情况下可以迅速提高数据处理效率。Parallel Job 中包含更多的 Stage 并用于不同的需求,每种 Stage 使用上的限制也往往大于 Server Job。 Sequence Job Sequence Job 用于 Job 之间的协同控制,使用图形化的方式来将多个 Job 汇集在一起,并指定了 Job 之间的执行顺序,逻辑关系和出错处理等。 数据源的连接 DataStage 能够直接连接非常多的数据源,应用围非常大,可连接的数据源包括:

Datastage开发经验

NEUSOFT Datastage开发经验 开发手册 刘石磊 2014/7/23

目录 第一章 Datastage连接配置 (3) 1.配置DS连接 (3) 2.打开DS designer,选择服务层主机名,输入用户名密码,然后在项目中选择对应的开发项目,确定后进入DS开发界面 (3) 第二章 Datastage Designer开发 (4) 1.在Jobs目录下建立自己的开发目录层级 (4) 2.job调用关系 (4) 3.job能调用的组件 (5) 4.开发一个job (6) 5.导入表定义(Table Definitions) (17) 6.开发一个sequence (20) a.新建Sequence,将并行job拖入设计面板 (20) b.保存编译后即可运行 (20) 7.运行job (21) 8.全局参数&环境变量设置 (23) 9.在job和sequence中调用参数 (24) a.Job中变量参数设置 (24) b.Sequence中变量参数设置 (27) 10.调用存储过程 (28) a.新建一个job,作业属性配置如下图 (28) b.调用存储过程,在查询存储过程运行状态的表的sql前—Before SQL,调用存储 过程CALL ETL.SP_IPRO_ETL_ALL('#$p_etl_date#'); (28) 11.运行job失败时怎么办 (29) 第三章 Datastage Director使用 (30) a.只有处于已编译和已完成状态的job或sequence才能直接运行 (30) b.查看报错日志 (30) c.job日志过滤 (31) d.再次运行job (32) 第四章 Datastage Designer其它功能 (33)

datastage教程

1、【第一章】datastage简介与工作原理 1、简介 数据中心(数据仓库)中的数据来自于多种业务数据源,这些数据源可能是不同硬件平台上,使用不同的操作系统,数据模型也相差很远,因而数据以不同的方式存在不同的数据库中。如何获取并向数据中心(数据仓库)加载这些数据量大、种类多的数据,已成为建立数据中心(数据仓库)所面临的一个关键问题。针对目前系统的数据来源复杂,而且分析应用尚未成型的现状,专业的数据抽取、转换和装载工具DataStage是最好的选择。 Websphere DataStage 是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集市或数据中心(数据仓库)目标数据库的集成工具。 DataStage 能够处理多种数据源的数据,包括主机系统的大型数据库、开放系统上的关系数据库和普通的文件系统等,以下列出它所能处理的主要 数据源: 大型主机系统数据库:IMS,DB2,ADABAS,VSAM 等 开放系统的关系数据库:Informix,Oracle,Sybase,DB2,Microsoft SQL Server等ERP 系统:SAP/R3,PeopleSoft系统等,普通文件和复杂文件系统,FTP 文件系统,XML等IIS,Netscape,Apache等Web服务器系统Outlook等Email系统。 DataStage 可以从多个不同的业务系统中,从多个平台的数据源中抽取数据,完成转换和清洗,装载到各种系统里面。其中每步都可以在图形化工具里完成,同样可以灵活的被外部系统调度,提供专门的设计工具来设计转换规则和清洗规则等,实现了增量抽取、任务调度等多种复杂而实用的功能。其中简单的数据转换可以通过在界面上拖拉操作和调用一些DataStage 预定义转换函数来实现,复杂转换可以通过编写脚本或结合其他语言的扩展来实现,并且DataStage 提供调试环境,可以极大提高开发和调试抽取、转换程序的效率。

数据仓库面试题

数据仓库及BI工程师面试题集锦 前言 1、介绍一下项目经验、项目中的角色。 一、数据库 1、Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作 用? 2、Oracle数据库,有哪几类索引,分别有什么特点? 3、Union与Union All的区别? 4、对游标的理解?游标的分类?使用方法? 5、如何查找和删除表中的重复数据?给出方法或SQL。 6、不借助第三方工具,怎么查看SQL的执行计划? 7、创建索引有哪些需要注意的要点? 8、Oracle数据库中,有哪几种分区?各自特点是什么?作用是什么?分区索引的分 类和作用? 9、表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql。 10、备份如何分类?归档是什么含义? 11、如果系统现在需要在一个很大的表上创建一个索引,需要考虑那些因素,如何做到 尽量减小对应用的影响? 12、是否有海量数据处理经验?有何方法? 二、ETL工具 1、Informatica中,Update组件叫什么?更新机制? 2、Informatica中,LookUp组件有哪几类?区别是什么? 3、Informatica中,如何调用存储过程? 4、Informatica中,工作流控制有哪些组件? 5、Informatica优化方案? 6、DataStage的JOB有哪些类型?特点分别是什么?

7、DataStage中,如何设置parallel job并行运行? 8、DataStage中,Join Stage 与Lookup Stage组件在使用上有何区别? 9、DataStage的优化方案? 三、模型设计 1、有哪几种模型设计方法?特点分别是什么? 2、模型设计的步骤? 3、维度模型的设计方法? 4、模型设计的思路?业务需求驱动?数据驱动? 3、模型设计经验说明。在概念模型设计、逻辑模型设计以及物理模型设计几个阶段主 要的工作是什么? 四、Cognos开发 1、Cube刷新方案? 2、报表数据权限控制方案? 3、Cube增量刷新方案? 五、Shell开发 1、在Unix/Linux中,查看磁盘空间可以用哪些命令? 2、在Unix/Linux中,压缩和解压缩文件可以用哪些命令? 3、sed命令的作用? 4、在Unix/Linux中,添加用户用什么命令? 5、在Unix/Linux中,查看文件行数什么命令? 六、数据仓库设计 1、增量数据获取方案? 2、请解释以下概念:数据集市、事实表、维度表、OLAP 3、元数据管理在数据仓库中的运用有何心得?

大数据处理综合处理服务平台的设计实现分析范文

大数据处理综合处理服务平台的设计与实现 (广州城市职业学院广东广州510405) 摘要:在信息技术高速发展的今天,金融业面临的竞争日趋激烈,信息的高度共享和数据的安全可靠是系统建设中优先考虑的问题。大数据综合处理服务平台支持灵活构建面向数据仓库、实现批量作业的原子化、参数化、操作简单化、流程可控化,并提供灵活、可自定义的程序接口,具有良好的可扩展性。该服务平台以SOA为基础,采用云计算的体系架构,整合多种ETL技术和不同的ETL工具,具有统一、高效、可拓展性。该系统整合金融机构的客户、合约、交易、财务、产品等主要业务数据,提供客户视图、客户关系管理、营销管理、财务分析、质量监控、风险预警、业务流程等功能模块。该研究与设计打破跨国厂商在金融软件方面的垄断地位,促进传统优势企业走新型信息化道路,充分实现了“资源共享、低投入、低消耗、低排放和高效率”,值得大力发展和推广。 关键词:面向金融,大数据,综合处理服务平台。 一、研究的意义 目前,全球IT行业讨论最多的两个议题,一个是大数据分析“Big Data”,一个是云计算“Cloud Computing”。中

国五大国有商业银行发展至今,积累了海量的业务数据,同时还不断的从外界收集数据。据IDC(国际数据公司)预测,用于云计算服务上的支出在接下来的5 年间可能会出现3 倍的增长,占据IT支出增长总量中25%的份额。目前企业的各种业务系统中数据从GB、TB到PB量级呈海量急速增长,相应的存储方式也从单机存储转变为网络存储。传统的信息处理技术和手段,如数据库技术往往只能单纯实现数据的录入、查询、统计等较低层次的功能,无法充分利用和及时更新海量数据,更难以进行综合研究,中国的金融行业也不例外。中国五大国有商业银行发展至今,积累了海量的业务数据,同时还不断的从外界收集数据。通过对不同来源,不同历史阶段的数据进行分析,银行可以甄别有价值潜力的客户群和发现未来金融市场的发展趋势,针对目标客户群的特点和金融市场的需求来研发有竞争力的理财产品。所以,银行对海量数据分析的需求是尤为迫切的。再有,在信息技术高速发展的今天,金融业面临的竞争日趋激烈,信息的高度共享和数据的安全可靠是系统建设中优先考虑的问题。随着国内银行业竞争的加剧,五大国有商业银行不断深化以客户为中心,以优质业务为核心的经营理念,这对银行自身系统的不断完善提出了更高的要求。而“云计算”技术的推出,将成为银行增强数据的安全性和加快信息共享的速度,提高服务质量、降低成本和赢得竞争优势的一大选择。

相关文档