异构数据库迁移方法及装置与流程

文档序号:37341803发布日期:2024-03-18 18:12阅读:13来源:国知局
异构数据库迁移方法及装置与流程

本技术涉及大数据领域,具体涉及一种异构数据库迁移方法及装置。


背景技术:

1、在当前计算机系统广泛普及的背景下,数据库已成为各种计算机系统、网站和软件中不可或缺的组成部分,负责存储、管理和处理大量的数据。随着信息技术的不断演进,it架构经历了转型和分布式技术的广泛应用,促使数据库从传统的集中式数据库向新型分布式数据库的转变,这种转变在各个行业的信息系统中得到广泛推广。

2、在数据库迁移的过程中,通常涉及从一个数据库产品迁移到另一个不同的数据库产品,也即异构数据库迁移。为了成功进行这种迁移,当前通常的做法是从源数据库中获取写入操作的日志并对日志进行解析,提取出相应的sql文本,将其拼接成sql语句,最后在目标数据库上执行上述sql语句(数据回放)。

3、然而,这种方法在实际使用中存在一个明显的瓶颈,即拼接好的sql语句通常为insert语句,需要逐条写入目标数据库,特别是在源数据库数据量较大的情况下,逐条写入的效率往往无法满足迁移所需的时间窗口。这就导致了写入效率成为迁移过程中的一个常见瓶颈,并且这类问题在迁移源和目标数据库之间存在不同数据库产品的情况下更为突出。


技术实现思路

1、针对现有技术中的问题,本技术提供一种异构数据库迁移方法及装置,能够适用于所有通过日志进行拼装sql进行回放的技术原理的异构数据库迁移,采用同类sql聚合的方式对sql迁移效率进行评估,并通过优化方式提升异构数据库系统迁移的效率。

2、为了解决上述问题中的至少一个,本技术提供以下技术方案:

3、根据本技术实施例的第一方面,本技术提供一种异构数据库迁移方法,包括:

4、响应于接收到原数据库日志的结构化查询语言sql,基于预设的相似度阈值对所述sql进行相似度归类,得到sql的同类聚合结果集;

5、将所述结果集中的sql在目标数据库进行预回放,预估每一类sql的回放效率,并确定所述结果集的总回放效率;

6、响应于所述总回放效率满足当前的投产迁移窗口要求,将所述结果集中的sql在目标数据库进行目标端回放;

7、响应于所述总回放效率不满足当前的投产迁移窗口要求,将所述结果集中的sql进行回放效率优化,并将优化后的sql在目标数据库进行目标端回放。

8、根据本技术的任一实施方式,所述基于预设的相似度阈值对所述sql进行相似度归类,得到sql的同类聚合结果集,包括:

9、将接收到的第一条sql计入唯一sql列表;

10、基于预设的相似度阈值,将剩余sql与所述唯一sql列表中的sql进行相似度循环比对,直至全部sql计入所述唯一sql列表或新增的相似sql列表。

11、根据本技术的任一实施方式,所述基于预设的相似度阈值,将剩余sql与所述唯一sql列表中的sql进行相似度循环比对,直至全部sql计入所述唯一sql列表或新增的相似sql列表,包括:

12、响应于当前sql与所述唯一sql列表中的sql的文本相似度不高于所述相似度阈值,将所述当前sql计入所述唯一sql列表;

13、响应于当前sql与所述唯一sql列表中的sql的文本相似度高于所述相似度阈值,将所述当前sql计入所述相似sql列表;

14、在全部sql计入所述唯一sql列表或所述相似sql列表后,得到所述sql的同类聚合结果集。

15、根据本技术的任一实施方式,在将所述结果集中的sql在目标数据库进行预回放后,还包括:

16、在每一条sql写入所述目标数据库后,将所述聚合结果集中对应的sql删除。

17、根据本技术的任一实施方式,所述将所述结果集中的sql进行回放效率优化,并将优化后的sql在目标数据库进行目标端回放,包括:

18、响应于插入的目标表中存在非主键、且非唯一的索引,确定迁移步骤中的索引建立顺序;

19、响应于所述索引建立先于数据插入,将所述顺序调整为数据插入先于索引建立;

20、响应于调整后的所述总回放效率满足当前的投产迁移窗口要求,将所述结果集中的sql在目标数据库进行目标端回放。

21、根据本技术的任一实施方式,还包括:

22、响应于调整后的所述总回放效率不满足当前的投产迁移窗口要求,根据所述每一类sql的回放效率以及每一类中的sql条数,确定每一类sql的总执行时间;

23、根据预设的传参并行度以及所述每一类sql的总执行时间,对所述结果集中的sql类别进行拆分;

24、响应于调整后的所述总回放效率满足当前的投产迁移窗口要求,将所述结果集中的sql在目标数据库进行目标端回放。

25、根据本技术的任一实施方式,还包括:

26、响应于调整后的所述总回放效率不满足当前的投产迁移窗口要求,根据预设的大表阈值参数,生成大表清单,所述大表阈值参数根据所述sql的行数确定;

27、根据当前系统的资源配置确定当前的高性能并发参数,并根据所述高性能并发参数对所述大表清单中的大表以及表上的sql进行拆分,得到多个小表以及对应数量的sql集合;

28、将所述对应数量的sql分别在对应的小表上运行,并将运行后的所述多个小表重新合成为对应的原大表,并将所述结果集中的sql在目标数据库进行目标端回放。

29、根据本技术实施例的第二方面,本技术提供一种异构数据库迁移装置,包括:

30、同类聚合模块,用于:响应于接收到原数据库日志的结构化查询语言sql,基于预设的相似度阈值对所述sql进行相似度归类,得到sql的同类聚合结果集;

31、效率预估模块,用于:将所述结果集中的sql在目标数据库进行预回放,预估每一类sql的回放效率,并确定所述结果集的总回放效率;

32、数据回放模块,用于:响应于所述总回放效率满足当前的投产迁移窗口要求,将所述结果集中的sql在目标数据库进行目标端回放;

33、效率优化模块,用于:响应于所述总回放效率不满足当前的投产迁移窗口要求,将所述结果集中的sql进行回放效率优化,并将优化后的sql在目标数据库进行目标端回放。

34、根据本技术的任一实施方式,所述同类聚合模块包括:

35、聚合启动单元,用于:将接收到的第一条sql计入唯一sql列表;

36、相似分析单元,用于:基于预设的相似度阈值,将剩余sql与所述唯一sql列表中的sql进行相似度循环比对,直至全部sql计入所述唯一sql列表或新增的相似sql列表。

37、根据本技术的任一实施方式,所述相似分析单元包括:

38、唯一归纳单元,用于:响应于当前sql与所述唯一sql列表中的sql的文本相似度不高于所述相似度阈值,将所述当前sql计入所述唯一sql列表;

39、同类归纳单元,用于:响应于当前sql与所述唯一sql列表中的sql的文本相似度高于所述相似度阈值,将所述当前sql计入所述相似sql列表;

40、结果确定单元,用于:在全部sql计入所述唯一sql列表或所述相似sql列表后,得到所述sql的同类聚合结果集。

41、根据本技术的任一实施方式,在所述效率预估模块将所述结果集中的sql在目标数据库进行预回放后,还包括删除模块,用于:

42、在每一条sql写入所述目标数据库后,将所述聚合结果集中对应的sql删除。

43、根据本技术的任一实施方式,所述效率优化模块包括索引优化模块,具体包括:

44、索引确定单元,用于:响应于插入的目标表中存在非主键、且非唯一的索引,确定迁移步骤中的索引建立顺序;

45、顺序调整单元,用于:响应于所述索引建立先于数据插入,将所述顺序调整为数据插入先于索引建立;

46、数据回放单元,用于:响应于调整后的所述总回放效率满足当前的投产迁移窗口要求,将所述结果集中的sql在目标数据库进行目标端回放。

47、根据本技术的任一实施方式,所述效率优化模块还包括文本优化模块,具体包括:

48、时间确定单元,用于:响应于调整后的所述总回放效率不满足当前的投产迁移窗口要求,根据所述每一类sql的回放效率以及每一类中的sql条数,确定每一类sql的总执行时间;

49、并行度拆分单元,用于:根据预设的传参并行度以及所述每一类sql的总执行时间,对所述结果集中的sql类别进行拆分;

50、数据回放单元,用于:响应于调整后的所述总回放效率满足当前的投产迁移窗口要求,将所述结果集中的sql在目标数据库进行目标端回放。

51、根据本技术的任一实施方式,所述效率优化模块包括表拆分模块,具体包括:

52、表单确定单元,用于:响应于调整后的所述总回放效率不满足当前的投产迁移窗口要求,根据预设的大表阈值参数,生成大表清单,所述大表阈值参数根据所述sql的行数确定;

53、大表拆分单元,用于:根据当前系统的资源配置确定当前的高性能并发参数,并根据所述高性能并发参数对所述大表清单中的大表以及表上的sql进行拆分,得到多个小表以及对应数量的sql集合;

54、合并回放单元,用于:将所述对应数量的sql分别在对应的小表上运行,并将运行后的所述多个小表重新合成为对应的原大表,并将所述结果集中的sql在目标数据库进行目标端回放。

55、根据本技术实施例的第三方面,本技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的异构数据库迁移方法的步骤。

56、根据本技术实施例的第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的异构数据库迁移方法的步骤。

57、根据本技术实施例的第五方面,本技术提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述的异构数据库迁移方法的步骤。

58、由上述技术方案可知,本技术提供一种异构数据库迁移方法及装置,通过响应于接收到原数据库日志的结构化查询语言sql,基于预设的相似度阈值对所述sql进行相似度归类,得到sql的同类聚合结果集;将所述结果集中的sql在目标数据库进行预回放,预估每一类sql的回放效率,并确定所述结果集的总回放效率;响应于所述总回放效率满足当前的投产迁移窗口要求,将所述结果集中的sql在目标数据库进行目标端回放;响应于所述总回放效率不满足当前的投产迁移窗口要求,将所述结果集中的sql进行回放效率优化,并将优化后的sql在目标数据库进行目标端回放。能够适用于所有通过日志进行拼装sql进行回放的技术原理的异构数据库迁移,采用同类sql聚合的方式对sql迁移效率进行评估,并通过优化方式提升异构数据库系统迁移的效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1