一种在异构数据库之间迁移数据对象的方法及系统技术方案

技术编号:34451219 阅读:23 留言:0更新日期:2022-08-06 16:52
本发明专利技术公开了一种在异构数据库之间迁移数据对象的方法及系统,所述方法应用于具有应用层、引擎层和存储层的应用软件,包括以下步骤:S1.通过应用层为应用软件使用者提供软件界面和SDK软件开发应用包的接入方式;S2.通过引擎层读取使用者的配置信息,将待迁移数据库中的数据对象解析成通用数据对象模型,再将通用数据对象模型生成目标数据库语言或者生成编程语言实体类;S3.通过存储层将目标数据库语言或者编程语言实体类写入到目标数据库中,并生成日志文件。本方法和系统能够快速便捷的实现异构数据库之间数据对象的迁移,并支持生成SQL语句以及主流编程语言的实体类。成SQL语句以及主流编程语言的实体类。成SQL语句以及主流编程语言的实体类。

【技术实现步骤摘要】
一种在异构数据库之间迁移数据对象的方法及系统


[0001]本专利技术涉及计算机及网络通信
,特别涉及一种异构数据库之间迁移数据对象的方法及系统。

技术介绍

[0002]随着数据处理技术时代的到来,企业高速发展的同时也促成了数据量的爆发式增长,数据量爆发式增长就需要频繁的扩容或者增加数据库。现代化企业运营中,各部门系统长时间独立建设,系统内用于底层数据存储的数据库管理系统也是各有不同。随着企业规模的扩大和业务的升级,原有的数据中心的架构体系、系统性能及存储容量逐渐不能满足业务的需要,因而需要进行企业信息系统的改造和升级,数据迁移是其中非常重要的环节。数据迁移,又称之为数据移植,是指从一种数据环境(源数据库)中提取数据,根据需要,迁移或移植到另一种数据环境(目标数据库)中。异构数据库是指具有不同数据模型、不同体系结构,或者虽是同一类型但为不同厂家研制的数据库,如同为关系型数据库的SQL Server和Oracle等。异构数据库间数据迁移,即在如上所述数据库之间无损地,接近等价地移植数据。对于异构数据库间的数据迁移,传统方案多采用基于数据库或数据接口硬编码数据迁移程序,或人工录入的方式。但前者开发成本较高,重用性较差;后者所需时间和人力都非常大,且很难保证数据的准确性。
[0003]在异构数据库数据对象迁移的过程中,工具的选择变得尤为重要,现在的解决办法基本都是:借助通用的数据库管理和开发工具来进行异构数据库的迁移,比如可以使用类似于Navicat的数据传输功能来同步MySQL和Oracle。或者使用powerdesigner这种建模工具的逆向工程功能,将源数据表生成物理模型,最后根据物理模型来创建目标数据表。
[0004]但这些方式仍有不足:一方面,如果要迁移的数据库表很多,那么使用可视化工具会很慢,而且容易出错,使用此类方法迁移效率低并且支持的数据库有限;另一方面,这些软件都是商业软件,使用者需要支付一笔费用,而且不是国产自主可控的,随时都有被禁止使用的风险。在此环境下,开源数据库或者国产自研的数据库变得尤为重要。

技术实现思路

[0005]针对现有技术存在的问题,本专利技术的目的在于通过应用软件和SDK软件开发应用包的方式,能够快速便捷的实现异构数据库之间数据对象的迁移,并支持生成SQL语句以及主流编程语言的实体类。
[0006]为实现上述目的,本专利技术提供一种在异构数据库之间迁移数据对象的方法,所述方法应用于具有应用层、引擎层和存储层的应用软件,包括以下步骤:
[0007]S1.通过应用层为应用软件使用者提供软件界面和SDK软件开发应用包的接入方式;
[0008]S2.通过引擎层读取使用者的配置信息,将待迁移数据库中的数据对象解析成通用数据对象模型,再将通用数据对象模型生成目标数据库语言或者生成编程语言实体类;
[0009]S3.通过存储层将目标数据库语言或者编程语言实体类写入到目标数据库中,并生成日志文件。
[0010]进一步,步骤S1中,配置信息包括待迁移数据库的数据源驱动器、数据库链接、用户名、密码以及需要生成数据对象的目标数据库的数据源驱动器或者自定义驱动器文件位置、数据库链接、用户、密码;在应用层会对待迁移数据库和目标数据库进行连通性测试;连通性测试通过后使用SDK软件开发应用包,形成yaml配置文件。
[0011]进一步,步骤S2中包括子步骤S21.引擎层读取应用层的yaml配置文件并进行待迁移数据库的连接,将待迁移数据对象加载到程序对应的实体类中,通过判断待迁移数据库的类型,选择相应的驱动方式,使用驱动管理器连接待迁移数据库,驱动注册之后,将驱动管理器保存在已注册的驱动列表中。
[0012]进一步,步骤S2中包括子步骤S22.获取待迁移数据库表信息:通过驱动管理器的获取元数据方法获取待迁移数据库的元信息,通过元信息获取到所有的表名和表注释,将获取到的表名和表注释映射到待迁移数据库表实体类中,此时应用软件页面将显示所有的待迁移数据库表名和表注释;使用SDK软件开发应用包的方式将待迁移数据库表信息记录到日志文件;从而完成待迁移数据对象到待迁移数据库表实体类的映射。
[0013]进一步,步骤S2中包括子步骤S23.获取字段信息并生成通用数据对象模型:通过驱动管理器的预编译获取预编译对象,再通过预编译对象的getMetaData()方法获取结果集元数据,再通过getColumns()方法获取待迁移数据库表信息的字段信息,索引也通过getIndexInfo()方法进行获取;通过预编译对象获取注释信息;最后将获取的字段信息、索引和字段注释映射到通用数据对象模型中。
[0014]进一步,步骤S2中包括子步骤S24.进行数据字段的转换,包括首先构建各个数据库之间的数据类型映射关系表,通过数据类型映射关系表加正则匹配的方式实现待迁移数据库到目标数据库数据对象类型的转换;其次根据数据类型映射关系表与通用表字段实体类进行比对与替换;最后生成一个新的目标数据库表字段实体类。
[0015]数据类型映射关系表中,在存在待迁移数据库表中的字段与目标数据库表字段是一对多的关系的情况下,通过在程序中使用正则表达式Number\(\d+\s*(\,\s*\d+)\)来区分判断。
[0016]进一步,步骤S2中包括子步骤S25.目标SQL语句及编程语言实体类的生成,通过代码中对模版的填充构建出建表语句以及建立索引的语句;编程语言实体类的生成首先通过配置文件指定编程语言,接着根据编程语言加载对应的模版,然后使用目标表字段实体类进行填充,最后生成编程语言实体类。
[0017]另一方面,本专利技术提供一种在异构数据库之间迁移数据对象的系统,用于实施根据本专利技术所述的方法,所述系统包括应用层、引擎层和存储层;
[0018]所述应用层为软件使用者提供软件界面以及SDK软件开发应用包的接入方式;
[0019]所述引擎层用于读取使用者的配置信息,将待迁移数据库的数据对象解析成通用数据对象模型,再将通用数据对象模型生成目标数据库语言或者生成编程语言实体类;
[0020]所述存储层用于将目标数据库语言或者编程语言实体类写入到目标数据库中,并生成日志文件,记录迁移的信息。
[0021]进一步,通过所述应用层、引擎层和存储层的配合协作使得程序通过读取配置中
数据库的种类选择对应的驱动器,通过配置的链接连接到指定数据库,通过读取数据库的方式,将数据对象转换成通用的模型,最后再转换成目标数据对象。
[0022]本专利技术的主要优点在于通过应用软件或SDK软件开发应用包,两种方式进行数据库对象的迁移,迁移过程中不需要人工干预可自动完成,节省大量时间。并且生成SQL语句以及主流编程语言的实体类,节省了后续开发中的编写建表语句以及实体类的时间。
附图说明
[0023]图1为根据本专利技术实施例在异构数据库之间迁移数据对象的方法和系统架构示意图;
[0024]图2为根据本专利技术实施例在异构数据库之间迁移数据对象的方法和系统中数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在异构数据库之间迁移数据对象的方法,其特征在于,所述方法应用于具有应用层、引擎层和存储层的应用软件,包括以下步骤:S1.通过应用层为应用软件使用者提供软件界面和SDK软件开发应用包的接入方式;S2.通过引擎层读取使用者的配置信息,将待迁移数据库中的数据对象解析成通用数据对象模型,再将通用数据对象模型生成目标数据库语言或者生成编程语言实体类;S3.通过存储层将目标数据库语言或者编程语言实体类写入到目标数据库中,并生成日志文件。2.根据权利要求1所述的在异构数据库之间迁移数据对象的方法,其特征在于,步骤S1中,配置信息包括待迁移数据库的数据源驱动器、数据库链接、用户名、密码以及需要生成数据对象的目标数据库的数据源驱动器或者自定义驱动器文件位置、数据库链接、用户、密码;在应用层会对待迁移数据库和目标数据库进行连通性测试;连通性测试通过后使用SDK软件开发应用包,形成yaml配置文件。3.根据权利要求2所述的在异构数据库之间迁移数据对象的方法,其特征在于,步骤S2中包括子步骤S21.引擎层读取应用层的yaml配置文件并进行待迁移数据库的连接,将待迁移数据对象加载到程序对应的实体类中,通过判断待迁移数据库的类型,选择相应的驱动方式,使用驱动管理器连接待迁移数据库,驱动注册之后,将驱动管理器保存在已注册的驱动列表中。4.根据权利要求3所述的在异构数据库之间迁移数据对象的方法,其特征在于,步骤S2中包括子步骤S22.获取待迁移数据库表信息:通过驱动管理器的获取元数据方法获取待迁移数据库的元信息,通过元信息获取到所有的表名和表注释,将获取到的表名和表注释映射到待迁移数据库表实体类中,此时应用软件页面将显示所有的待迁移数据库表名和表注释;使用SDK软件开发应用包的方式将待迁移数据库表信息记录到日志文件;从而完成待迁移数据对象到待迁移数据库表实体类的映射。5.根据权利要求4所述的在异构数据库之间迁移数据对象的方法,其特征在于,步骤S2中包括子步骤S23.获取字段信息并生成通用数据对象模型:通过驱动管理器的预编译获取预编译对象,再通过预编译对象的getMetaData()方法获取结果集元数据,再通过getColumns()方法获取待迁移数据库表信息的字段...

【专利技术属性】
技术研发人员:刘名卓李锦刘莹张金银
申请(专利权)人:杭州比智科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1