本发明专利技术提供一种数据迁移方法,包括:响应于目标程序的被触发,获取传入的迁移参数;根据所述迁移参数,匹配和触发对应的策略父类,执行相应的迁移策略;每个所述策略父类对应一种所述迁移策略;根据所述迁移参数和所选择的策略父类,触发相应的迁移子类,所述迁移子类继承自所述策略父类;根据所述迁移参数,被触发的所述迁移子类按照所述迁移策略分批从源业务系统获取目标数据;所述迁移子类按照所述迁移策略将所述目标数据分批写入目标数据库。还提供一种数据迁移装置。本发明专利技术的目的在于提供一种能兼容多个业务系统、便于扩展和维护的大数据迁移方法。大数据迁移方法。大数据迁移方法。
【技术实现步骤摘要】
一种数据迁移方法及装置
[0001]本专利技术公开一种数据处理方法,尤其涉及一种数据迁移方法及装置。
技术介绍
[0002]目前存在一种需求,从降低风险和审计角度上看,每个业务系统都需要将订单和订单关联信息定时同步到业财系统进行统计对账、出账、以及进行一些数据调整和处理。而正因为需要每天同时将多个业务系统的数据汇集在业财系统,伴随而来的是多个业务系统数据同步的难度以及繁琐度,最后还涉及到管理各种迁移方法的代码复杂度以及未来可维护性。
[0003]而且随着各自业务发展,订单量也越来越大,尤其是物联网卡系统每月产生的数百万级的数据量,如果迁移不当会容易使应用崩溃或数据库服务器宕机。
[0004]目前行业领域内很多都是使用云平台提供的跨数据库迁移同步技术,虽然数据支持Oracle到Mysql数据源的转换,但是订单数据迁移时还需要进一步做一些处理,例如对目标数据进行调整、补充,合并多个源表数据等。表结构和目标表结构不一样时,该方案不能得到很好的应用。特别是如果业务系统的数据库没有部署在一个云服务上,则使用不了该方案。
[0005]目前行业使用的技术不尽相同,传统的做法是调用各个业务系统的接口去获取所需要的数据,但是每个业务系统都需要外放这个数据接口,不利于维护和扩展,而且数据量庞大时,使用接口已经满足不了所需要求,还容易影响了业务系统的正常运行。那么就会想到在迁移目标系统上做多数据源配置,在迁移系统上的各自对应的业务模块中或微服务里面去做数据迁移。然而所需迁移的方式各不相同,业务A只需要全量迁移,业务B需要定时T
‑
N迁移,业务C则都需要,那么都各自实现一套微服务的话每个模块里面的代码冗余程度比较高。而且如果需要新扩展一个迁移项目或者接入新的业务类型,那对应需要针对这个目标业务系统再写一套迁移的方案,维护成本随着代码冗余程度提高而上升。对于一些当天产生的数十万甚至上百万级别的数据的情况做不到动态调节迁移量,导致定时器的服务宕机,还影响了其他正常的迁移计划,缺少迁移的数据就需要隔天监测并重新再次手动触发迁移。
技术实现思路
[0006]鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种能兼容多个业务系统、便于扩展和维护的大数据迁移方法。
[0007]本申请方案提供一种数据迁移方法,包括:
[0008]响应于目标程序的被触发,获取传入的迁移参数;
[0009]根据所述迁移参数,匹配和触发对应的策略父类,执行相应的迁移策略;每个所述策略父类对应一种所述迁移策略;
[0010]根据所述迁移参数,触发相应的迁移子类,所述迁移子类继承自所述策略父类;
[0011]根据所述迁移参数,被触发的所述迁移子类按照所述迁移策略分批从源业务系统获取目标数据;
[0012]所述迁移子类按照所述迁移策略将所述目标数据分批写入目标数据库。
[0013]进一步地,所述迁移参数包括时间范围、源业务系统标识、源数据表名、迁移版本号。
[0014]进一步地,所述的根据所述迁移参数,匹配对应的迁移策略,包括:使用所述迁移参数中的源业务系统标识和源数据表名,遍历预设了迁移注解的所有迁移子类,匹配选择对应迁移子类上的注解中的所述迁移策略。
[0015]进一步地,所述迁移策略包括时间切分策略和全量分批策略。
[0016]进一步地,所述的根据所述迁移参数,匹配和触发对应的策略父类,包括:使用所述迁移参数中的源业务系统标识和源数据表名,遍历预设的迁移注解,匹配选择对应的所述策略父类;所述迁移注解包括源业务系统标识、源数据表名、对应的所述策略父类及迁移子类。
[0017]进一步地,所述迁移策略包括时间切分策略和全量分批策略。
[0018]进一步地,若执行所述时间切分策略,则根据所述时间范围查询所述目标数据的数据量,判断该数据量是否超过阈值;若超过,则按时间减半切分对所述目标数据进行分批,循环上述判断和减半切分,直至分批后的每批所述目标数据都不超过阈值为止。
[0019]进一步地,若执行所述全量分批策略,则在所述时间范围条件内从0开始按照设定的阈值进行分页计算,根据所述分页条数范围进行查询数据和迁移,循环上述分页计算和迁移,直至计算后的分页条件内查不到数据为止。
[0020]进一步地,还包括:新增所述迁移子类的步骤如下:配置所述迁移注解,并在合适的所述策略父类下新增所述迁移子类;所述迁移子类重写其所继承的所述策略父类的数据获取方法及数据写入方法。
[0021]进一步地,在获取所述目标数据后,先将所述目标数据包装为软引用对象,再写入所述目标数据库。
[0022]还提供一种数据迁移装置,包括:
[0023]参数获取组件,响应于目标程序的被触发,获取传入的迁移参数;
[0024]迁移注解,根据所述迁移参数,匹配触发对应的策略父类和迁移子类;
[0025]所述策略父类,执行相应的迁移策略;每个所述策略父类对应一种所述迁移策略;
[0026]所述迁移子类,根据所述迁移参数从源业务系统获取目标数据,并按照所述迁移策略分批将所述目标数据写入目标数据库;所述迁移子类继承自所述策略父类。
[0027]进一步地,还包括:组件新增模块,通过配置所述迁移注解,并在合适的所述策略父类下新增所述迁移子类以新增所述迁移组件;所述迁移子类重写其所继承的所述策略父类的数据获取方法及数据写入方法。
[0028]本申请的改进带来如下优点:本方法统一了多个源业务系统的数据迁移入口,实现了迁移入口的同一性;对迁移子类进行了插件化处理,提高了可扩展性,减少了迁移功能的耦合度,减少了代码冗余;使用了相同的迁移流程,节省了研发和学习成本,大大提高代码的可维护性。
附图说明
[0029]图1为本申请实施例提供的一种数据迁移方法的系统架构示意图。
[0030]图2为本申请实施例提供的一种数据迁移方法的步骤流程示意图。
[0031]图3为本申请实施例提供的一种数据迁移方法的结构流程示意图。
[0032]图4为本申请实施例提供的一种数据迁移装置的结构示意图。
具体实施方式
[0033]以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。
[0034]图1为本专利技术提供的一种数据迁移方法的系统架构示意图,如图1所示,该系统架构包括多个源业务系统100、迁移平台200及目标数据库300。
[0035]其中,多个源业务系统可以是多个存储有目标数据的数据库、服务器、业务平台等,每个源业务系统中可以存储有多种不同数据结构的数据表。迁移平台中设置的目标程序可以对接和访问多个不同的源业务系统并获取其数据,然后将目标数据写入到目标数据库中。迁移平台可以是本地平台,也可以是云平台;本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种数据迁移方法,其特征在于,包括:响应于目标程序的被触发,获取传入的迁移参数;根据所述迁移参数,匹配和触发对应的策略父类,执行相应的迁移策略;每个所述策略父类对应一种所述迁移策略;根据所述迁移参数,触发相应的迁移子类,所述迁移子类继承自所述策略父类;根据所述迁移参数,被触发的所述迁移子类按照所述迁移策略分批从源业务系统获取目标数据;所述迁移子类按照所述迁移策略将所述目标数据分批写入目标数据库。2.根据权利要求1所述的一种数据迁移方法,其特征在于,所述迁移参数包括时间范围、源业务系统标识、源数据表名、迁移版本号。3.根据权利要求2所述的一种数据迁移方法,其特征在于,所述的根据所述迁移参数,匹配和触发对应的策略父类,包括:使用所述迁移参数中的源业务系统标识和源数据表名,遍历迁移注解中的所有迁移子类,匹配选择对应的迁移子类;所述迁移注解包括源业务系统标识、源数据表名、对应的策略标识及迁移延时天数,该延时天数让定时器执行迁移时计算所述迁移子类所需迁移的时间范围。4.根据权利要求3所述的一种数据迁移方法,其特征在于,所述迁移策略包括时间切分策略和全量分批策略。5.根据权利要求4所述的一种数据迁移方法,其特征在于,若执行所述时间切分策略,则根据所述时间范围查询所述目标数据的数据量,判断该数据量是否超过阈值;若超过,则按时间减半切分对所述目标数据进行分批,循环上述判断和减半切分,直至分批后的每批所述目标数据...
【专利技术属性】
技术研发人员:何智鸿,郑广彬,廖阳春,
申请(专利权)人:广州助蜂网络科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。