赵艳妮,郭华磊(.陕西职业技术学院计算机科学系,西安 7000;.西安通信学院信息服务系,西安 7006)
一种异构信息系统数据迁移技术研究
赵艳妮1,郭华磊2
(1.陕西职业技术学院计算机科学系,西安710100;2.西安通信学院信息服务系,西安710106)
数据库迁移作为一种实现数据共享的方式被主流数据库厂商所支持,商业数据库附带的数据迁移工具主要有SQL Server数据库的数据转换服务DTS、Oracle数据库的Migration Workbench、DB2数据库的Universal Database Migration Toolkit、MySQL数据库的Migration Toolkit和达梦数据库的数据交换平台DMETL。商业 ETL工具主要包括国外的 Datastage、Powercenter、ETL Automation和国内的Beeload、Primeton DI、ReiK-ing ETL等。开源ETL工具主要包括国外的Kettle、Talend和国内的TASKCTL。上述三种异构数据库ETL工具,各有其优缺点。数据库自带ETL工具出于商业目的完全支持自己数据库系统的操作使用,对其他数据库系统支持较差;商业ETL工具功能最全面,几乎支持所有主流数据库,但价格昂贵;开源ETL工具成本低,但是后期培训费用较高,功能有限,稳定性和安全性无法保证[1]。本文提出一种通用异构数据库数据迁移的设计思路和实现方法,解决数据库系统类型不同导致的数据无法共享问题。
如图1所示,数据迁移的基本流程包括需求分析、技术实现和迁移验证3个重要环节。鉴于新老系统设计的差异和复杂性,需要进行迁移验证,比较迁移后新老系统的运行差异,发现不足,通过多次迭代不断优化迁移方案,实现系统切换后业务功能的平稳过渡。信息服务系统信息迁移的基本流程分为准备、实施和评估三个阶段[2]。
(1)准备阶段。分析、清洗源数据,确定迁移方案。首先,分析源数据。理清现有信息系统存储平台、操作系统类型、数据库系统结构以及数据之间的逻辑关系。然后,清洗源数据,并确定迁移方案。根据业务需求,删除冗余、错误数据,改造二义数据,实现信息的清洗和抽取,确定信息迁移范围和方案。
(2)实施阶段。包括预迁移和实施迁移。首先,进行信息预迁移,即采用既定的迁移方案,从各种数据类型中抽取样本数据迁移到目标平台上。若迁移成功,则按该方案实施整体信息迁移;否则,返回源数据分析阶段,重新制定迁移方案。
图1 信息迁移基本流程示意图
图2 基于XML技术的异构数据库系统信息迁移框架图
(3)评估阶段。进行系统可用性评估和目标数据检查。首先,进行系统可用性评估。测试完全迁移后的数据对应用业务的支持能力。若通过评估,则进行目标数据检查;否则,重新确定迁移方案。目标数据检查,即对数据进行合法性、完整性和一致性检查。若检查通过,移交数据;否则,重新迁移。
现有信息系统所使用的数据库系统,存在数据库类型多样、数据格式不统一等问题,其异构性主要体现在以下三个方面[3]:
(1)数据库系统异构。数据可存储在关系型、层次型、网络型、面向对象型和函数型等多种数据库系统中,甚至文本文件中;
(2)数据类型异构。主要表现在:不同数据库系统,支持的数据类型不同;即使同一数据类型,其精度、计量单位、存储方式等也可能不同;
(3)数据库语义异构。主要表现在:相同数据库字段名称,业务含义不同;相同业务含义,数据库字段名称不同;数据之间的完整性约束不同等。
实现异构数据库系统间信息迁移的关键,是利用中间件的转换功能,解决数据库系统间的异构冲突。中间件技术是根据全局统一的公共数据模式和数据描述格式,准确无二义地定义需迁移的数据格式,形成规范性说明文档,进行数据转换。可采用基于元数据、本体或XML等技术来实现。如图2所示,描述了基于XML技术实现信息迁移的具体过程。
基于XML技术的异构数据库系统之间的信息迁移,通过将数据映射为XML文档、数据类型映射为XML Schema文档的形式,建立文档和数据库系统之间的映射关系,解决不同数据库系统间的异构问题[4]。
在信息服务系统运行阶段,经常需要在保持业务连续性的条件下,实施在线的信息迁移,以满足系统平台的扩展升级和数据库系统的建设维护需求。
基于XML异构数据库信息迁移基本思路[5]:首先,建立源数据库表到目标数据库表的映射关系模型,将源数据库中数据按照指定规则抽取并转换为XML特定格式保存到XML数据文件中;然后,根据需求对XML数据文件进行相应的数据更新和数据清洗,减少数据的错误率和冗余度;最后把XML数据文件中数据转换为目标数据库表相应字段格式装载到目标数据库中。基于XML的数据迁移框架图如图2所示。
在异构数据库之间利用XML进行数据迁移,要建立XML关系数据模型。XML数据关系模型以XML文件的形式表示源数据库表与目标数据库表之间的映射关系。利用DOM4J解析器把XML数据文件的数据按照要求导入到目标数据库中。基于XML的关系数据模型结构图如图3所示。
图3 基于XML的关系数据模型结构图
由关系数据库转换为XML模式,关键有以下两点[6]:
(1)结构方面,能够用XML最直观最精确的方法表示出关系数据的结构;
(2)语义方面,尽可能多的直接从数据库中获取,并用最好的方式表达出来。
关系数据库的数据结构本身是一种扁平结构,因此在映射到XML时,用XML元素表示关系数据库的列属性,使用属性和元素都能够很好的表达数据类型灵活,支持更多的语义约束,更容易扩展。当与关系数据库进行转换时,可以利用传统的“对象—关系”映射技术来实现。如图4所示。
图4 关系数据库与XML文档转换图
将文本、图片、视频、音频等半结构化、非结构化数据迁移到数据库时,都是按照文件的方式存储在大字段中,例如,SQL Server数据库数据类型为 “image”字段,Oracle数据库数据类型为“BLOB”字段,用来存储图片、文本、音频和视频等信息,种类多、原理差异性非常大。因此,针对大字段数据的迁移是数据迁移的核心技术,也是评估数据迁移是否成功的关键。
异构数据库信息迁移技术采用二进制流文件方式实施大字段数据迁移[7],具体过程如下:
(1)根据制定的数据迁移方案,建立源数据和目标数据库字段间的映射表;
(2)根据字段映射表和查询条件读取源数据库数据,如果是大字段类型,采用文件流方式,把数据转换为二进制字符串,写入到中间文件中(本文大字段中间文件采用txt方式)。在XML文件中记录大字段的字段类型,在XML文件中大字段对应的元素内容记录中间文件的存储路径,把源数据库中大字段内容以二进制流方式读出,转化为二进制字符串写入到中间文件;
(3)最后,解析XML文件,依据XML文件中大字段对应的元素内容记录中间文件的存储路径读取中间文件内容,把二进制字符串转换为二进制形式以流的形式写入到目标数据库。
基于“源数据库-XML-目标数据库”的异构数据库迁移技术。在信息管理系统升级改造过程中,数据表结构、表名称,以及字段名称和类型可能发生改变,具体措施如下:
(1)根据制定的数据迁移方案,生成源数据和目标数据库之间的映射表,实现源数据表字段和目标数据库表之间的映射。如果表映射是“一对一”关系,仅仅建立源字段与目标字段的映射;如果表映射是“多对一”或“一对多”关系,建立源表和源字段与目标表和目标字段组合的映射,通过组合映射解决表结构发生改变的问题;
(2)根据字段映射表,生产中间转换的XML文件,记录目标数据库名称、目标数据库类型、目标表名称、目标字段名称和目标字段类型,其中把目标字段名称作为XML的元素名称,目标字段类型作为XML元素的属性,把从源数据库读取的内容转换为字符串,作为对应目标字段名称元素的内容,如果是大字段,则存放其中间文件路径;
(3)通过设置条件,可以查询数据、删除错误的数据、验证数据等;
(4)通过解析XML文件,读取目标数据库名称、目标数据表名称、目标字段名称和字段元素内容,根据字段名称,在目标数据库中读取字段类型,然后根据字段类型把字段元素内容转换为相应格式,生产相应SQL语句,装载到目标数据库。通过以目标字段名称作为XML文件的元素,以该元素的字符串内容为该字段内容,解决了字段名称和类型发生改变的问题。
基于XML的异构数据库迁移系统利用自身的数据清洗功能,减少数据库的冗余度。数据清洗分源表清洗和目标表清洗[8]。源表清洗指在数据迁移前对源数据库进行数据清洗,优点是可以避免把脏数据或冗余数据迁移到目标数据库,缺点是如果发生误删除,数据无法恢复;目标表清洗指在数据迁移之后对目标数据库进行数据迁移,优点是如果发生数据误删除,可以通过源数据恢复误删除的数据,缺点是如果源数据有脏数据或冗余数据,也迁移到目标数据库,可能造成一定的冗余。
源表清洗和目标表清洗都具有单表清洗和多表清洗。单表清洗按照设置的条件对数据进行删除;多表清洗比较麻烦,如果多个表之间建立了级联,为了保证数据的一致性,必须先删除从表,再删除主表,否则,数据库发生级联错误。数据清洗后,数据库减少了错误率和冗余度,提高查询的效率,保证数据的完整性和一致性。
本实验通过用户易用性、在多种数据库类型之间的通用性、扩展性、数据迁移过程中安全性、迁移成本、具有消除脏数据功能和迁移效率几个方面综合评价几种常用数据迁移工具。具体如表1所示。
表1 数据迁移方法对比情况表
通过与其他ETL工具比较,本方法技术简单、功能全面,在通用性、数据完整性以及可扩展性方面具有明显的优势。
本文提出的基于“源数据库-XML-目标数据库”的迁移技术解决了传统手工迁移历史数据的局限性,大幅提升了信息系统历史数据迁移的效率,实现了不同类型数据库间的信息迁移和集成,为企业业务系统更新换代过程中的信息资源的延续使用,及企业信息资源共享奠定了基础,在保证准确率、完整性和精度的基础上,效果显著。
[1]刘如九,张振山,柴天佑.一种通用的多数据库间数据抽取方法及应用[J].北京交通大学学报(自然科学版),2008,32(4):14-18.
[2]罗益辉,谢长生.基于QoS的数据迁移模型的设计[J].计算机工程,2009,35(6):57-59.
[3]齐少蕾,林慧苹.一种适SaaS多租户模式的数据迁移方法[J].计算机工程与应用,2011,47(32):65-70.
[4]Hu Jun,Huang Hou kuan,Gao Fang.A clustering algorithm for parallel coordinates-based measure model and its applications[J]. Journal of Nanjing University:Natural Sciences,2009,45(5):645-655.
[5]赵艳妮,郭华磊.基于XML的数据迁移技术在信息系统升级中的研究与实现[J].计算机应用与软件,2014,31(12):52-54.
[6]程利.数据库应用平台的异构数据迁移[J].信息系统工程,2014,(3):150-151.
[7]汪奋进.一个基于数据映射的个人信息汇聚及数据迁移系统的设计与实现[D].北京大学,2014.
[8]吴淑玮,闫训超,曹齐.企业级信息系统数据迁移[J].计算机系统应用,2013,22(7):53-57.
Heterogeneous Database;Data Migration;Data Mapping
Research on Data Migration Technology of Heterogeneous Information System
ZHAO Yan-ni1,GUO Hua-lei2
(1.Department of Computer Science,Shannxi Vocational&Technical College,Xi'an 710100;
2.Department of Information Service,Xi'an Communication College,Xi'an 710016)
1007-1423(2015)24-0021-05
10.3969/j.issn.1007-1423.2015.24.007
赵艳妮(1982-),女,陕西蓝田人,讲师,硕士,研究方向为软件工程
2015-07-20
2015-08-05
随着新技术出现和业务发展,企业运行多年的信息系统需要升级改造,需要将旧系统的数据迁移到新系统,保证系统切换后业务平稳过渡。数据迁移不是单纯的数据“搬运”,而是按照全新的“图纸”进行数据“重构”,不仅要对旧系统中的业务数据进行清洗,还要完成新老系统数据的映射关系和新业务要素的生成规则,并最终完成数据内容和格式的转换。在Eclipse开发平台上开发一款异构数据库数据迁移工具,利用XML为信息迁移平台,建立一种有效的“源数据库-XML-目标数据库”映射模型,实现异构数据库数据迁移,对信息系统数据迁移具有借鉴意义。
异构数据库;数据迁移;数据映射
陕西省自然科学基金(No.2014JM8354)、陕西省教育厅重点实验室科技项目(No.13JS083)
郭华磊(1981-),男,河南泌阳人,硕士,讲师,研究方向为信息服务
With the new technology and business development,corporate operation information system needs to be upgraded for many years,migrate data from old system to new system,guarantee system after switching the business smooth transition.Data migration is not a simple “move”,but shall be carried out data“refactoring”in accordance with the new“drawing”,not only to the old system of business data cleaning,data mapping and complete the new and old system and new business elements to generate rules,and finally complete the data content and format conversion.On the Eclipse development platform to develop a heterogeneous database data migration tools,use of XML for migration of information transfer platform,establish an effective“source database-XML-target database”mapping model,realize the heterogeneous database data migration,it has reference significance for information system data migration.