关系型数据库异构数据同步系统研究和实现.doc
文本预览下载声明
关系型数据库异构数据同步系统研究和实现
摘 要 本文设计了一种由数据捕获,数据转换,数据传输三个过程组成的数据同步方案,详细阐述了捕获数据、转换数据、到传输数据的全过程,并对其进行了实现。
【关键词】关系型数据库 异构数据 数据同步
1 引言
数据同步就是借助数据复制技术将一组数据从一个数据源拷贝到不同物理地点的另一个数据源。中国石油集团搭建数据同步系统主要用于解决以下两个问题:
(1)实现中国石油集团各机构业务系统之间数据的交换与共享,这些系统由于开发时间与环境不一致,因此,所采用的数据库工具与所设计的数据库表一般差异较大。
(2)中国石油集团各机构业务系统在更新换代过程中,为了让用户拥有一段时间的适应期,出现的新旧系统同时运行的过渡阶段,这种情况下,新旧系统的数据库可能出现重构,并且旧系统中发生的数据变化需要实用同步更新到新系统中。
2 数据同步问题分析
在搭建中国石油集团的数据同步系统过程中,相关的调查现状如下:
(1)从整体上看,作为待同步数据的多个业务系统由于分别由各个机构在不同时期独立开发,缺少关联,因此,所采用的数据库系统和数据表结构差异很大。
从数据库系统上分析,位于地方县市的部门开发的系统多采用MYSQL数据库或者SQLSERVER数据库,极少数采用了ACCESS数据库;位于省级部门开发的系统多采用ORACLE数据库或者DB2数据库。
从数据表结构分析,基本上待同步的两个数据表之间不存在一致性,并且出现很多数据字段同名不同义或者同义不同名的现象。
(2)从业务逻辑上看,数据同步过程中,数据传播方向分为两类:一类是数据在同级系统间进行复制,这类业务虽然要求数据复制周期较短,但是允许存在时间延迟。一类是数据由下级系统向上级系统进行复制,这类业务主要用于分析,可接受的数据复制周期较长。
所以,系统并不像金融系统那样需要实时保证数据的紧密一致性。为了提高系统的可用性,在实际应用中,各节点之间的数据采用异步复制。
可见,数据同步的难点主要在于对数据异构性的处理和对数据复制时效性的控制。
3 数据同步方案设计
完成一次数据同步任务的过程由数据捕获,数据转换和数据传输三个标准步骤来执行。
图1展现了数据同步的标准数据复制流程。
经过调研,在现有技术中,本文发现利用这三个标准步骤来执行同步的方案仅限于数据库表字段之间彼此一对一的复制,不能支持涉及跨库跨表的多字段映射关系的复制需求,其问题就在于数据转换模块只能处理两表之间互相关联的两个数据字段之间的一对一类型转换关系,而难以处理多表之间互相关联的多个数据字段之间的复杂转换关系。
而在中国石油集团的同步应用场景中,为了在不改动当前各类应用系统的数据资源结构的基础上实现分布式数据库系统的数据同步目标,就必然涉及在同步过程中需要完成对数据字段之间复杂转换关系的处理,这就意味着数据转换模块必须能够承担足够复杂的数据分析处理任务。
为此,本文在三个标准步骤的基础上特别设计了一个智能数据转换中心,并基于该数据转换中心,将同步的源数据库和目标数据库区分为同步源区和同步目标区,每个同步源区和同步目标区都可以拥有不止一个数据库,它们之间的复杂数据转换关系依靠智能数据转换中心进行处理以便满足中国石油集团的数据同步应用场景。
3.1 数据捕获
本文通过对目前常用的七种数据捕获技术的优缺点进行对比分析发现,控制表法能够获取各种方式操纵数据库所引起的变化数据,具有普遍适用性,且不需要修改表结构,不会影响原业务系统的性能,在时效性上十分灵活,其设计思想最适用于中国石油集团各机构业务系统的数据同步应用场景。
但是,控制表法要为每个进行同步的源表T创建一个控制表C,这对拥有大量需要同步的源数据表的同步应用来说是十分占用数据库空间的。因此,本文在控制表法设计思想的基础上,做了一种改进的用于异构数据库同步的变化数据捕获方法――同步变化表法。
该方法在每个要同步的源数据库中只创建一个同步变化表,同步变化表里面包含发生变化的源数据表的表名,数据项所在源数据表的主键值,数据变化的类型(插入、删除、更新),数据变化时间和数据同步的状态(已同步、未同步)。当源数据表中的数据发生变化的时候,通过在其上建立的删除、增加和修改触发器向同步变化表里面添加相应的记录信息。这些记录信息被用于在同步过程中查找变化数据的完整信息,并且在数据被同步成功后删除,有效的减少了数据库空间的占有量。
3.2 数据转换
为解决中国石油集团异构数据之间复杂的转换关系,本文设计了一个智能数据转换中心,该转换中心利用数据整合、数据计算和一个可以自由灵活扩充的计算公式库用于处理对应复杂数据关系的转换。
显示全部