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


发布者 chenjunji123456  发布时间 1467254926760
关键字 分享 

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

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

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

前期准备工作

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

datastage

2. 表A的结构如下所示

datastage

3. 表A的数据如下所示

datastage

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

datastage

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

datastage

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

datastage

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

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

datastage

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

datastage

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

datastage

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

datastage

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

datastage

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

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

datastage

2. 查看源端Oracle表数据

datastage

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

datastage

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

datastage

5. 查看Input选项

datastage

6.查看Output选项

datastage

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

datastage

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

datastage

via:华南IBM大数据支持团队

更多大数据与分析相关行业资讯、解决方案、案例、教程等请点击查看>>>

详情请咨询在线客服

客服热线:023-66090381









  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA