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

文档序号:34727591发布日期:2023-07-07 21:41阅读:28来源:国知局
数据库表数据迁移方法及装置与流程

本说明书涉及数据处理,特别涉及一种数据库表数据迁移方法及装置。


背景技术:

1、在生产和测试环境,由于业务要求和资源切换等原因需要快速将已有库表数据迁移到新的数据库。数据迁移有很多成熟的方案,第一种可以通过数据迁移工具来操作。第二种方式是通过dump文件,将需要的数据导出后再导入目标数据库。然而,第一种方式,需要在生产环境配置迁移工具,操作权限上有限制。此外不够灵活,对于多表联合数据导入的情况不适用。第二种方式,通过dump文件迁移耗时较长,会影响生产用数的实时性。

2、针对上述问题,目前尚未提出有效的解决方案。


技术实现思路

1、本说明书实施例提供了一种数据库表数据迁移方法及装置,以解决现有技术中的数据迁移方法效率低的问题。

2、本说明书实施例提供了一种数据库表数据迁移方法,包括:

3、获取待迁移的查询结果集;所述查询结果集中包括表数据以及对应的元数据;对所述元数据进行解析,得到所述表数据中各列数据对应的数据类型信息;

4、基于所述数据类型信息生成读取数组;所述读取数组中包括所述各列数据对应的解析对象;所述解析对象中封装有用于解析表数据的流程;基于所述数据类型信息生成写入数组;所述写入数组中包括所述各列数据对应的写入对象;所述写入对象中封装有用于设置表数据的流程;

5、利用所述读取数组从所述查询结果集中读取各列数据;利用所述写入数组将解析得到的各列数据写入目标数据库表。

6、在一个实施例中,获取待迁移的查询结果集,包括:

7、接收数据迁移指令;所述数据迁移指令中包括查询语句;

8、执行所述查询语句,以从源数据库表中查询表数据,得到待迁移的查询结果集。

9、在一个实施例中,执行所述查询语句,以从源数据库表中查询表数据,包括:

10、通过jdbc api接口与源数据库建立连接;

11、执行所述查询语句,以从所述源数据库的源数据库表中查询表数据。

12、在一个实施例中,所述数据类型信息包括以下至少之一:日期数据类型、数字数据类型、字符数据类型、字符串数据类型。

13、在一个实施例中,对所述元数据进行解析,得到所述表数据中各列数据对应的数据类型信息,包括:

14、对所述元数据进行解析,得到所述表数据中各列数据对应的数据类型信息和列信息;所述列信息包括以下至少之一:列名、列大小以及列是否为空。

15、在一个实施例中,基于所述数据类型信息生成读取数组,包括:

16、基于所述各列数据对应的数据类型信息,生成所述各列数据对应的解析对象;

17、将所述各列数据对应的列标识和解析对象关联存储在数组中,得到读取数组。

18、在一个实施例中,基于所述数据类型信息生成写入数组,包括:

19、基于所述各列数据对应的数据类型信息,生成所述各列数据对应的写入对象;

20、将所述各列数据对应的列标识和写入对象关联存储在数组中,得到写入数组。

21、在一个实施例中,利用所述读取数组从所述查询结果集中读取各列数据,包括:

22、基于所述各列数据对应的列标识调用所述读取数组中对应的解析对象对所述各列数据进行解析。

23、在一个实施例中,利用所述写入数组将解析得到的各列数据写入目标数据库表,包括:

24、基于解析得到的各列数据对应的列标识调用所述写入数组中对应的写入对象对解析得到的各列数据进行设置,以写入目标数据库表。

25、在一个实施例中,所述查询结果集包括多个查询结果集,所述多个查询结果集中各查询结果集中携带有对应的源数据库标识和目标数据库标识;

26、相应的,基于所述数据类型信息生成读取数组,包括:

27、基于所述各查询结果集对应的数据类型信息生成所述各查询结果集对应的读取数组;所述读取数组中携带有对应的源数据库标识和目标数据库标识。

28、本说明书实施例还提供了一种数据库表数据迁移装置,包括:

29、获取模块,用于获取待迁移的查询结果集;所述查询结果集中包括表数据以及对应的元数据;对所述元数据进行解析,得到所述表数据中各列数据对应的数据类型信息;

30、生成模块,用于基于所述数据类型信息生成读取数组;所述读取数组中包括所述各列数据对应的解析对象;所述解析对象中封装有用于解析表数据的流程;基于所述数据类型信息生成写入数组;所述写入数组中包括所述各列数据对应的写入对象;所述写入对象中封装有用于设置表数据的流程;

31、写入模块,用于利用所述读取数组从所述查询结果集中读取各列数据;利用所述写入数组将解析得到的各列数据写入目标数据库表。

32、在一个实施例中,所述获取模块具体用于:

33、接收数据迁移指令;所述数据迁移指令中包括查询语句;

34、执行所述查询语句,以从源数据库表中查询表数据,得到待迁移的查询结果集。

35、本说明书实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的数据库表数据迁移方法的步骤。

36、本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时实现上述任意实施例中所述的数据库表数据迁移方法的步骤。

37、本说明书实施例还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述任意实施例中所述的数据库表数据迁移方法的步骤。

38、在本说明书实施例中,提供了一种数据库表数据迁移方法,可以获取待迁移的查询结果集,所述查询结果集中包括表数据以及对应的元数据,对所述元数据进行解析,得到所述表数据中各列数据对应的数据类型信息,基于所述数据类型信息生成读取数组,所述读取数组中包括所述各列数据对应的解析对象,所述解析对象中封装有用于解析表数据的流程,基于所述数据类型信息生成写入数组,所述写入数组中包括所述各列数据对应的写入对象,所述写入对象中封装有用于设置表数据的流程,利用所述读取数组从所述查询结果集中读取各列数据,利用所述写入数组将解析得到的各列数据写入目标数据库表。本方案中,在首次执行某个表迁移数据的查询时,通过解析查询结果集中的元数据,生成包括用于读取查询结果集的解析对象的读取数组。后续在进行查询结果集解析时,直接通过快速获取读取数组中的解析对象进行解析,使得后续解析每列数据时无需判断当前是哪个字段以及判断使用哪个类型来解析。对于数据插入,基于相似的原理,通过解析查询结果集中的元数据,生成包括如何设置数据类型的写入对象的写入数组,在写入数据时,直接通过调用对应的写入对象,使得后续写入每列数据时无需判断当前是哪个字段以及判断如何设置写入的数据类型。相对于现有技术中通过判断字段类型来读取和写入,其时间复杂度都是字段类型数×字段数量×总数据量,然而本方案的时间复杂度为(字段类型数×字段数量+总数据量),在实际情况下约等于总数据量,可大幅提高执行效率,通过批量提交处理写入数据,数据库端的执行计划解析只需要执行一次,可以大大提高数据库表迁移速度。

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