基于XML的数据迁移技术研究

时间:2022-10-11 03:07:05

基于XML的数据迁移技术研究

摘要:针对临盘采油厂的数据迁移的具体需求,该文提出了一种基于XML的数据迁移模型,以实现数据的提取、转换、写入等功能。它采用JAVA和XML技术,具有很好的跨平台、易扩展、复用性等,能很好的解决异构数据库间数据迁移的问题。

关键词:数据迁移;XML;异构数据库

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)01-0011-04

临盘采油厂综合信息平台始建于2001年,积累了很多重要的油田数据。随着“数字油田”的发展趋势,临盘采油厂的数据需要迁移到一个统一的源头数据库,这样不仅临盘采油厂可以访问数据库中的信息,其他系统也可以共享其数据,以达到信息统一管理、信息共享的目的。这样能很好的解决了“信息孤岛”的现象。针对上述问题,结合现有的数据迁移转换技术,设计一个数据迁移转换接口是十分必要的。它将实现将来源离散且格式多样的临盘采油厂数据进行处理后,再将这些标准化数据迁移到源头数据库中,为临盘采油厂和其他管理部门提供标准统一的数据信息,实现数据的共享。

1 数据迁移相关技术及解决思路

1.1常用的数据迁移技术

数据迁移是指将源数据库中指定表的数据进行清洗、转换并装载到目的数据库指定表中的过程[1]。数据迁移可以分为抽取、转换、装载三个步骤。数据抽取是根据实际应用,对旧系统的底层数据进行筛选,选择出需要的待迁移数据。转换是根据新旧数据库的映射关系进行的,首先比较新旧系统中字段数据类型的差异和联系,找出适当的对应关系,然后进行相应的转换。数据装载是通过数据迁移工具或事先编写的SQL程序将抽取、转换后的数据写入到目标数据库对应的表中。数据迁移的基本流程如图1所示。

常用的几种数据迁移的实现方法有以下几种[2]:

1.1.1 数据库厂商的专业工具

当前很多数据库厂家都提供专门的数据迁移工具,常见的有Informix的Infomover、Microsoft SQL Server的DTS和Oracle的Oracle Warehouse Builder等。国内的主流数据库厂商如DM、King Base、GBase等也都有着自己的数据库迁移工具。

1.1.2 利用前台开发工具

PowerBuilder 是广泛用于数据库前台开发的软件,它对不同数据库采用不同接口(ODBC 或专用接口),可以支持多种关系数据库。

1.1.3 利用数据库组件转换

利用. net 数据库应用程序开发技术实现源数据库向目标数据库的直接转换。这个过程中使用了ADO. NET提供的两个核心组件:DataSet 和DataProvider。DataSet 组件的设计实现了独立于任何数据源的数据访问, DataProvider 组件的设计实现了对数据库的连接、操作、读取的访问。

1.1.4 基于中间件的解决方法

顾名思义,这种方法就是在源数据库和目标数据库间建立一个中间层。将用户对不同数据库的操作变为对单一中间件的操作,然后经过中间件的处理实现数据迁移处理。基于中间件的解决方案有以下优点:

(1)易于移植和集成。中间件将各种与平台相关的细节进行了封装,即使变更操作系统或通信协议等底层配置,也不用改变应用程序代码。

(2)易于扩充。中间件若有局部变动和整体升级,只要对外的接口保持不变,就不会影响系统其它部分的正常运行,从功能上对应用程序实现了透明。

(3)访问透明、使用简单。中间件封装了底层的具体实现细节,对各种数据源使用统一的方法访问,这对用户来说是透明的。

1.2 XML及JAVA技术

XML(Extensible Markup Language,可扩展标记语言)以一种自我描述的方式进行数据结构定义,在描述数据内容的同时也突出了对结构的描述,从而体现出数据之间的关系。XML的优点很多,如高可扩展性、平台无关性、自描述性等等。XML技术的发展非常迅速,在许多领域都得到广泛的应用。

JAVA是面向对象型语言,它继承了C++语言面向对象技术的核心,它集成了其它一些语言的特点和优势,又避开了它们的不足之处。Java中常用连接数据库的技术是JDBC,很多数据库都带有JDBC驱动程序[3]。SUN公司还开发了JDBC-ODBC桥,用此技术可以实现对带有ODBC驱动程序的数据库的访问。

Java和XML有许多相似的特性,比如平台无关性、可扩展性、可重用性等,因此它与XML结合起来,是实现中间件的一个很好的方式。

1.3 数据迁移接口思路

现今临盘采油厂数据库中的数据需要迁移到统一的源头数据库中,但新旧数据库系统存在一定的差异,如数据库系统的差异、数据表结构的差异、数据类型的差异等。如何解决这些问题是该文的难点和重点。

Java和xml的完美结合为问题的解决提供了一个很好的途径,因此本文的解决方案就是利用java和xml实现数据的跨平台的迁移。

数据迁移的基本思路如下:

首先,建立各种关系数据库的 XML 数据模型,根据具体的需求选择相应的列,将数据库中单个或者多个表映射成相应的 XML的属性或文档结构,然后提取表中的数据,加以整理和组合生成相应 XML文档,也就是将关系数据库中的数据导出为 XML 格式的数据文件。

然后,就可以定义XML Schema的数据约束规则来控制程序,它在数据迁移过程中起着非常重要的作用。根据 XML Schema 及自定义约束规则进行数据的完整性校验。

最后,利用java语言实现对生成的XML的读取,把XML文本中的内容读取出来,同时找到和目标数据库表中的对应关系,最终把数据导入目标数据库表中。

2 异构数据库数据迁移方案设计

2.1数据库迁移面临的问题及总体流程设计

临盘采油厂数据迁移面临的问题:

1)数据库系统的异构

临盘采油厂开发平台采用的是Access、SQLServer数据库,而源头数据库采用的是Oracle数据库。

2)数据表结构的不同

临盘采油厂开发平台中数据库Access、SQLServer中的表结构和源头数据库(目标数据库)中的表结构存在差异,如:列名称不同、列的数目不同、存在列的组合情况等。

3)数据表的数据类型不同

临盘采油厂开发平台中数据库Access、SQLServer与源头数据库Oracle中的数据类型存在差异。

4)数据表之间行列转换问题

源数据库和目标数据库之间存在行列转换的问题。

为了很好解决上述问题,该文采用了基于xml的中间件,数据迁移的总体流程图如图2。

用户是在了解源头数据库基本结构的情况下,进行数据库中数据表的选择,可以把整个表结构通过Java映射为XML文件,也可以选择其中部分字段进行映射,或者是一些字段组合成一个新的字段。

通过相应的XML格式检测,如果XML文件格式合法,则根据XML文件中的结构进行其与目标数据库中表的结构进行对应。XML中的标签名可以不同于目标数据库中表的列名,这样就解决了源数据库和目标数据库表列名不同的问题。

最后,用Java采用DOM、JDOM或者SAX的解析方式,把XML文件中的数据读取到目标数据库。

2.2源数据库到XML文件的数据转化

在程序开发过程中,需要连接源数据库和目标数据库,连接数据库采用JAVA语言的JDBC驱动程序。该驱动程序具有效率高的特点,不会增加额外的开销,由纯JAVA语言开发而成,拥有最佳的兼容性。

在源数据库和XML文档之间进行转换和高效的传递数据,必须在XML文件和数据库表结构之间建立映射[4],建立它们之间的映射有两种常用的映射方法:基于模板驱动的映射和基于模型驱动的映射[5]。

本文采用了基于模板驱动的映射来实现数据库到XML文档的数据转换。在模板中加入了SQL命令,经过中间件的处理生成相应的XML文件。

流程如下图3。

基于模板驱动的映射操作比较灵活,但是它只支持关系型数据库转换到XML文档。

2.3 XML文档数据转移到目标数据库

XML文档中的数据转换到目标数据库中,我们准备采用基于模型驱动的映射模式,利用生成的XML文档中的数据结构显性或隐性的与目标数据库表结构进行映射[6]。在此过程中采用DOM、JDOM或者SAX接口进行XML文件的解析。

其流程图如图4。

实现XML文档数据到目标数据库中的转换步骤如下:

1)首先通过XML语法分析处理器检测XML文档结构。

2)将分析处理的结果送到XML的解析器(DOM、JDOM或者SAX)中进行解析,将其中的内容转换到JAVA对象中。

3)连接目标数据库,把JAVA对象中的数据插入到目标数据库中。

基于模型的驱动映射结构简单,使用易用,但是和基于模板的驱动相比,它不够灵活,因为它映射的是具体的数据模型,不过可以通过XSL实现其灵活性。

3 结束语

本文介绍了采用JAVA技术和XML技术实现临盘采油厂的数据转换接口的实现方法。此方法可以很好的实现数据的迁移,采用XML作为中间数据存储结构很好的屏蔽了数据库系统之间的差异性,如数据结构、数据类型等,而且XML和JAVA都具有很好的跨平台性,可以实现了系统的跨平台性。

参考文献:

[1] 尹建璋.基于XML的应用层数据交换技术的研究[J].计算机与现代化,2009 (11).

[2] 张欣欣.综合录井仪数据迁移及转换接口技术研究[D].中国石油大学,2008.

[3] 孔翔鹰,李治柱.XML与数据库双向接口的研究和实现[J].微型电脑应用,2006,9(22):48-52.

[4] 周竞涛.基于XML的异构数据库集成中间件技术研究[D].西安:西北工业大学,2002.

[5] Giuseppe Psaila.ERX:An ExPerience inIntegrating ER Models RDB and XML Teclinologies .EDBT 2002 Workshops .LNCS,2490.2002:242-265.

[6] 戴永寿,张淑英.基于JAVA和XML的综合录井仪数据转换接口技术进展[J].录井工程, 2008,19(2).

[7] 郑仕勇,李碧青.基于XML和中间件的数据迁移模型研究与设计[J].软件导刊, 2012,11(4).

[8] 王云晓,张学诚,屈彪.基于XML的构件库管理系统实现研究[J].计算机应用与软件,2009(26).

[9] 欧阳峥峥,李禹生.基于XML的异构数据库数据交换中间件的研究[J].计算机与现代化,2008(12).

[10] 李钟隽.基于XML数据迁移中间件的研究[D].哈尔滨:哈尔滨工程大学,2007.

上一篇:一种基于Select函数的嵌入式网络通信信息转发... 下一篇:给Office一个完美的“兼容”