本申请涉及数据库领域,尤其涉及一种数据迁移方法、装置、电子设备及存储介质。
背景技术:
1、随着用户存储数据量的逐渐增多,传统数据库的表结构缺陷影响其在存储和读取数据场景的性能,可能出现数据丢失、数据延迟以及系统宕机等问题。
2、在此基础上,通过设计具有优化的表结构的异构数据库来替代传统数据库,可以提升应用的性能。
3、针对异构数据库替代传统数据库,需要将传统数据库中的数据迁移到异构数据库,这个过程需要满足数据完整以及用户无感知等要求。然而传统数据库中存储有海量数据,决定了数据的迁移过程会消耗一定的时间,在这段时间内传统数据库仍会有用户访问,引起数据的修改,产生变更数据。因此,如何准确地对变更数据迁移是保证数据完整的关键。
4、在相关技术中,通过对传统数据库中的数据进行轮询的方式,可以将修改时间在上一次迁移的时间之后的数据确定为变更数据,从而对变更数据迁移。然而,这种方式是被动触发的,需要对传统数据库中的所有数据轮询,效率较低。
技术实现思路
1、本申请提供一种数据迁移方法、装置、电子设备及存储介质,用于提升数据迁移的效率。
2、第一方面,本申请提供一种数据迁移方法,包括:将原数据库中的原数据迁移到新数据库,所述原数据库为当前提供数据存储服务的数据库;通过消息队列,确定所述原数据对应的变更数据,所述消息队列中的消息来自所述原数据库的变更日志,所述变更日志中包括所述原数据对应的变更数据;将所述变更数据迁移到所述新数据库,并且覆盖对应的原数据;将新数据库确定为提供数据存储服务的数据库。
3、在一种可能的实施方式中,将原数据库中的原数据迁移到新数据库,包括:从所述原数据库中获取一组原数据及对应的编号;对所述一组原数据按照所述新数据库的结构进行转换处理,得到一组目标数据;将所述一组目标数据对应的编号放入迁移记录数据库;将所述一组目标数据插入所述新数据库。
4、在一种可能的实施方式中,通过消息队列,确定所述原数据对应的变更数据,包括:获取所述消息队列中的消息,所述消息为根据所述变更日志中包括的所述原数据对应的变更数据创建得到,所述消息包括所述变更数据对应的编号,所述变更数据对应的编号与对应的原数据所对应的编号一致;对所述消息进行解析,得到所述变更数据。
5、在一种可能的实施方式中,将新数据库确定为提供数据存储服务的数据库,包括:若所述变更数据对应的编号存在于所述迁移记录数据库,则将所述变更数据迁移到所述新数据库,并且覆盖对应的原数据。
6、在一种可能的实施方式中,所述方法还包括:获取所述变更数据的版本号,获取所述新数据库的版本号;若所述变更数据的版本号大于所述新数据库的版本号,则将所述变更数据迁移到所述新数据库,并且覆盖对应的原数据,以及将所述变更数据的版本号确定为所述新数据库的版本号。
7、在一种可能的实施方式中,将新数据库确定为提供数据存储服务的数据库,包括:将所述迁移记录数据库中的编号的数量与所述原数据库中的编号的数量的比值,确定为迁移率;获取切换开关的状态;若所述迁移率达到预设阈值,并且所述切换开关的状态为开状态,则将新数据库确定为提供数据存储服务的数据库。
8、在一种可能的实施方式中,将新数据库确定为提供数据存储服务的数据库之后,还包括:将所述原数据库的变更日志迁移到所述新数据库,并且将所述原数据库的变更日志确定为所述新数据库的变更日志。
9、第二方面,本申请提供一种数据迁移装置,包括:第一迁移模块,用于将原数据库中的原数据迁移到新数据库,所述原数据库为当前提供数据存储服务的数据库;确定模块,用于通过消息队列,确定所述原数据对应的变更数据,所述消息队列中的消息来自所述原数据库的变更日志,所述变更日志中包括所述原数据对应的变更数据;第二迁移模块,用于将所述变更数据迁移到所述新数据库,并且覆盖对应的原数据;切换模块,用于将新数据库确定为提供数据存储服务的数据库。
10、在一种可能的实施方式中,所述第一迁移模块,用于从所述原数据库中获取一组原数据及对应的编号;所述第一迁移模块,还用于对所述一组原数据按照所述新数据库的结构进行转换处理,得到一组目标数据;所述第一迁移模块,还用于将所述一组目标数据对应的编号放入迁移记录数据库;所述第一迁移模块,还用于将所述一组目标数据插入所述新数据库。
11、在一种可能的实施方式中,所述装置还包括:获取模块,用于获取所述消息队列中的消息,所述消息为根据所述变更日志中包括的所述原数据对应的变更数据创建得到,所述消息包括所述变更数据对应的编号,所述变更数据对应的编号与对应的原数据所对应的编号一致;解析模块,用于对所述消息进行解析,得到所述变更数据。
12、在一种可能的实施方式中,所述装置还包括:执行模块,用于若所述变更数据对应的编号存在于所述迁移记录数据库,则将所述变更数据迁移到所述新数据库,并且覆盖对应的原数据。
13、在一种可能的实施方式中,所述装置还包括:校验模块,用于获取所述变更数据的版本号,获取所述新数据库的版本号;所述校验模块,还用于若所述变更数据的版本号大于所述新数据库的版本号,则将所述变更数据迁移到所述新数据库,并且覆盖对应的原数据,以及将所述变更数据的版本号确定为所述新数据库的版本号。
14、在一种可能的实施方式中,所述装置还包括:判断模块,用于将所述迁移记录数据库中的编号的数量与所述原数据库中的编号的数量的比值,确定为迁移率;所述判断模块,还用于获取切换开关的状态;所述判断模块,还用于若所述迁移率达到预设阈值,并且所述切换开关的状态为开状态,则将新数据库确定为提供数据存储服务的数据库。
15、在一种可能的实施方式中,所述判断模块,还用于将所述原数据库的变更日志迁移到所述新数据库,并且将所述原数据库的变更日志确定为所述新数据库的变更日志。
16、第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面中任一项所述的方法。
17、第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行如第一方面中任一项所述的方法。
18、本申请提供的数据迁移方法、装置、电子设备及存储介质,包括:将原数据库中的原数据迁移到新数据库,所述原数据库为当前提供数据存储服务的数据库;通过消息队列,确定所述原数据对应的变更数据,所述消息队列中的消息来自所述原数据库的变更日志,所述变更日志中包括所述原数据对应的变更数据;将所述变更数据迁移到所述新数据库,并且覆盖对应的原数据;将新数据库确定为提供数据存储服务的数据库。以上方案,只有变更数据存在消息队列,相较于对原数据进行全量轮询,通过消息队列可以减少确定变更数据消耗的时间,从而提升数据迁移的效率。
1.一种数据迁移方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,将原数据库中的原数据迁移到新数据库,包括:
3.根据权利要求2所述的方法,其特征在于,通过消息队列,确定所述原数据对应的变更数据,包括:
4.根据权利要求3所述的方法,其特征在于,将新数据库确定为提供数据存储服务的数据库,包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求2-5任一项所述的方法,其特征在于,将新数据库确定为提供数据存储服务的数据库,包括:
7.根据权利要求6所述的方法,其特征在于,将新数据库确定为提供数据存储服务的数据库之后,还包括:
8.一种数据迁移装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项所述的方法。