InfoSphere DataStage 是 IBM 统一数据集成平台InfoSphere Information Server的重要组件,是业界主流的ETL(Extract, Transform, Load)软件。
在之前的文章中,小编曾经介绍过DataStage不仅支持各种异构平台的数据库,提供多种功能强大的数据库连接器;而且也支持对非结构化数据的访问,例如TXT、CSV、XML、COBOL和Excel文件等。
而对于常见的数据库存储过程,DataStage同样也提供强大的支持,接下来将以Oralce的存储过程为例演示在DataStage如何进行调用。
前期准备工作
1. 创建存储过程p2,p2定义了一个游标查询表A的数据,然后将数据返回给输出参数。

2. 表A的结构如下所示

3. 表A的数据如下所示

4. 在DataStage中导入存储过程P2的定义

5. 使用设置好的Oracle数据源(ODBC DSN): oraodbc

6. 选择存储过程P2,开始导入

将存储过程作为数据源生成数据
1. 创建DataStage作业,使用Stored Procedure Stage作为数据源,将结果输出 到Peek组件(Peek组件一般用于开发调试,可将运行结果直接打印到屏幕中)。

2. 设置存储过程的连接信息

3. 设置存储过程属性,选择存储过程类型为Source(表示作为源),在Syntax属性栏手工设置输入参数pa的值为1,输出参数pb用:1作为占位符,表示将存储过程的结果输出到后续的DataStage组件(Peek)。

4. 在Output属性栏中设置要输出的列定义,aname是自己设置的,ProCode和ProMess列由系统自动生成。

5. 运行作业,日志显示存储过程P2被DataStage调用,并输出正确结果。

存储过程作为中间过程处理数据
1. 创建DataStage作业,使用Stored Procedure Stage作为中间过程,读取Oracle表数据后,经过中间转换和处理,将最终结果输出到Peek组件。

2. 查看源端Oracle表数据

3. 设置存储过程的连接信息

4. 设置存储过程属性,选择存储过程类型为Transform(表示作为中间阶段),在Syntax属性栏中手工设置输入参数pa用:1作为占位符,表示读取前面Oracle数据库的表数据;输出参数pb用:2作为占位符,表示将存储过程的处理结果输出到后续的DataStage组件(Peek)。

5. 查看Input选项

6.查看Output选项

7. 将PA映射到auuid字段,参数类型设置为Input;将PB映射到aname字段,参数设置为Output。

8. 运行作业,日志显示存储过程P2被DataStage调用,并输出正确结果。

via:华南IBM大数据支持团队
更多大数据与分析相关行业资讯、解决方案、案例、教程等请点击查看>>>
详情请咨询在线客服!
客服热线:023-66090381