数据移动服务支持应用程序将数据从源数据库移到目标数据库。源数据库和目标数据库可以是同构或异构的,即:可以安装在单一系统或分布在多个系统上。除移动数据之外,服务还能转换数据,并根据应用程序的需求提供基本的数据生命周期功能。
数据移动服务由 5 种主要组件实施:
- (源)“捕获”组件
- (目标)“应用”组件
- ETL(抽取、变换、装入)组件
- “源生命周期”组件
- “目标生命周期”组件
“捕获”和“应用”组件一同工作,将数据从源数据库移到目标数据库。如果源数据库中的数据结构与目标数据库中的数据结构不同,ETL 组件会执行任何需要的数据变换。下图说明了数据移动服务中的过程流:
数据移动服务流执行下列步骤:
- 存储并经常更新源表中的数据,例如通过监控器服务器。“捕获”组件在工作表中记录了对源表所做的任何数据更改。
- 在预定义的时间间隔中,通过“应用”组件来识别这些更改,并将其记录在工作表中。
- 在成功记录更改以后,调用 ETL 组件。
- ETL 组件使用存储在“应用”工作表中的数据和预定义的规则,来执行任何必要的转换。成功转换的数据将被写入目标表。任何不完全的或错误的数据将保留在另一组工作表中,以便在以后处理。
- 完成 ETL 处理后,将激活“目标生命周期”组件。
- 一段时间过后,“应用”工作表中会聚集大量数据。
“目标生命周期”组件会删除这些表中已由 ETL 组件成功处理的任何数据。
- 将数据成功复制到目标数据库后,就不再需要它,并可从“捕获”工作表中删除它。“捕获”组件定期修剪工作表以减少资源不足的情况。
- 从“捕获”工作表删除数据会触发“源生命周期”组件的调用。
- 任何已成功处理、被标记为可删除并已通过“源生命周期保留时间策略”的数据,都将从源数据库删除。
“捕获”组件和“源生命周期”组件通常驻留在源系统上;而“应用”、ETL 和“目标生命周期”组件则驻留在目标系统上,如下图所示:
在数据移动服务中,可能会根据源数据库和目标数据库中使用的数据结构,使用多个组件实例。
组件实例的数量与
业务度量模型中的业务度量组的数目以及源表和目标表的数目直接关联。每个实例都是唯一标识的。以下规则适用于
WebSphere® Business Monitor:
- 为每个业务度量模型项目分配一个“捕获”组件实例,由该实例捕获所有属于该业务度量模型项目的源表的更改。
- 为每个业务度量模型项目分配一个“应用”组件实例,由该实例记录需要应用到隶属于此业务度量模型的目标表的更改。
- 为每个目标表分配一个 ETL 组件实例。
- 为每个源表分配一个“源生命周期”组件实例。
- 为每个“应用”工作表分配一个“目标生命周期”组件实例。
例如,组件实例可以是可执行程序、数据库存储过程或数据库触发器。
WebSphere Business Monitor 中使用了两个数据移动服务实例:
- 状态至运行时数据移动服务
- 运行时至历史的数据移动服务。
状态至运行时数据移动服务处理由监控器服务器存储在状态数据库中的数据,并将这些数据移入可由仪表板访问的运行时数据库。运行时至历史的数据移动服务将数据从运行时数据库移动到历史数据库。下图说明了这一转移:
以下信息描述了这些服务的缺省配置,以及如何配置、启动、停止和监控它们。