当前位置: 首页 > 数据库 > db2教程 > 正文

Infosphere Datastage的扩展方法应用实践

时间:2014-12-17 IBM 张 光业

我们知道, Infosphere Datastage 是一个功能强大的数据抽取、转换、装载工具,广泛用于用户信息整合项目之中。它不仅提供了丰富的数据接口,可以连接种类广泛的大型机、数据库、ERP/CRM 等企业应用及外部信息资源,它还提供了几十个数据转换 stage 及上百个数据转换函数,可以满足我们数据转换的需求,其中,比较常用的 Stage 主要包括:

用于数据源及目标的 stage:各种数据库的 connector、sequential file、data set

用于数据合并的 stage: lookup、joins、Merge、Aggregator

用于数据转换的 stage: transformer、Remove Duplicates

辅助的 stage: Row Generator、Peek、Sort

通常来说,阶段提供绝大多数企业数据整合应用所需的 80% 到 90% 的应用逻辑,同时,InfoSphere DataStage 也提供了 c++ 及 java 编程接口,允许我们开发、扩展满足特定需求的转换功能。

从底层技术架构来看,Infosphere Datastage 提供了一个并行、可扩展的应用框架,如下图所示,该并行、可扩展的应用框架主要由四个部分组成:应用组件、应用框架、配置文件及应用服务。每一个应用组件完成数据处理及应用分析的不同功能。其中:

图 1. Datastage 并行扩展应用框架

应用组件:是实现应用处理逻辑的基本处理单元,包括同数据库的接口、数据连接操作、分析、排序、分组聚合操作等,所有这些应用组件连接在一起来完成数据处理应用操作。该并行、 可扩展的应用框架还允许用户通过包装已有应用、开发 c/c++ 应用程序来定制自己的应用处理组件,所有这些组件均可以被复用,并且提供并行处理能力。

通常来说,阶段提供绝大多数企业数据整合应用所需的 80% 到 90% 的应用逻辑,同时,InfoSphere DataStage 也提供了 c++ 及 java 编程接口,允许我们开发、扩展满足特定需求的转换功能。

应用框架:用来构建并行处理应用。用户可以通过图形界面或命令行方式,选择各种处理组件,并将这些组件顺序连接在一起来实现各种处理流程。在内部,应用框架会自动实现作业的并行处理操作,包括负载均衡、分区间通讯、数据模式处理、多线程操作及数据缓冲操作等。用户不需要关心并行处理编程方法来实现并行处理效率,这些完全由应用框架自动完成。

配置文件:用来指定数据处理应用在不同硬件平台上的并行处理能力。一般情况下,用户自己开发的应用程序,其应用逻辑及硬件平台编码往往交织在一起,因此,很难在不同硬件平台之间迁移。Infosphere Datastage 通过配置文件来隔离硬件平台编码,因此,可以通过改变配置文件的设置来轻松实现不同平台间应用迁移,而不需要改变应用逻辑。

应用服务:用来提供数据处理应用的运行时态管理,包括跨越多个 cpu 处理器作业的单一程序及单一操作符的控制,集中错误信息的收集,性能监控,作业检查点重启控制等。

Infosphere Datastage 中所提供的各种 stage,在其并行、可扩展的应用框架中都被影射成各种操作符(Operator),其中常见的一些 stage 所对应的操作符如下:

表 1. Datastage 操作符对照表
  Datastage stage Operator
  Sequential File – Source import
  Sequential File – Target export
  Data Set copy
  Sort tsort
  Aggregator group
  Row Generator, Column Generator,
Surrogate Key Generator
generator
  Oracle – Source oraread
  Oracle – Sparse lookup oralookup
  Oracle – Target load orawrite
  Join Innerjoin,
leftouterjoin,
rightouterjoin, Fullouterjoin

Infosphere Datastage  并行、可扩展的应用框架,通过数据分区、流水线及数据重分区等技术提供了高效的并行处理能力,充分保证数据整合的执行效率。所谓数据分区技术,就是通过哈希散列算法、数据轮训操作、随机操作等方式将数据分布到不同的数据分区,不同分区之间并行操作来提高数据处理效率。我们可以根据一台机器 CPU 的数据量及不同机器来设置数据分区的数量,比如,如果系统有 4 个 CPU,我们就可以将数据分布到 4 个数据分区上,理论上讲, 执行效率是单分区的 4 倍;所谓流水线技术,就像生产流水线一样,上一阶段数据处理完成后,会通过内存立刻传送到下一阶段进行处理,数据不落地,不产生 I/O 操作,所以效率会更高,同时,它结合数据分区技术,可以保证在每一个数据分区之间不落地进行数据处理,实现高效、并行处理。所谓数据重分区技术,是指可以根据数据处理的要求,重定义数据分区,尽量保证数据均匀分布到不同的数据分区,实现所谓 co-location 操作,即数据连接等操作尽可能在同一个数据分区内完成,这样执行效率最高。Infosphere Datastage 中所提供的所有数据处理 stage 都基于该并行、可扩展的应用框架进行开发的,所以,所有数据处理 stage 都提供并行处理能力。

另外,Infosphere Datastage  并行、可扩展的应用框架还提供了非常灵活的可扩展能力,我们可以通过多种方式非常方便地开发自己特定的处理功能。在 Infosphere Datastage 中,扩展方法主要包括以下几种方法: