当前位置:文档之家› DATASTAGE实用指南

DATASTAGE实用指南

DATASTAGE实用指南
DATASTAGE实用指南

DATESTAGE 使用实用指南

DS的竞争对手:

Informatica的PowerCenter

Group 1的Stagent Data Flow

BO的DI

ASCL的Data Stage

1.DataStage官方文档学习笔记

1.1通过右键添加link

鼠标右键点击起始stage,按住右键移动鼠标到目标stage。还有一种方法就是把鼠标放在起始stage的边缘等到变为一个小圆圈里面有一个叉的时候拖动鼠标到目标stage。

1.2DataStage中默认和隐式类型转换时注意的问题

当从源向目标映射数据时,如果类型不一致,对于有些类型我们需要在modify或transfomer stage中通过函数进行转换,对于有些系统会自动完成类型转换,在类型转换过程中,注意以下几点:

1 在变长到固定长度字符串的默认转换中,parallel jobs用null(ASCII 0)字符来填充剩余长度。联系到前面做的一个parallel job,当目标是变长时(当时源也是变长,但是好像源的精度要小些),但是字符串实际的长度没有指定的变长那么长的话,系统会自动用空格(ASCII 20)来填充(具体在哪个stage 填充的不知),而且环境变量APT_STRING_PADCHAR的默认值也是空格(ASCII 20)。

2 通过环境变量APT_STRING_PADCHAR可以改变默认的填充字符null(ASCII 0)。

注:联系上面两点,感觉文档讲的与实际不符,难道我们项目的administrator改变了该环境变量的默认值?

3 有个PadString 函数可以用来用指定的字符来填充一个变长的字符串到指定的长度。这个函数的参数不能使固定长度字符串,如果是固定长度的先转化为变长。

1.3Copy Stage作为占位符

在job开发中,当你暂时不知道该使用哪个stage时,可以使用copy stage作为占位符,注意不要把Force 属性设为True,在不把Force设为True时,复制将在运行时进行优化。

使用Schema file来指定meta data

1 可以通过列定义和schema file两种方式来指定meta data,值得注意的一点是Note that, if you use

a schema file, you should ensure that runtime column propagation is turned on. Otherwise the column definitions specified in the stage editor will always override any schema file.即,如果想通过schema file来指定meta data,必须勾上runtime column propagation,否则总是使用列定义来作为meta data。

2 If you are using a schema file on an NLS system, the schema file needs to be in UTF-8 format.如果你的datastage使用了NLS system,那么schema file必须是UTF-8格式的。文档中说可以使用Sequential stage来完成转码。

通过Server Shared Container在Parallel Job中添加Server Job Stage

You create a new shared container in the DataStage Designer, add Server job stages as required, and then add the Server Shared Container to your Parallel job and connect it to the Parallel stages.在Designer中创建一个server shared container,添加需要的Server job stage,再把server shared container添加到parallel job并连接到其他parallel stage。

几个环境变量的具体路径

%SERVERENGINE% – DataStage engine account directory(normally

C:\Ascential\DataStage\Engine on Windows and

\Ascential\DataStage\DSEngine on UNIX).

%PROJECT% – Current project directory.

%SYSTEM% – System directory on Windows NT or /usr/lib on UNIX.

一句不太懂的话,先做记录

If NLS is enabled, avoid using the built-in Iconv and Oconv functions to map data unless you fully understand the consequences of your actions.在使用了NLS时,尽量避免使用Iconv and Oconv 来映射日期,因为可能产生一些意想不到的结果。

1.4Datastage的使用心得及unix应用

Datastage是Ascential公司出品的著名第三方ETL工具。它的主要特点有:

1.可视化操作截面,避免了大量的手工code

2.第三方工具,善于处理复杂的数据源

3.可监控性好,能够快速发现ETL中的问题并解决

对于Datastage的初学者来说,通过学习官方培训资料(网上到处都有的当了),可以快速的入门,毕竟Datastage是一个可视化的工具,没有太深涩难懂的内容。但在真正运用中,就可能碰到各种各样的问题。

下面就说一说我在使用中曾经困惑过的一些问题:

1.Job的粒度。

一套ETL过程中,含有多个步骤,在设计过程中,到底是粗化一些,用少而复杂的job实现,还是细化一些,用多而简单的job实现更好呢?我个人认为,比较细的粒度更有利于程序的开发。在开发初期,表面看来细化的job比较繁琐,但在项目后期的测试阶段,细化的job可以更准确的定位错误并易于修改。

2.并行和串行。

当到了开发后期,我们准备把多个job连接起来,我们就会发现,能否将多个job并行成为ETL效率的关键,而这个因素在设计初期往往被忽略。ETL中可能会涉及多个数据源的多个表,而多个job也可能会形成对某个数据源以及其中的某个表的争用。当数据源争用时,会影响ETL的执行效率。当表争用无法解决的时候,就只能使用串行。而一个好的结构流程设计,可以极大的减少这种争用,从而提高ETL的效率。

3.要将Datastage与外部code相结合。

Datastage并不是独立运行的开发工具,它需要外部控制程序为载体,才可以进行良好的客户操作。而

Datastage也不是万能的,简单的说,它只是sql语言的一个可视化载体。因此,有一些功能,并不一定要在Datastage中实现,而应该放到外部程序中,以sql code的形式完成,以保证整个程序的稳定性,安全性。

上面是一些大方向的问题,在实际中会有很多烦琐的小问题,我也尽量的列举一些:

1.字符集:output和input中的字符集都设置为none,是一个不错的选择。至少可以保证程序运行不会因为乱码abort。

2.文本中的列分隔符无法设置为三位,从理论上讲,只有三位分割符才可以保证程序不会将乱码辨认为分隔符,这是Datastage的一个缺陷。

3.在使用自定义sql前,需要使用非自定义形式手工配置好所需要的表,然后再切回自定义格式,如果直接写自定义sql,将导致Datastage无法辨别表名,从而导致错误,这应该是一个bug。

4.保持配置一个input或output,就view data一下的习惯,不要等到run时再回头找error. 5.Input中尽量不要使用insert or update之类的选项,它和insert only的差别是巨大的。使用insert or update等选项,相当于使用游标,逐条进行对比,每insert一条,都要先做一次全表扫描,其速度是可想而知的。如果必须要实现这种功能,应使用其他方法,如先delete目标表中所有与源表重复的记录,然后再从源表中insert数据.

6.Date型数据是比较麻烦的,因为Datastage中的日期格式为timestamp,当然你也可以把它的日期格式更改为date型,但经常会出现错误。对于oracle数据库源表和目标表,不需要对date型数据做任何转换,直接使用默认即可,但对于informix等一些数据库,则需要使用oconv,iconv函数进行转换,并在output中相应的修改output sql中的日期格式。具体用法可以去网上或查datastage帮助。

7.只要你保证input和output时数据类型和长度不会有问题,在两者之间的这一段过程中,Datastage 中的数据类型和长度是可以随意更改的,也可以随意增加自定义列。

8.字符串中的半角空格需要用trimb,而不是trim函数,但这点往往被忽略。其他的情况还可能有半角中文等,所以字符串,长度,字符集,这几者之间经常会导致Datastage产生错误,所以应尽量保证insert 前的字符串长度要小于insert后的字符串长度,而你看到的insert前的字符串长度并不一定就是它在Datastage中真正的长度,所以使用trimb函数在input sql中做一下限制,才是最稳妥的方法。

2.实用技术介绍

2.1JOB的分类与作用

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的实行流程,出错处理,文件监控等。

2.2jobstatus的用法

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

2.3判断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是允许一定违反规范规则的情况存在。

2.4关于对多表进行关联操作的STAGE对不同表的同名字段的处理

这些STAGE有:JOIN、LOOKUP、MERGE等。

DA TASTAGE的处理原则:保留前者,抛弃后者。

例子:

源表:A(a,b,c,d),关联表:B(b,c,e,f)。

取值规则:第一次关联条件A.b = B.b,取B.e;第二次关联条件A.c = B.c,取B.e。

说明:关联的有前后之分的。第一次关联时,在结果集中已经存在的名字为e的字段,第二次关联是在第一次关联的结果集的基础上进行的,第二次所取的字段名与第一次所取的相同。在此就出现种问题,从数据库常识来说,同一张表是不允许有同名字段出现的,如何能够正确取值呢?

在T-SQL里面,可以使用JOIN语句对表进行关联,两张表的同名字段e因为被加了表名作前缀,所以即使字段名相同,也可以正确输出。以下则为使用T-SQL完成上述取值规则的语句:SELECT A.a,A.b,A.c,A.d,B.e

FROM A LEFT JOIN

(SELECT A.a,A.b,A.c,A.d,B.e,AB.e

FROM A LEFT JOIN B ON A.b = B.b) AS AB ON A.c = AB.c

很容易就能看出,最终的结果将会(假设结果表名为C):C(A.a,A.b,A.c,A.d,B.e,AB.e),结果正确,所以在T-SQL里,在做多表关联时,可以不必关心不同表的同名字段的取值问题。

但在DATASTAGE里就不能不关心了。由于DA TASTAGE里的所有STAGE的输出,默认下是对该STAGE的输入进行复制,即表结构的复制。输入的是什么名字的字段,输出的也是这个名字的字段。那么多表关联时,如果不同的表有相同名字的字段,那么输出时也会出现有同名字段了,而数据表是不允许有同名字段的,所以就会发生同名冲突。DATASTAGE对于这中其矿,处理方式是把最先输入的字段保留下来,之后如果有同字段再添加进来时,就会把要添加进来的字段抛弃掉。这种情况,即使在JOB 运行时也不会报错的,因为语法是没有错误的,不过会出现一个W ARNING,告知用户这个STAGE将会出现字段知丢失。所以碰到上面上述情况,解决的方法是在第二次关联时,在输出时把这个同名字段的名字手工更改一下。如上,把字段名e改为字段名e_2,赋值也是赋e过去,这样既保留了e的值,有不会给抛弃,只是更改了一下字段的名字,到最后输出时再统一把结果表名定制一下就行。

2.5对数据进行HASH分区的STAGE的设置细节

例子:

在用JOIN STAGE对两张表进行关联,关联的条件是UID,再设置的该STAGE对数据按照UID进行HASH 分区,所有的STAGE都设置正确无误后,运行JOB,老是在JOIN STAGE里有一个W ARNING。

原因: 这种情况是由于设置HASH分区后产生的(数据分区的概念将另述)

解决方法:

打开产生WARNING的STAGE的前一个(是前一个!)也进行了HASH分区的STAGE的设置面板,在Stage Page——Advance Tab里,选择Preserve partitioning下拉选项中的“Clear”值。默认是“Propagate”值,其意义是下一个STAGE在做HASH分区时,会继承上一个(即该STAGE)对HASH分区的设置参数。按照HASH分区的机制,这样继承会出现数据丢失的可能,所以DS就会产生WARNING。而选择“Clear”的意义就时让下一个要做HASH分区的STAGE不要继承上一个STAGE的HASH分区设置,而重新按照用户的设置来进行HASH分去。

.6把结果输出到平面文件时的注意事项

例子:在原来调试过正确无误的JOB,把最后的数据文件由原来的DATA SET改为SEQUENCE文件时,JOB运行正常,且可以重运行,就上没有实际的数据输入到结果文件里,文件所对应的输入LINK显示有数据输入,结果文件也创建了,但打开的是一个空白文件,VIEW也VIEW不到有数据,提示说没有结果返回。

原因:平面文件的默认格式设置引起。默认下,平面文件的输入格式是,每个字段都要有值输入。如果输入到平面文件的数据中有空值,而平面文件又用默认设置的话,输入就会给REJECT掉。

解决方法:设置平面文件的数据格式。在Stage Page——Format里,设置空值的处理方式,比如设为NULL,则遇到空值时,DS就会在平面文件的该字段里填充NULL。

2.7DATASTAGE中INTEGER型数值上限为2000000000(20亿)

2.8对于那些关联不上而又为非空的字段,DS会自动赋默认值,数字型默认值为0,字符型默认值为''

例子:

表A通过JOIN STAGE与表B进行左关联,取B表的流水ID,B表的ID字段可空性为NO,把B 表的ID传递给A表,然后通过TRANSFORM STAGE设置条件取出关联不上的记录来,TRANSFORM STAGE的过滤条件是:IsNull(ID),由于关联不上的记录的ID字段会是NULL,这样设置按理应该是可以把关联不上的记录输出的,而实际上是输出不到的。

原因:B表ID字段是非空的,那么传递给A表的ID的也将是非空。对于那些关联不上的记录,理论上ID字段应该为NULL,但由于ID是非空的,所以DS 会把一个默认值插入到ID中去。经过如此处理,使用IsNull(ID)就当然不能数据正确记录了,因为ID根本就不是NULL。

解决方法:

方法一:在传递ID字段给A表时,用NullToZero或者NullToEmpty函数对ID封装起来。如果ID 是数字型的,用NullToZero,如果ID是字符型的,用NullToEmpty。相应的,TRANSFORM STAGE的过滤条件就应该改为ID = 0或ID = '',即可把关联不上的记录正常输出来。

方法二:直接修改TRANSFORM STAGE的过滤条件,修改为:NullToZero(ID) = 0或者NullToEmpty(ID) = ''。

注意:经过DS赋予默认值后,ID其实已经不为NULL了,所以理论上使用NullToZero或NullToEmpty 是不适合的。但实际开发中,上述方法确实能够解决问题。

2.9可空字段拼接字符串特别需要注意的问题:

在拼接字段串时,要注意所以拼接的字段当中有没有空字段,如果有,一定要用NullToZero或者NullToEmpty函数对该字段进行封装。如果不是经过函数封装处理,如果碰到某条记录,它用来拼接的字段是NULL,那么这条记录就会给过滤掉,从而影响了结果。

由于拼接字符串一般都是几个到十几二十个字段,有时候容易令人忽略这个问题,常常发现本来应该可以从TRANSFORM STAGE输出的数据却给REJECT掉,就要注意是否存在可空字段拼接字符串,而且数据当中的确存在一些记录,里面用于拼接的字段是NULL的情况了。

2.10使用TRANSFORM STAGE进行条件判断过滤数据,一般用于判断的字段是Nullable

3实例介绍

最后说一个datastage在unix中应用的实例,以供大家参考:

一个完整的ETL,其步骤是:

1.业务用户接口(java,jsp等友好界面)触发

2.Shell运行

3.启动Controljob运行

4.Controljob启动job

5.监控job状态的Controljob运行(循环运行,直到所有job结束)

6.返回job执行情况到shell

7.Shell返回执行情况到业务接口

8.用户得到结果

可以看出,这里包括了几个主要元素:业务接口,shell,controljob,getstatus controljob,job

其中只给大家列出controljob,getstatus controljob,以及shell中的controljob调度命令,其他的部分就不再详述了

一、普通的control job

1.带斜线、下划线并加粗的部分需要考虑是否是并行的,如果是并行的就不需要这句

2.原始层需要加进蓝色的行

3.红色的表示job的名字,用来替换job的名字

该行对应原始层的job,当需要从文本load数据时,需要在这里调用相应的sh

* Setup DXrtInc, run it, wait for it to finish, and test for success

hJobDXrtInc1 = DSAttachJob("DXrtInc", DSJ.ERRFATAL)

If NOT(hJobDXrtInc1) Then

Call DSLogFatal("Job Attach Failed: DXrtInc", "JobControl")

Abort

End

Call DSExecute("UNIX", "/essbase/script/dwcorp/system/t.sh", Output, SystemReturnCode)

*If FAIL Then RESET

Status = DSGetJobInfo(hJobDXrtInc1, DSJ.JOBSTATUS)

If Status = DSJS.RUNFAILED Then

ErrCode = DSRunJob(hJobDXrtInc1, DS

4.Datastage 技术介绍——技术优势

4.1开发优势

由于Ascential公司雄厚的信息技术实力,DataStage XE系列可为开发者在构建与集成数据环境时提供特别的优势.DataStage XE系列通过集成数据资源、转换数据和调试等手段,设计开发应用软件,并将此作为起点,简化了开发流程、使应用软件的集成和运行更加容易.

1.1)应用程序设计

DataStage Designer是以图形界面起点,开始展开数据集成工作的设计的.这一方式使开发者可宏观地使用图形,清楚地显示数据在整个环境中的流动过程.设计者遵循一种工作流思考方式来选择来源、目标与过程图标,并将之置于一个最初看起来像一个空格一样的"草稿表"模板上.对于每一典型的来源或目标结合体,都存在这些被称作"Stages"的图标.设计者用一种叫做"链接"的箭头来连接这些具代表性的图标,而这些箭头则阐明了运行开始后数据与元数据的流向.在创建DataStage任务时,用户可以在设计草图上添加注释、说明、标签或是其他可以添加给作业的描述性文字.DataStage使用图形方式建立表的查询、连接关系、排序和汇总运算.

以这种方式设计作业可以快速完成整个应用程序,更为简单的采用由其他开发小组制定的逻辑,从而使长期的维护变得更容易实现.开发者只需将代表数据源、数据目标以及中间过程的图标拖放至界面中即可.这些中间过程包括排序、汇总和绘制单独列.Designer同样也支持将目标从Manager面板拖放至Designer面板.而且开发者也可以通过同样的图形化拖放界面,添加诸如表名称和排序关键字这样的细节性项目.DataStage通过连接主关键字和外关键字,用图示的方式阐明了查询关系.DataStage只需单击鼠标右键在弹出菜单中,选择函数名即可实现函数调用.开发者也可从下拉列表中,选择用户自定义函数.也可以引入事先存在的ActiveX例程,或者用其他编辑测试工具开发自己的ActiveX例程.在运行期间,DataStage将完成所有在整个作业中移动行与列所需的操作,将图形图像转换为实体.

同样的图形隐喻也可扩展到单独域级别,单独域级别列对列映射的建立是非常直观的.开发者用横线将每一数据源、行或中间结果集合定义与它们对应的目标连起来.通过使用下拉列表中列出的内建函数扩充列表,开发者可以清楚的阐明Designer中复杂的布尔逻辑运算、字符串操作与数学函数.开发者采用点

击的方式来构建转换表达式.如果开发者需要使用由用户定义的外部例程,也可以从同一菜单中选择.对于支持指向单一或多重目标行分离的过滤器和基于值的约束条件,也是采用这种模型设计解释的.

开发者可以使数据集成应用程序的长期维护工作变得简单.开发组成员可以共享作业逻辑,同时对于那些继承了多步转换作业的开发者,也不会因需要浏览数千行复杂程序逻辑而变得气馁或被耽搁.

1.2)调试

DataStage Debugger完全整合于Designer之中.Debugger是一种测试工具,它允许数据集成人员在程序运行期间,同时浏览转换逻辑从而提高了开发工作效率.在行级处理的基础上,开发者设定断点,并观察数列数据在整个作业中的流程.DataStage可以立刻发现并纠正逻辑错误或意外的遗留数据值错误.这种错误检测提高了开发工作的效率,特别是在进行日期格式转换,或者是在调试诸如隶属于某一具体的成本中心的数据行之类的复杂数据转换时,或者是确定为何星状结构中某些维趋向空或为零时.利用扩充报表输出或日志文件,进行详细分析是不必要的,这是因为DataStage Debugger通过图形化方式识别用户设定的可验证逻辑的断点,这遵循了DataStage Designer的易用图形隐喻.

1.3)处理多来源与多目标

DataStage的出现使比较和集成多重、不同来源的行变为可能---无需编写底层代码.多重来源可以是平面文件,为了分解变化的数据或出于查询目的而添加的异构表,需要对这些文件的值进行比较.由服务器引擎进行底层SQL语句,比较平面文件,处理连接细节.对性能最为关键的是以流方式进行的文件比较,和满足所选的、不断涌入的其余转换过程的联合特性的数据行.

DataStage设计支持多个目标表的写入.在同样的作业中,多重目标表可以同时做到以下几点: 来源多样化(不同的RDBMS类型或文件类型)

具有多个网络目的地(表被发送至远端)

通过支持RDBMS厂商的加载程序、平面文件I/O以及SQL语句插入等多种策略加载数据

经过设计,在开发者最初通过图形化方式表现作业流程时可以进行数据行的分离或复制.DataStage 可以根据多重逻辑路径随意复制行,也可以在横向上根据列值在纵向上根据发往每个目标的不同列转换为多行.而且DataStage可以推动从同一来源开始的分离作业流动.从一个图形图表来年服务器引擎可以分离单一的行,同时记录到多路径中或在完成作业进调用多过程.没有为达到此目的而设立的中间控制区域.最终的好处是减少了数据传递、I/O操作并对真实世界数据流动的需求做出了简单明了的阐释.

1.4)对通用关系数据库系统的本地支持

DataStage可以与使用专门应用程序界面的通用数据库进行交流从而减少网络开销.几乎对每个决策支持应用软件而言,关系数据库都是关键的组成部分.它们常常会被用作存储集成数据的介质.在许多情况下,它们也是商业信息的来源.为实现与这些数据库系统的相互作用,需要使用SQL从数据源结构中检索数据或将结果写入目标.即使拥有数量众多的加载程序可以获得更好的工作性能,但数据集成例行程序仍需要动态SQL执行记录排序、更新或是其他的行处理操作.对于数据集成工具来说,提供与这些数据库以及多样化的厂商配置最为有效交流方式是非常重要的.ODBC是提供此种互动能力最为灵活的方式,但它无法确保总是能够以最少的开销获得最佳的性能.

DataStage支持ODBC方式并为许多通用的RDBMS提供了驱动支持,它同样也致力于提供直接API访问,允许数据集成开发者饶过ODBC以直接调用方式与数据源和目标结构直接进行本地"对话".不论是何地,只要可能DataStage都会采用由厂商API提供的特殊的性能配置,从而缩减了软件额外配置与支持的开销.

1.5)转换的应用

DataStage包含一个执行列操作与转换的函数与例程库.开发者可以直接使用函数执行列映射或者在遵循较为复杂的转换与运算法则前提下执行合并操作.在使用函数和例程执行理想的列映射操作后,开发者单击"编译"图标,首先编译器将对作业进行分析,然后如何最好的对数据流进行管理.接着编译器将为每一个独立的转换映射生成目标代码,并在数据字节发往目的地时采用尽可能高效的方式对数据字节进行操作.

DataStage预制有120多个小例程,可完成从子字符串操作到字符转换和复杂运算的各种操作.转换脚本语言是BASIC语言的扩展,它包含有大量专用的字符串操作与数据类型转换函数,非常适用于数据存储.而且这种语言有一个经过验证的调用库,15年来它一直都支持数据集成应用以及在线交易处理系统.

此外,DataStage还拥有200多种复杂转换,涉及到如数据类型转换、数据操作、字符串函数、公用程

序,行处理以及度量(包括距离、时间和重量)转换等许多方面.

1.6)图形化作业定序器

在DataStage中作业系统被称为"批处理",它可以执行其他作业调用其他批处理.DataStage提供一个直观的图形化界面来构建批处理作业或进行作业排序.在图形化界面当中"进程"和"链接"被用于构建批处理作业或进行作业排序,其中"进程"表示活动(如运行一个作业),"链接"表示活动之间流的控制.

作业顺序的控制是很重要的,因为它支持一个具有内部处理依赖性作业系统的建立.例如在某个特定的数据集成应用程序中,假设"审计收入"是首先要执行的作业,那么直到(或除非)该作业完成并返回一个零代码其他作业方可继续进行.当"审计收入"作业完成后,相应的命令语言将会发出信号通知DataStage,DataStage将同时运行两个不同的维数作业.而第四个"过程事实"作业还在等待这两个维数作业的完成,因为它在自己的转换操作中使用完成的报表.虽然采用线性的方式这些作业照样可以正确的运行,但应用程序整体的运行时间将会大大延长.两个维数作业同时运行但互不干扰.在一台配置完善的服务器上,

鉴于一系列的排序可能会变得非常复杂,两个作业将分别占用各自的处理器运行.

4.2高级维护

一旦集成数据环境建立并开始运作,它将会在维护与更新两方面带来新的挑战.工业专家称涉及到数据集成工程的总费用增加额中70%与维护集成环境有关.Ascential公司的解决方案从一开始就已经考虑到了维护方面所带来的挑战,它提供对象再利用、版本控制以及捕获变化的数据等功能,有助于开发者迅速满足不断出现的用户需求而不会增加信息技术资源方面的负担.

2.1)对象再利用与共享

开发者可以在所有其他DataStage服务器上重新利用同一工程内用DataStage开发的转换.而且他们可以通过各种不同的组件轻易共享转换,如使用DataStage的中央控制工具实现数据容器的导出到集成.使用容器,开发者可以将同一数据集成过程中的几步处理合为一个单独的单元.容器可以只用于某一个作业,也可在多个作业中共享.本地容器对于某一作业而言是私有的,只能建立该存储器的作业内部进行编辑.共享的存储器是独立的DataStage组件,可以在多个作业中使用,但所有作业的数据源需一致.共享的存储器对于重复的如再利用生成的测试数据或一个外部报表结构的详细数据等数据集成任务来说是非常有用的.

2.2)版本控制

此外,DataStage提供版本控制功能,它保存了所有数据集成开发的历史沿革,保留了应用程序组件,如表定义,转换规则和源/目标列映射等.开发者可以查阅过去的规则,并可随意恢复所有可移动至远方区域的版本.DataStage系列产品允许开发者在必要时于本地增加分发的组件.组件要以只读的方式进行移动,以保留其具体特性.公司信息技术人员可以查阅本地变化,并在中心地区记录其版本.版本控制可以为开发者跟踪源代码和如外部SQL脚本、命令行和模型等文本文件.版本控制也可保护转换规则的本地只读版本,使其免受不安全网络或机器故障的影响,这样某一节点发生故障就不会使全世界范围内全部决策支持基础设施瘫痪.

2.3)捕捉更改数据

处理更改数据的也是数据集成应用程序性能的一项重要指标.决策支持系统需要定时进行更新,更新所需的装载时间是由以下这些变量决定的:

更新频率

目标的可获得性

访问数据源的能力

更改数据的预计量

OLTP数据库的技术结构

网络超载和过长的装载时间都是量密集型的环境所不能接受的.对更改数据捕捉的支持可以使刷新目标环境所需的装载时间达到最小化.

更改数据捕捉描述了支持最近输入或更新的记录的获取、修改和移植的方法和工具.Ascential软件公司意识到了捕捉更改数据所固有的复杂性和缺陷,所以创建了一套多层战略来帮助开发人员构建基于日志、触发器和本地复制的最有效的解决方案.在处理更改数据时,有两个最大的问题需要解决: 在操作系统中识别更改记录

将更改恰当地应用到数据集成基础设施中

为了在更改数据捕捉方面为开发人员提供帮助,Ascential软件公司提供了可以从主机的日志和交易系统以及非常普及的相关数据库如DB2,IMS和Oracle中获取新数据行的工具.事实上,每个版本的更改数据捕捉都是一个独一无二的产品,它反映了对在特定的数据库技术结构中捕捉更改的优化方法.更改数据捕捉进程特别提供了时间标记检查的属性和表示交易类型如插入、更改、删除的代码的分解的属性.同时,寻求能够调整数据库架构本地服务、遵守数据库厂商的文件格式和API函数以及最小化对OLTP系统的冲突影响的方法也是它的设计目标.

2.4)本地语言支持

在全球化高度发展的今天,跨国公司和网络公司的存在使得企业对各种国际化软件解决方案的需求变得十分旺盛.在公司的IT阵列中,即使有一段程序不支持国际标准或字符集,也会造成很大的困难.

Ascential公司为国际化的应用设计了DataStage产品家族.Ascential公司所采用的方法是统一的、符合工业标准的方法,实施这种方法的基本要素如下:

Windows客户机程序标准-在支持本地版本的Windows NT和Windows2000的问题上,所有的DataStage客户界面都全面支持32位的Windows代码页标准.例如,在丹麦的哥本哈根、俄罗斯的莫斯科以色列的特拉维夫的开发人员都可以使用DataStage Designer对他们的丹麦语、俄语和以色列语的Windows版本进行操作.

DataStage服务器-DataStage服务器在国际化支持方面并不依赖底层的操作系统.每个服务器都能够使用统一的和单一的内部字符集(Unicode)来进行相关的字符绘制、执行Sort的基于POSIX的国内标准、Up-casing、Down casing、货币、时间(日期)、校对和数字表示.

本地化-所有的DataStage组件都拥有必要的客户基础设施来将GUI界面完全本地化至当地语言,包括帮助信息、文档、菜单、安装程序以及Transformer进程等部件.DataStage已经拥有了完全本地化的日文版本.

4.3加速数据转移

在集成环境中跨越整个企业网移动数据会对系统的性能和应用程序的效率造成很大的影响.Ascential公司考虑到了这种挑战,并在自己的产品中预制了专为数据转移而设计的进程来解决这些问题.

3.1)命名管道进程

命名管道能力使开发人员能够轻而易举地实现在两个或多个作业之间,或者在一个作业和一个外部程序之间的数据转移.命名管道是许多操作系统都有的一项功能,通过它可以在内存和数据集成程序的关键进程之间实现数据的透明移动.命名管道的功能非常强大,但是有时难以操作.使用DataStage,开发人员只需选中命名管道选项,所有的底层操作系统细节都由DataStage来完成.另外,通过命名管道对其他工具如专用大型装载程序等的支持,DataStage能够实现数据的无缝共享.大型的作业可以分割成若干个更容易管理的作业,也可以由若干个开发人员共同来完成.在执行时,个体作业是并行运行的,但是集成处理过程却是逐个发生的.使用命名管道,可以优化机器资源,缩短设计和开发时间.

3.2)FTP进程

在为将数据装载到目标环境做准备工作的时候,可能会涉及到使用文件传输协议来在企业网内的机器之间移动平面文件.程序和用户编写的脚本一般都支持这一进程,但是它要求目标机器上必须有足够的磁盘空间来保留文件的副本.这一进程工作的时候并没有有效地利用可用的存储空间.DataStage为使用文件传输协议的进程提供了FTP支持,但是跳过了执行独立的命令程序所需的费时的I/O步骤.当数据块在网络上传送的时候,服务器引擎筛选出经过事先绘制的数据行,并将其直接移动到转换进程中去.另

外,FTP还可以用于对平面文件的远程写入.因为在作业执行的前后都不进行额外的磁盘I/O,所以FTP进程可以帮助开发人员节省大量的时间.

4.4使用外部进程

因为每一个数据集成环境都是不同的,所以Ascential公司的解决方案具备灵活性和扩展性,这样开发人员就可以满足特殊的代码要求.DataStage产品家族允许开发人员对现存的集成代码加以利用以此来缩短开发周期.同时它还使开发人员拥有了为特殊数据处理构建自定义插件进程的能力.

4.1)插件API

DataStage XE中的每个Stage图标都包括一个对话框,这个对话框是为这个Stage所标明的技术专门设计的.例如,当设计人员点击排序进程的时候,软件将为开发人员打开一个属性列表来定义排序键、顺序和性能特性等.这些属性的出现是DataStage调用了一个使用插件API编写底层程序的结果.如果能得到好的编制和支持,API可以让课题和技术问题专家很便捷地对产品进行扩展.插件使集成商、零售商和MIS 商店可以为保护他们自己的专利和投资,对DataStage进行扩展.因为插件Stages对DataStage引擎没有依赖型,所以开发人员可以从网上下载并分别安装.Ascential软件公司经常开发出新Stages并以这种方式向客户发放.

4.2)调用专用工具

在作业过程中,DataStage开发人员可能会定义一些特定的出口点.这些出口点是用来向操作系统发出呼叫,或者调用现有的代码和程序的.开发人员通过拖放,将包含这些出口点的定义的Stage图标移动到Designer工作区中.DataStage提供了无限的灵活性,用户在作业中可以定义的出口点的数目是没有限制的.调用外部程序使开发人员可以在应用程序内部执行清理操作、发布电子邮件信息或者发送基于某一事件的页.

4.5性能和可伸缩性

为了能够在每个进程中实现每秒钟移动最多的数据行,DataStage服务器引擎的每个部分都进行了优化.按照缺省设置,作业将从一个或多个数据源中一次性提取数据,根据需要进行操作后再将其一次性写入到指定目标中.因此DataStage应用程序,不需要中间文件或者二级存储单元来进行聚合或者中间排序.取消这些步骤可以避免过多的输入输出操作,而输入输出正是最普遍的性能瓶颈之一.数据不必再载回到相关系统中,进行SQL的再处理.因此,DataStage作业可以在更短的时间内完成.

如果多个目标都很重要,DataStage将会在水平和垂直两个方向上分解数据,然后再通过独立的逻辑路径(每个逻辑路径都不要求临时移动区)来传送数据.DataStage使这个过程尽可能在内存中完成,使用尽可能少的传递次数来完成复杂的转换工作.这种方法的好处也是减少输入输出操作的次数.在作业中对磁盘的操作越少,进程完成的速度就越快.目标系统可以保持在线,用户可以在非常短的时间内完成对它的存取访问.下面的章节介绍了支持这种方法的DataStage的一些核心概念.

5.1)采用多CPU架构

借技术高速发展的东风,DataStage充分利用了操作系统和硬件的进步,数据集成引擎采用了多CPU环境,可以在多个进程之间,自动分发独立的作业流.这个功能可以保证对现有资源的充分利用,以及缩短应用程序的总体处理时间.作业一开始执行,服务器就会通过突出显示非独立操作和分别标志独立数据流,对作业进行分析.对于一项给定的作业,DataStage引擎在运行时间内将生成多个并行的进程.这些进程是同时运行的,在采用了多CPU的机器上,运算任务将由多个处理器分担.对于那些需要集成大量数据的企业,还可以使用一种名为Multiple Job Instances的新功能,来有效地利用多处理器机器.使用Multiple Job Instances,多个处理器可以同时运行一项DataStage作业.同样的功能也能在一个或所有的数据流上运行.采用了多CPU的DataStage可以为那些对时间很敏感的企业提供巅峰性能表现.

5.2)排序与合计

DataStage内建有排序与合计能力,这有效的提升了其性能并减少了I/O操作.当行经由引擎处理时,排序与合计进程可直接对行进行操作,而其他同类工具则要依靠SQL和中间表完成上述重要的集合型转换.DataStage允许Designer在作业流中有需要的地方根据相应功能设置排序.排序的设置在运算之前或是之后进行都可以,而且如果需要还可以与将独立逻辑路径写入多重目标的操作一同进行.例如,应用程序可以在新关键字或分组值生成之后或者是在它们插入RDBMS之前立刻进行合计.如果数据已经按一定顺序排列好.那么合计进程将在每个合计分组完成后将行发送给目标.只要有足够的内存资源,排序与合计进程就会在内存中完成其工作.这种工作方式再一次减少了I/O物理操作并且有助于确保DataStage作业在最短的时间范围内得到执行.

4.6对复杂数据类型的支持

一些数据环境有很多结构复杂的数据源,为了使这些数据适于商务智能工具的分析需要作大量的整理工作.如果不经过这样的处理,将会给数据用户带来很多不便.Ascential公司就诸如XML、网络数据和MQ Series等具体而复杂的数据要求给出了解答.MQ Series进程允许用户将面向消息几乎实时的交易中间件作为源和目标.这扩展了DataStage XE的功能性,而又不会增加开发或分析环境的复杂性.

6.1)XML封装

XML封装为使用XML语言的商业数据交换提供了支持了.有了XML封装,用户就可以读取XML格式的文本,写出XML格式的数据,进行商业对商业和应用对应用数据和元数据的交换.

特别是封装的XML读写器可以使公司保留其在交换因特网信息基础设施方面的投资而不必编写专门的点对点内部交换程序和接口.通过XML记录器,DataStage就可以读取取自过去遗留的应用软件、ERP系统或操作型数据库的数据,转换这些数据或将它们与其他数据源集成在一起,然后将它们写成XML文档.通过XML阅读器可以将XML文档读入或导入DataStage.而且DataStage可以将XML文档中的数据与其他数据源集成在一起,对它们进行转换,然后写成XML文档或任何其他支持的数据目标.

用户可以将XML用作数据的封装格式,也可以用作描述元数据的标准方式.通过为抽取元数据而设立的XML封装文档类型定义方式,DataStage可以支持导出和导入数据集成过程中涉及到的所有元数据.在将元数据导出到XML文档中时,DataStage提供了文档类型定义从而使其他工具软件也可以理解导出文档的结构与内容.此外XML封装还允许用户将XML元数据从任何一种报表中导出并写成XML文档,此类报表包括目录、术语表和衍生报表.之后用户就只需使用支持XML的浏览器或将文档导入任何其他支持XML的应用程序中就可以阅读这些导出的文档了.

trim会drop掉记录

当一条记录过来,某个字段为空,而在transformer中又对该字段trim了,由于该字段为空,不能trim,所以DataStage会认为这是个错误,从而把这个记录drop了,这与实际业务不符合,非主键字段为空并不能就把这条记录drop了。

我们可以通过写一个判断来解决该问题:

if LK_1.EMAIL <> '' then trim(LK_1.EMAIL) else LK_1.EMAIL

DataStage中可以执行routine,命令行以控制的地方

1 before/after job和before/after stage,可以执行shell,命令行以及一些DataStage API,如DSJobReport

2 job sequence中有个stage,可以在里面写控制job调度的地方

3 每个job的properties中有个job control tab

4 命令行可以执行、导入job等,它通过dsjob实现,在DS Manager的文档中还讲了有专门的命令行来导入job

5 可以编写shell来控制job,对dsjob命令做封装,可以传入参数等。

对于上面这些概念还是很模糊,先记录在此。

trim全为null的某个字段之后,输出为0

今天又碰到新问题,在transformer中,进去是有很多record,出来之后为0条record,用peek,看了一下,进去的数据的某个字段数据全为null,而在transformer中对此字段trim了,改为不trim就可以了。

job一直运行,数据不能插入数据库

今天遇到一个问题,job不停的在那里运行,然后link上的数据显示各个环节都是正确的,包括最后插入数据库的link上也显示了数据,但是最后数据库里并没有数据。在Director的log中,日志在从两个源文件把所有数据load出来完之后,日志就死在那里了。

以前这个job是正确的,昨天由于重新load其中一个源文件的元数据,所以出现了上述问题。所以先前以为是由于load的新的源数据有问题,就从此处来找问题的原因,并且认为可能是改了元数据,在其他地方映射的时候有位置不对的地方,所以整了很久。因为以前是好好的,然后又以为是服务器的问题。

这都是定势思维的错误,然后又一急,所以浪费了很多时间,其实很多时候都是这样,出了问题我们不能理性的好好思考。

其实问题很简单:

如果我们按照正常逻辑来分析的话,既然不能读入数据库,肯定是数据不符合数据库对数据的约束,包括主键啊,非空啊,本问题就是由于在stage的不断流转中产生了很多空格,使得最后待插入的数据长度远远大于数据库中定义的字段长度。由于在那里不断reject,所以影响了速度,job一直在那里运行。最后用APT_STRING_PADDER,将其设为0x0(用null代替空格)搞定。

ps:在插入数据库时使用一个reject文件对查错有好处,这样能看到reject是些什么数据,然后就能知道为什么被reject了。

同时我们可以得出如果最后插入数据库时很多数据被reject,但是你并没有用一个reject文件来接收这些reject掉的数据,将使得job基本处于停滞状态。

ETL时先disable外键约束再load数据

Kimball在他的ETL Toolkit一书中,一直强调:对于有外键约束的表,为了提高load的速度,可以先将外键约束disable,加载完成后再enable(当然另外一个原因是进入数据仓库的数据都是规范的,甚至可以考虑不使用外键约束,即违反约束的数据在Transformation部分就应该解决掉,当然这是设计问题了)。ps:另外两个提高load速度的方法分别为使用sql loader和insert、update分离。当时还不是明白这个过程怎么具体实现,今天看《oracle concept》看到下面话终于明白了一些:

Flexibility for Data Loads and Identification of Integrity Violations

You can disable integrity constraints temporarily so that large amounts of data can be loaded without the overhead of constraint checking. When the data load is complete,you can easily enable the integrity constraints, and you can automatically report any new rows that violate integrity constraints to a separate exceptions table.

看来oracle这点上做的比较完善,还可以将违反完整性约束的数据自动记录到一个exception表中。

在load的时候去掉sequential file的header和footer

今天在论坛看到的方法,先记录下来:

方法一:

在sequential file stage中有个属性可以ignore第一行。对于footer,如果footer使用了与正文不

同的格式,可以用使用transformer stage和 @INROWNUM stage来将footer去掉。

方法二:

在sequential file的filter option中使用sed -e '$d' -e '1d'来讲header和footer去掉。

方法三:

写个before job subroutine,可以先对这个文件做各种处理,不过我想也是subroutine中调用DSExecute sed -e '$d' -e '1d'。当然Basic中也有专门对sequential file处理的函数。

datastage中Orchadmin命令的使用(转)

Orchadmin is a command line utility provided by datastage to research on data sets.

The general callable format is : $orchadmin [options] [descriptor file]

1. Before using orchadmin, you should make sure that either the working directory or the $APT_ORCHHOME/etc contains the file “config.apt” OR

The environment variable $APT_CONFIG_FILE should be defined for your session.

Orchadmin commands

The various commands available with orchadmin are

1. CHECK: $orchadmin check

Validates the configuration file contents like , accesibility of all nodes defined in the configuration file, scratch disk definitions and accesibility of all the nodes etc. Throws an error when config file is not found or not defined properly

2. COPY : $orchadmin copy

Makes a complete copy of the datasets of source with new destination descriptor file name. Please not that

a. You cannot use UNIX cp command as it justs copies the config file to a new name. The data is not copied.

b. The new datasets will be arranged in the form of the config file that is in use but not according to the old confing file that was in use with the source.

3. DELETE : $orchadmin <> [-f -x] descriptorfiles….

The unix rm utility cannot be used to delete the datasets. The orchadmin delete or rm command should be used to delete one or more persistent data sets.

-f options makes a force delete. If some nodes are not accesible then -f forces to delete the dataset partitions from accessible nodes and leave the other partitions in inaccesible nodes as orphans.

-x forces to use the current config file to be used while deleting than the one stored in data set.

4. DESCRIBE: $orchadmin describe [options] descriptorfile.ds

This is the single most important command.

1. Without any option lists the no.of.partitions, no.of.segments, valid segments, and preserve partitioning flag details of the persistent dataset.

-c : Print the configuration file that is written in the dataset if any

-p: Lists down the partition level information.

-f: Lists down the file level information in each partition

-e: List down the segment level information .

-s: List down the meta-data schema of the information.

-v: Lists all segemnts , valid or otherwise

-l : Long listing. Equivalent to -f -p -s -v -e

5. DUMP: $orchadmin dump [options] descriptorfile.ds

The dump command is used to dump(extract) the records from the dataset.

Without any options the dump command lists down all the records starting from first record from first partition till last record in last partition.

-delim ‘’ : Uses the given string as delimtor for fields instead of space.

-field : Lists only the given field instead of all fields.

-name : List all the values preceded by field name and a colon

-n numrecs : List only the given number of records per partition.

-p period(N) : Lists every Nth record from each partition starting from first record.

-skip N: Skip the first N records from each partition.

-x : Use the current system configuration file rather than the one stored in dataset.

6. TRUNCATE: $orchadmin truncate [options] descriptorfile.ds

Without options deletes all the data(ie Segments) from the dataset.

-f: Uses force truncate. Truncate accessible segments and leave the inaccesible ones.

-x: Uses current system config file rather than the default one stored in the dataset.

-n N: Leaves the first N segments in each partition and truncates the remaining.

7. HELP: $orchadmin -help OR $orchadmin -help

Help manual about the usage of orchadmin or orchadmin commands

https://www.doczj.com/doc/f716735305.html,/p-648599459453.html

5.数据库快速装载方式

Sybase: bcp

Oracle: sql loader

Mssql: import工具

基于文本的csv格式

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.doczj.com/doc/f716735305.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.doczj.com/doc/f716735305.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.doczj.com/doc/f716735305.html,ng.reflect.Method.invoke(Method.java:611) 6. at https://www.doczj.com/doc/f716735305.html,uncher.Main.invokeFramework(Main.java:340) 7. at https://www.doczj.com/doc/f716735305.html,uncher.Main.basicRun(Main.java:282) 8. at https://www.doczj.com/doc/f716735305.html,uncher.Main.run(Main.java:981) 9. at https://www.doczj.com/doc/f716735305.html,unchEclipse(WSPreLauncher .java:340) 10. at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:110 ) 11.Caused by: https://www.doczj.com/doc/f716735305.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.doczj.com/doc/f716735305.html,ng.J9VMInternals.newInstanceImpl(Native Method)

DataStageV8.5配置连接oracle操作手册

DataStageV8.5配置连接oracle 操作手册 编制:长安铃木信息系统课 王川 2012-5-7

目录 1概述 (4) 1.1编写目的 (4) 1.2系统配置 (4) 1.3事前准备 (4) 2开始安装客户端 (4) 3配置DATASTAGE 环境 (6) 4配置测试 (7)

文档版本记录 版本编号变更内容变更人日期

DataStageV8.5配置连接oracle 操作手册 1概述 1.1 编写目的 DataStage V8.5 在安装后默认支持DB2 数据库,为了实现抽取ORACLE 数据库,需要配置服务器端。 1.2 系统配置 DataStage V8.5 Suse linux server sp1 1.3 事前准备 1、安装XFTP:传递文件。 2、开启SSH服务:终端控制。 3、Oracle官网下载11g client。 https://www.doczj.com/doc/f716735305.html,/technetwork/database/enterprise-edition/downloads/112010-linuxsoft- 085393.html 2开始安装客户端 1、FTP上传linux_11gR2_client.zip ,并解压至TMP目录。 2、创建组和权限。 groupadd oinstall groupadd dba useradd –g oinstall –G dba –m oracle passwd oracle mkdir –p /home/oracle/ chown -R oracle:oinstall /home/oracle/ 3、修改环境配置文件。 /etc/sysctl.conf 加上如下内容 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 net.ipv4.tcp_wmem = 262144 262144 262144 net.ipv4.tcp_rmem = 4194304 4194304 4194304

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.doczj.com/doc/f716735305.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.doczj.com/doc/f716735305.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

DataStage-V11.3部署手册

DataStageV11.3 安装手册 修订记录

一、基础安装环境检查 1.操作系统Redhat Linux6需要的安装补丁包 glibc-2.12-1.107.el6.x86_64 libXp-1.0.0-15.1.el6.x86_64 libXau-1.0.5-1.el6.x86_64 libXext-1.1-3.el6.x86_64 libX11-1.3-2.el6.x86_64 libxcb-1.5-1.el6.x86_64 libXmu-1.0.5-1.el6.x86_64 nss-softokn-freebl-3.14.3-9.el6.x86_64 pam-1.1.1-4.el6_0.1.x86_64 libaio-0.3.107-10.el6.x86_64 libstdc++-4.4.7-3.el6.x86_64 compat-libstdc++-33-3.2.3-69.el6.x86_64 libgcc-4.4.7-3.el6.x86_64 2.检查操作方法 rpm –qa | grep glibc 3.授权文件配置 将授权文件解压至安装文件is-suite文件夹下

二、创建oracle数据库 1.将DataStage初始化Oracle数据库脚本上传至数据库 服务器 2.依次执行数据库初始化脚本 ./create_xmeta_db.sh sys Oracle123 orcldb dsadmin dsadmin'!'123 DATASTAGE /oracle/app/oracle/oradata/orcldb ./create_xmeta_db.sh sys Oracle123 orcldb wsadmin wsadmin'!'123 DATASTAGE1 /oracle/app/oracle/oradata/orcldb

数据处理师岗位职责范本

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

编号: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单元定义的参数,相对还有实参,它是运行时指定的参数,实参不在元数据管理范围之内。

【BI安装】Datastage_V8.1.0_for_Rhel5.4_64bit安装文档

Information Server8.1.0安装文档 目录 Information Server8.1.0安装文档 (1) 备注说明: (1) 安装前系统要求: (2) 1)WAS安装包需求: (2) 2)Infomation Server安装包需求: (3) 3)Linux内核参数最低需求 (3) 4)HP-UX内核参数最底要求 (4) 5)产品和必须安装这些产品的层。 (4) 安装步骤: (5) 一、系统环境: (5) 二、修改内核参数,安装必要必定包: (6) 三、安装WAS和两个升级补丁包 (6) 1)安装WAS (6) 2)将WAS升级到6.0.2.0版本 (10) 3)将WAS升级到6.0.2.7版本 (12) 四、安装Information Server (18) 参数配置: (29) 1.配置dsenv文件 (29) 2.配置ODBC参数 (30) 3.配置DS编译器变量 (32) 4.配置dsadm用户的.bash_profile文件 (32) IIS服务启动和停止: (32) 1.服务停止 (32) 3.服务启动 (33) 备注说明: 1.要在Linux?和UNIX?上复用现有的DB2安装,必须使用DB2故障监视组件(需要 在/etc/inittab文件中输入故障监视器(db2fmcd)的路径)。 db2fmcd命令必须指向实际的可执行文件位置,例如: fmc:234:respawn:/u1/IBM/db2/V9/bin/db2fmcd#DB2Fault Monitor Coordinator 2.需要的C++编译器和运行时库:

对于64位HP-UX11i v2on Intel Itaium 6.16acc:HP C/aC++B3910B A.06.14 32位和64位Red Hat Enterprise Linux5Advanced Platform GCC 4.1.2 对于HP-UX11.x和10.x,用下面的命令确定版本: what/opt/CC/bin/CC 3.WAS官网安装文档: https://www.doczj.com/doc/f716735305.html,/infocenter/wasinfo/v6r0/index.jsp InfoServ文档: https://www.doczj.com/doc/f716735305.html,/infocenter/iisinfsv/v8r1/index.jsp?topic=/com.ibm.swg.im.iis. productization.iisinfsv.relinfo.doc/topics/iisihrinfo_infsv_rnote_v81ga.html 各种指南:https://www.doczj.com/doc/f716735305.html,/support/docview.wss?rs=14&uid=swg27013660 DB2官方文档: https://www.doczj.com/doc/f716735305.html,/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.qb.se rver.doc/doc/t0006477.html 结构拓扑图: 安装前系统要求: 1)WAS安装包需求: compat-libstdc++-33-3.2.3-61

主流BI产品对比

国际主流BI产品对比

厂商产品及简介 国际厂商(主要) MicroStrategy MSTR ,国际专业BI 产品,覆盖BI 全部领域 IBM DB2以及Cognos 、SPSS 、DataStage ,覆盖BI 全部领域Oracle BIEE 、Hyperion ,覆盖BI 全部领域,数据挖掘领域有待加强 Microsoft SQLServer ,覆盖BI 全部领域,适合中小型企业,性价比高 SAP BusinessObjects 、CrystalReports 主要是报表领域和数据集成领域 国际BI 市场主要厂商

BI 产品纷纷嫁入豪门: 2007年11月,IBM收购Cognos 2008年4月,Oracle收购Hyperion 2010年10月,SAP收购Business Objects BI 产品国际阵营谁是幸存者: 目前BI产品第一阵营的唯一幸存者只有MicroStrategy,超过20年的专业技术和市场积累,让这个在巨头环伺下的BI行业领军产品一直保持着一枝独秀的良好态势。

厂商名称目标客户群 MicroStrategy金融、电信、政府、石油、电力等高端行业的高端应用,尤 其适合于数据量大,用户分布广泛的行业应用特点 SAP/BO BO定位于SAP ERP的已有用户优先实施,其它则通过OEM或 各种集成商,价格较高,不适用于中小企业 IBM/Cognos通过OEM和集成商进军企业客户,公司本身则注重已有的金 融、电信、政务领域客户 Microsoft适用于中小企业,依靠合作伙伴 Oracle基于Oracle数据库庞大的客户群,注重大型用户,但内部产 品有竞争关系 国际主流BI产品基本都已被IT业界巨头并购,技术路线及商务策略缺乏独立性,除MicroStrategy之外都缺乏BI产品技术发展方向的独立规划。

datastage常用组件使用方法:

常用组件使用方法: 1. Sequential file 功能特点:适用于一般顺序文件(定长或不定长),可识别文本文件或IBM大机ebcdic文件。 使用要点: 按照命名规范命名 点住文件,双击鼠标,在general说明此文件内容,格式,存储目录等。 2. Annotation 功能特点: 一般用于注释,可利用其背景颜色在job中分颜色区别不同功能块 3. Change Capture Stage 功能特点: Change Capture Stage有两个输入,分别标记为before link 及after link。输出的数据表示before link 和after link的区别,我们称作change set。Change Capture Stage可以和Change Apply Stage配合使用来计算after set。 使用要点: key及value的说明:key值是比较的关键值,value是当key值相同是作进一步比较用的。 change mode选项说明: All keys,Explicit Values 需要指定value,其余字段为key Explicit Keys&Values key及value都需要指定

Explicit Keys,All Values 需要指定key,其余的字段为value 输出策略说明: Drop Output For Copy False:保留before及afte link中key值相同的行 True:删除before及afte link中key值相同的行 Drop Output For Delete False:保留before link中有但是after link中没有的key值所在的行 True:删除before link中有但是afte link中没有的key值所在的行 Drop Output For Edit False:保留key值相同,value不同的行 True:删除key值相同,value不同的行 Drop Output For Insert False:保留before link中没有但afte link中有的key值所在的行 True:删除before link中没有但afte link中有的key值所在的行 4. Copy Stage 功能说明: Copy Stage可以有一个输入,多个输出。他可以在输出时改变字段的顺序,但是不能改变字段类型。 注意: 当只有一个输入及一个输出时最好将Force设置为True,这样可以在Designer里看到运行结束,否

主流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:这个控件实际上是指代主机上面的一个文件,在它的属性中可以选定文件的路径,目录。一般这些文件都是以类似数据库表的格式存在的。使用这个控

相关主题
文本预览
相关文档 最新文档