DataStage最佳实践之存储过程调用

InfoSphere DataStage 是 IBM 统一数据集成平台InfoSphere Information Server的重要组件,是业界主流的ETL(Extract, Transform, Load)软件。

在之前的文章中,小编曾经介绍过DataStage不仅支持各种异构平台的数据库,提供多种功能强大的数据库连接器;而且也支持对非结构化数据的访问,例如TXT、CSV、XML、COBOL和Excel文件等。

而对于常见的数据库存储过程,DataStage同样也提供强大的支持,接下来将以Oralce的存储过程为例演示在DataStage如何进行调用。

前期准备工作

1. 创建存储过程p2,p2定义了一个游标查询表A的数据,然后将数据返回给输出参数。

DataStage最佳实践之存储过程调用_第1张图片

2. 表A的结构如下所示

DataStage最佳实践之存储过程调用_第2张图片

3. 表A的数据如下所示

DataStage最佳实践之存储过程调用_第3张图片

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

DataStage最佳实践之存储过程调用_第4张图片

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

DataStage最佳实践之存储过程调用_第5张图片

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

DataStage最佳实践之存储过程调用_第6张图片

将存储过程作为数据源生成数据

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

DataStage最佳实践之存储过程调用_第7张图片

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

DataStage最佳实践之存储过程调用_第8张图片

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

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

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

DataStage最佳实践之存储过程调用_第9张图片

存储过程作为中间过程处理数据

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

DataStage最佳实践之存储过程调用_第10张图片

2. 查看源端Oracle表数据

DataStage最佳实践之存储过程调用_第11张图片

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

DataStage最佳实践之存储过程调用_第12张图片

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

5. 查看Input选项

6.查看Output选项

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

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

DataStage最佳实践之存储过程调用_第13张图片


你可能感兴趣的:(大数据,Datastage,数据集成,数据管理)