一种数据库迁移平台和数据库迁移方法与流程

    专利2025-04-18  20


    本发明涉及数据库海量数据迁移领域,具体涉及一种数据库迁移平台和数据库迁移方法。


    背景技术:

    1、当今社会,数据被广泛应用于各个领域,成为推动创新和发展的重要资源。随着中国信创产业的快速发展,国内企业和组织积累了大量宝贵的数据资产。然而,由于技术发展和业务需求的变化,有时需要将这些数据从一个数据库迁移到另一个数据库。

    2、在这个背景下,实施国产信创数据库数据迁移变得至关重要。首先,国产数据库具备更好的适应性和定制性,能够更好地满足国内企业和组织的需求。其次,数据迁移可以提高数据管理的效率和安全性,确保数据的完整性和可靠性。此外,国产数据库还能够更好地保护数据隐私,避免因数据传输过程中的漏洞而导致的信息泄露风险。

    3、实施国产信创数据库数据迁移不仅可以提升数据管理和运营效率,还有助于支持国内创新和发展。通过将数据迁移到国产数据库,可以促进本土技术的发展和应用,推动中国信创产业的进一步壮大。因此,为了实现数据资产的最大化利用和保护,国产信创数据库数据迁移是非常必要的一项举措。

    4、目前市面上常用的开源数据迁移工具,主要有国外的sqoop以及国内的datax两种,其中发明人发现sqoop在进行国产信创数据库数据迁移时,主要有以下问题:

    5、1.支持的数据库种类少,sqoop主要用于传统数据库(如mysql、oracle)的数据同步,对于国产信创数据库均不支持,需要用户自己开发对应插件,增加使用的难度。

    6、2.功能限制:sqoop的功能相对较为基础,主要用于简单的数据导入和导出。对于复杂的数据迁移需求,例如数据转换、数据清洗、增量同步等,可能需要额外的开发和定制。

    7、datax相比于sqoop,支持了更多种类的国产数据库,但在使用中也存在着诸多的问题,例如:

    8、1.兼容性问题,datax虽然支持多种数据库,但国产数据库的特定功能和语法可能与datax的默认插件不完全兼容。这可能需要额外的定制和开发工作,以确保数据迁移过程的顺利进行。

    9、2.没有页面化配置,datax是一种脚本工具,没有提供页面化的快速配置流程,在使用中,配置项完全需要用户手动配置源表和目标表信息,任务开发效率很低。

    10、3.可靠性问题,datax作为单机版的数据同步工具,在当前服务器出现宕机、卡顿等情况时无法使用,很难保证企业日常数据批量传输时的可靠性。


    技术实现思路

    1、有鉴于此,本发明实施例的目的在于提供一种数据库迁移平台和数据库迁移方法解决企业在国产数据库数据迁移时遇到的问题。

    2、为达上述目的,第一方面,本发明实施例提供了一种数据库迁移平台,所述平台包括动态翻牌库模块、数据迁移平台管理端和迁移任务引擎端;

    3、所述动态翻牌库模块,用于存储数据读取参数表,所述表包含翻牌参数字段,所述翻牌参数字段用于存储迁移任务的当前翻牌参数;

    4、所述数据迁移平台管理端包括迁移任务配置模块和翻牌库查询模块;

    5、所述迁移任务配置模块,用于在配置迁移任务时针对上游系统的源表数据进行字段分析,将所述源表数据根据预设切分规则切分成多块以进行串行传输;在所述动态翻牌库模块中存入一条数据,其中所述翻牌参数字段存储该迁移任务的初始翻牌参数;在迁移任务中配置数据库增量抽取语句,翻牌参数采用占位符动态替换;

    6、所述翻牌库查询模块,用于在每次迁移任务执行前,去所述动态翻牌库模块查询该当前迁移任务的当前翻牌参数,并将所述当前翻牌参数提交至迁移任务引擎端;

    7、所述迁移任务配置模块,还用于在迁移任务执行成功时修改此次迁移任务的翻牌参数,获得修改后的翻牌参数;

    8、所述翻牌库查询模块,还用于在本次迁移任务执行成功时将修改后的翻牌参数提交到所述迁移任务引擎端以执行下一次迁移任务;

    9、所述迁移任务引擎端,用于根据所述增量抽取语句和所述当前翻牌参数执行迁移任务。

    10、在一些可能的实施方式中,所述预设切分规则包括:含有日期字段的表,采用按日或按月切分;不含有日期字段的表,采用按主键或行号进行切分;

    11、所述表还包含唯一标识字段和任务标识字段,所述唯一标识字段是所述数据读取参数表的主键,表明这条记录的唯一性,所述任务标识字段用于唯一标识使用这条参数的迁移任务。

    12、在一些可能的实施方式中,所述迁移任务引擎端,还用于当本次迁移任务执行成功时,返回任务成功标记给所述数据迁移平台管理端,以通知所述数据迁移平台管理端本次迁移任务已完成;以及当本次迁移任务执行失败时,返回任务失败标记给所述数据迁移平台管理端;

    13、所述迁移任务配置模块,还用于在本次迁移任务执行失败时不修改此次迁移任务的翻牌参数;所述翻牌库查询模块,还用于在本次迁移任务执行失败时重新提交翻牌参数至迁移任务引擎端,以重启失败的迁移任务。

    14、在一些可能的实施方式中,所述数据库迁移平台还包括:驱动目录,用于存储mysql驱动器、oracle驱动器、gaussdb驱动器、gbase驱动器、kingbase驱动器在内的任意一种或多种jdbc驱动;

    15、所述迁移任务引擎端包括:

    16、数据库驱动动态加载模块,配置有驱动适配器,用于动态地从指定所述驱动目录下加载所需连接数据库的jdbc驱动至java虚拟机上下文环境中,并利用数据库连接信息和所述jdbc驱动分别与目标数据库和源数据库建立jdbc连接;以及,

    17、基于spark分布式内存计算框架的数据处理模块,配置有多个独立的spark读写插件,每个spark读写插件包含对特定类型数据库的读数据操作方法和写数据操作方法;所述数据处理模块用于根据源系统或目标系统的数据源类型,选择对应的spark读写插件,并将所选择的spark读写插件提交至spark集群进行执行。

    18、在一些可能的实施方式中,每个所述spark读写插件是独立的jar包,所述spark读写插件制定有标准接入接口,所述标准接入接口是指所有的数据库spark读写插件读和写的接口方法名称,入参和出参都是一致的。

    19、在一些可能的实施方式中,所述占位符为日期格式的字符串,用于替换翻牌库中当前翻牌参数的具体值。

    20、在一些可能的实施方式中,所述迁移任务引擎端还包括:

    21、远程数据库工具调用模块,用于从上游源服务器读取数据并导出成文件;向文件服务器的文件存储区中写入导出的文件;通过远程安全外壳协议登录至所述文件服务器,所述文件服务器上预先安装有相应数据库的数据导入工具;触发所述文件服务器执行命令调用相应数据库的数据导入工具;通过所述相应数据库的数据导入工具执行导入操作,将导出的文件写入目标服务器。

    22、在一些可能的实施方式中,所述远程数据库工具调用模块,具体用于将数据库导入工具的命令以及相关参数拼接在一起,形成数据导入工具可执行的命令;所述相关参数包括如下任意多个配置项:文件全路径信息、文件分隔符、换行符、编码格式等。

    23、第二方面,提供一种所述的数据库迁移平台的数据库迁移方法,所述方法包括:

    24、动态翻牌库模块存储数据读取参数表,所述表包含翻牌参数字段,所述翻牌参数字段用于存储迁移任务的当前翻牌参数;

    25、迁移任务配置模块在配置迁移任务时针对上游系统的源表数据进行字段分析,将所述源表数据根据预设切分规则切分成多块以进行串行传输;在所述动态翻牌库模块中存入一条数据,其中所述翻牌参数字段存储该迁移任务的初始翻牌参数;在迁移任务中配置数据库增量抽取语句,翻牌参数采用占位符动态替换;

    26、翻牌库查询模块在每次迁移任务执行前,去所述动态翻牌库模块查询该当前迁移任务的当前翻牌参数,并将所述当前翻牌参数提交至迁移任务引擎端;

    27、所述迁移任务配置模块在迁移任务执行成功时修改此次迁移任务的翻牌参数,获得修改后的翻牌参数;

    28、所述翻牌库查询模块在本次迁移任务执行成功时将修改后的翻牌参数提交到所述迁移任务引擎端以执行下一次迁移任务;

    29、所述迁移任务引擎端根据所述增量抽取语句和所述当前翻牌参数执行迁移任务。

    30、在一些可能的实施方式中,所述预设切分规则包括:含有日期字段的表,采用按日或按月切分;不含有日期字段的表,采用按主键或行号进行切分;所述数据读取参数表还包含唯一标识字段和任务标识字段,所述唯一标识字段是所述数据读取参数表的主键,表明这条记录的唯一性,所述任务标识字段用于唯一标识使用这条参数的迁移任务。

    31、在一些可能的实施方式中,所述占位符为日期格式的字符串,用于替换翻牌库中当前翻牌参数的具体值。

    32、进一步地,所述方法还包括:

    33、当本次迁移任务执行成功时,所述迁移任务引擎端返回任务成功标记给所述数据迁移平台管理端,以通知所述数据迁移平台管理端本次迁移任务已完成;

    34、当本次迁移任务执行失败时,所述迁移任务引擎端返回任务失败标记给所述数据迁移平台管理端;

    35、在本次迁移任务执行失败时,所述迁移任务配置模块不修改此次迁移任务的翻牌参数;

    36、在本次迁移任务执行失败时,所述翻牌库查询模块重新提交翻牌参数至迁移任务引擎端,以重启失败的迁移任务。

    37、在一些可能的实施方式中,所述方法还包括以下步骤:

    38、所述迁移任务引擎端中的驱动适配器动态地从指定驱动目录下加载所需连接数据库的jdbc驱动至java虚拟机上下文环境中;

    39、驱动适配器利用数据库连接信息和所述jdbc驱动分别与目标数据库和源数据库建立jdbc连接;

    40、所述迁移任务引擎端中的数据处理模块根据源系统或目标系统的数据源类型,选择对应的spark读写插件,并提交至spark集群进行数据处理;

    41、所述迁移任务引擎端中的远程数据库工具调用模块根据用户选择的数据写入形式,执行数据写入目标数据库的操作,所述数据写入形式包括批量插入形式或使用数据导入工具的形式。

    42、第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第二方面所述的任意一种方法。

    43、第四方面,提供一种计算机设备,其包括:

    44、一个或多个处理器;

    45、存储装置,用于存储一个或多个程序;

    46、当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现第二方面所述的任意一种方法。

    47、上述技术方案具有如下有益效果:

    48、本发明实施例基于翻牌库的任务批次流程,实现了任务的自动化运行,解决了断点续传问题。

    49、本发明实施例基于spark的任务运行方案,极大提高了任务的性能、可靠性,成功率。

    50、本发明实施例的多种入库方式切换,提高了海量数据的写入效率。

    51、本发明实施例的图形化的配置极大提高了用户开发数据迁移任务的效率。


    技术特征:

    1.一种数据库迁移平台,其特征在于,所述平台包括:动态翻牌库模块、数据迁移平台管理端和迁移任务引擎端;

    2.根据权利要求1所述的数据库迁移平台,其特征在于,所述预设切分规则包括:含有日期字段的表,采用按日或按月切分;不含有日期字段的表,采用按主键或行号进行切分;

    3.根据权利要求1所述的数据库迁移平台,其特征在于,

    4.根据权利要求1所述的数据库迁移平台,其特征在于,所述数据库迁移平台还包括:驱动目录,用于存储mysql驱动器、oracle驱动器、gaussdb驱动器、gbase驱动器、kingbase驱动器在内的任意一种或多种jdbc驱动;

    5.根据权利要求4所述的数据库迁移平台,其特征在于,每个所述spark读写插件是独立的jar包,所述spark读写插件制定有标准接入接口,所述标准接入接口是指所有的数据库spark读写插件读和写的接口方法名称,入参和出参都是一致的。

    6.根据权利要求1所述的数据库迁移平台,其特征在于,所述占位符为日期格式的字符串,用于替换翻牌库中当前翻牌参数的具体值。

    7.根据权利要求1所述的数据库迁移平台,其特征在于,所述迁移任务引擎端还包括:

    8.根据权利要求7所述的数据库迁移平台,其特征在于,所述远程数据库工具调用模块,具体用于将数据库导入工具的命令以及相关参数拼接在一起,形成数据导入工具可执行的命令;所述相关参数包括如下任意多个配置项:文件全路径信息、文件分隔符、换行符、编码格式等。

    9.一种权利要求1所述的数据库迁移平台的数据库迁移方法,其特征在于,所述方法包括:

    10.根据权利要求9所述的数据库迁移方法,其特征在于,所述方法还包括以下步骤:


    技术总结
    本发明提供一种数据库迁移平台和数据库迁移方法,该平台包括:翻牌库模块、管理端和引擎端;翻牌库模块存储表,表包含翻牌参数字段;管理端包括配置模块和查询模块;配置模块在配置迁移任务时将源表数据切分成多块以进行串行传输;在翻牌库模块中存入一条数据,翻牌参数字段存储当前翻牌参数;在迁移任务中配置增量抽取语句;查询模块在每次迁移任务执行前查询当前翻牌参数并提交至引擎端;配置模块还在迁移任务执行成功时修改此次迁移任务的翻牌参数;查询模块将修改后的翻牌参数提交到引擎端以执行下一次迁移任务;引擎端根据增量抽取语句和当前翻牌参数执行迁移任务。本发明基于翻牌库的任务批次流程,实现任务自动化运行。

    技术研发人员:干从勇,肖姝,李霄雨,张龙龙,崔念龙
    受保护的技术使用者:北京宇信科技集团股份有限公司
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-85687.html

    最新回复(0)