1. 出色的据源连接能力
2. 完备的开发环境
3. ETL Job 的并行执行能力
4. 开发一个简单的 ETL Job
![]() ![]() |
![]() |
1、 文本文件
2、 XML 文件
3、 企业应用程序,比如 SAP、Siebel、Oracle 以及PeopleSoft
4、 几乎所有的数据库系统,比如 DB2、Oracle、SQL Server、Informix等
5、 Web services
6、 WebSphere MQ
正是因为这么好的连接能力,IBM WebSphere DataStage 使用户能够专注于数据转换的逻辑而不用太担心数据的抽取和加载。
![]() ![]() |
![]() |
1. 用 DataStage Administrator 新建一个项目;
2. 用 DataStage Designer 连接到这个新建的项目上进行ETL Job的设计;
3. 用 DataStage Director 对设计好的ETL Job设置运行的模式,比如多长时间运行一次ETL Job;
4.用 DataStage Manager 进行ETL Job的备份等。
图
1:IBM WebSphere DataStage 架构图
DataStage Administrator 的主要功能有以下几个:
1. 设置客户端和服务器连接的最大时间。
2. 添加和删除项目
3. License的管理
可以在Licensing标签中更新License。
1. ETL Job的开发
2. ETL Job的编译
3. ETL Job的执行
DataStage Director 主要有以下两个功能:
1. 监测ETL Job的运行状态
2. 设置何时运行ETL Job
![]() ![]() |
![]() |
。
![]() ![]() |
![]() |
打开dsenv文件,在文件的最后加上如下内容:
DB2DIR=/opt/IBM/DB2/V8.1;export DB2DIR
DB2INSTANCE=db2inst1; export DB2INSTANCE
INSTHOME=/home/db2inst1;export INSTHOME
PATH=$PATH:$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/misc
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INSTHOME/sqllib/lib;export
LD_LIBRARY_PATH
THREADS_FLAG=native;export THREADS_FLAG
(1)用DataStage Administrator登录到DataStage Server。Host system是安装DataStage Server的主机,输入它的IP地址或者主机名。另外再输入用户名和密码后,单击按钮"OK";
(2)登录后,在标签Projects中可以看到目前这个DataStage Server上面所有的项目。单击按钮"Add"新建一个项目;
(3)在弹出的对话框中输入项目名SampleProject,项目存储的默认路径是DataStage安装路径的Projects目录下面,你可以通过单击按钮"Browse"来改变默认路径。注意不要钩上选择框"Create protected project",因为如果钩上的话你所创建的工程将没办法被改变。单击按钮"OK";
(4)你会看到在项目列表里面已经有了我们刚创建好的项目SampleProject,单击按钮"Close"关闭DataStage Administrator;
(5)用DataStage Designer登陆到DataSatge Server,输入DataStage Server的IP或主机名以及用户名和密码,并指定Project为我们刚才创建的项目SampleProject。单击按钮"OK";
(6)在DataStage Designer当中单击File'New去创建一个新的ETL Job;
(7)选择"Parallel Job",单击按钮"OK";
(8) 一个新的ETL Job已经创建了,单击工具栏上的图标"保存",或者用快捷键"Ctrl+S"来保存,这时候一个保存ETL Job的对话框会弹出来;
(9)在弹出的对话框中。在Job name一栏输入"SampleJob",在Category中输入"Sample"。单击按钮"OK";
(10) 保存好刚创建的ETL Job后,我们用DataStage Designer来导入数据库的表结构。在DataStage Designer的左下方的Repository中右键单击"Table Definition"。然后选择 Import'Pug-in Meta Data Definitions…;
(11)在弹出的对话框中选择DSDB2,单击按钮OK;
(12) 在弹出的对话框中,Server Name选择Source。输入用户名和密码,再钩上Tables选择框之后单击按钮Next;
(13)选择表employee,把要保存到的目录改成PlugIn/Source。然后单击按钮 Import.;
(14)重复步骤 10-13把存储在Target数据库中的表employee的表结构导入进来,这次存放的路径改成PlugIn/Target。完成后,你会在Repository中看到你导入的表结构;
(15)从左边的palette中拖入两个DB2/UDB API Stage到右边的面板上。DB2/UDB2 API Stage是用来连接DB2数据库的,我们这两个DB2/UDB API Stage一个用来连接数据库source,另一个用来连接数据库Target;
(16)右键单击左边的DB2/UDB API Stage不要放开,一直拖拽鼠标到右边的DB2/UDB2 API Stage上面。这时候在这两个Stage之间会出现一条连线,代表了数据的流向。下面我们将配置这两个Stage的属性;
(17)左键双击左边的DB2/UDB API Stage,会弹出如下图所示的属性框。在标签Stage的子标签General中,设置Stage name为Source,Server name为Source,User ID和 Password设置为右权限访问这个数据库的用户名和密码。Transaction Isolation的默认的选项是Cursor Stability,保持默认选项然后单击标签Output;
(18)在标签Output的子标签General中,输入Table names为employee,并在Query type下拉框中选择Generated SQL Query。这样DataStage会自动帮你生成大部分的SQL代码。然后单击子标签Columns;
(19)在Columns子标签中单击按钮Load去导入刚才从数据库中导进来的表结构;
(20)在弹出的对话框中选择目录PlugIn/Source中的表结构employee,然后单击按钮OK;
(21) 在弹出的对话框中选择要导入的表的列,默认是全选,保持默认并单击按钮OK;
(22) 这时候你会看到表的字段已经被导入进来。单击子标签SQL;
(23) 在子标签SQL中,你会看到系统自动生成的SQL语句。单击按钮 View Data查看表employee中的数据;
(24)当前employee表中有两条数据。单击按钮Close关掉数据查看窗口;
(25)现在我们开始编辑用来连接目标数据库的DB2/UDB API Stage的属性。双击这个Stage,弹出的属性设置窗口如下图所示。在标签Stage的子标签General中,Stage name设置为Target,Server name设置为Target,User ID和Password分别设置为有权限对Target数据库进行操作的用户名和密码。其他属性保持默认值,然后单击标签Input;
(26)在标签Input的子标签General中,设置Table name为employee,Update action选择 Insert rows without cleaning。Create table action选择Do not create target table。然后单击子标签Columns;
(27)在子标签Columns中,你会发现已经有表结构load进来了,这个表结构是和source数据库中的employee表的结构一致的。单击按钮OK并保存ETL Job;
(28)在工具栏中单击图标"编译"对刚开发完的ETL Job进行编译;
(29)编译过程中会弹出一个对话框显示编译的进行情况。最终ETL Job编译成功后对话框中会显示如下图中所示的消息:"Job successfully compiled with no errors";
(30)编译成功后,我们打开DataStage Director来运行我们开发的ETL Job。从DataStage Designer中打开DataStage Director的方法为:从菜单栏中选择Tools'Run Director;
(31)打开DataStage Director后你会在Sample目录下面发现我们开发好的ETL Job SampleJob,状态为Compiled。选择SampleJob,然后单击工具栏中的"运行"按钮;
(32)在弹出的对话框中可以设置运行的参数,比如出现多少个warning后ETL Job会自动中止掉。我们保持这个对话框中的默认设置,单击按钮Run;
(33) 这时候你会注意到SampleJob的状态从Compiled变成了Running,等到SampleJob的状态变成Finished后,该ETL Job的运行就结束了;
(34)如下图所示,SampleJob的状态变成了Finished。SampleJob成功结束运行;
(35)到DataStage Designer中,用View Data功能查看目标数据库Target中employee表中的数据。你会发现和源数据库source中的employee表中的数据是一样的。也说明我们开发的ETL Job成功的完成了我们想要它完成的任务。
![]() ![]() |
![]() |