一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据库间大数据表批量迁移的方法、系统、设备和介质与流程

2022-03-08 22:20:15 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及一种数据库间大数据表批量迁移的方法、系统、设备和介质。


背景技术:

2.近年以来,数据爆炸式增长,市面上数据库产品的不断丰富,国产数据库产品也异军突起,行业竞争的不断加剧,数据库产品更新换代速度也随之提高。银行内部多年来开发诸多内部管理系统,随着数据库产品的更新换代,内部系统之间数据库产品的选择也逐渐多样化,出现了需要在不同的数据库产品间进行数据迁移的情况。但是市面上不同的数据库厂商基本仅针对自家的数据库产品提供数据导入或导出操作,未曾考虑过自家的数据如何导入到其他的厂商的数据库中的情况。而且在数据的导入导出过程中,如果数据表的记录数特别多,达到几十亿或上百亿,经常会由于各种各样的问题导致数据迁移失败的情况。


技术实现要素:

3.本发明要解决的技术问题,在于提供一种数据库间大数据表批量迁移的方法、系统、设备和介质,降低了开发人员数据迁移的难度以及迁移工作量。
4.第一方面,本发明提供了一种数据库间大数据表批量迁移的方法,包括:
5.步骤1、根据所需要迁移的数据表,生成一对应的配置文件,所述配置文件包括至少一行,所述每一行对应10个配置列,所述每个配置列为:源数据库、源数据库表名、源编码方式、目标数据库、目标数据库数据表名、目标数据库编码方式、迁移方式、迁移依据字段、开始数值以及结束数值;
6.步骤2、循环读取配置文件,进行数据表的批量迁移;
7.其中,通过源数据库和源数据库表名设定数据表建表脚本的获取方式;通过目标数据库以及目标数据库数据表名确定目标数据库的建表方式,并确定目标数据库的数据文件导入命令的选择;基于源编码方式与目标数据库编码方式的比较,进行判断在数据文件生成之后是否需要进行编码转换,如果源编码方式与目标数据库编码方式不一致,则需要进行编码转换,若一致,则无需进行编码转换;迁移方式包括拆分迁移和整体迁移。
8.进一步地,根据数据表的记录数量选择拆分方式,若数据表的记录数在设定范围内,则选择整体迁移的方式;若数据表的记录数不在设定范围内,则采用拆分迁移的方式;采用拆分迁移的方式时,基于迁移依据字段、开始数值以及结束数值的组合,形成拆分规则。
9.进一步地,所述步骤2进一步具体为:循环读取配置文件,进行数据表的批量迁移;每一次迁移过程完成之后,根据配置文件的源数据库表名、目标数据库数据表名、迁移方式、迁移依据字段、开始数值以及结束数值,生成数据表记录数查询sql脚本,分别获取源数据表的记录数与目标数据表的记录数,进行比较是否一致,并记录至日志。
10.第二方面,本发明提供了一种数据库间大数据表批量迁移的系统,包括:
11.设置模块,根据所需要迁移的数据表,生成一对应的配置文件,所述配置文件包括至少一行,所述每一行对应10个配置列,所述每个配置列为:源数据库、源数据库表名、源编码方式、目标数据库、目标数据库数据表名、目标数据库编码方式、迁移方式、迁移依据字段、开始数值以及结束数值;
12.迁移模块,循环读取配置文件,进行数据表的批量迁移;
13.其中,通过源数据库和源数据库表名设定数据表建表脚本的获取方式;通过目标数据库以及目标数据库数据表名确定目标数据库的建表方式,并确定目标数据库的数据文件导入命令的选择;基于源编码方式与目标数据库编码方式的比较,进行判断在数据文件生成之后是否需要进行编码转换,如果源编码方式与目标数据库编码方式不一致,则需要进行编码转换,若一致,则无需进行编码转换;迁移方式包括拆分迁移和整体迁移。
14.进一步地,根据数据表的记录数量选择拆分方式,若数据表的记录数在设定范围内,则选择整体迁移的方式;若数据表的记录数不在设定范围内,则采用拆分迁移的方式;采用拆分迁移的方式时,基于迁移依据字段、开始数值以及结束数值的组合,形成拆分规则。
15.进一步地,所述迁移模块进一步具体为:循环读取配置文件,进行数据表的批量迁移;每一次迁移过程完成之后,根据配置文件的源数据库表名、目标数据库数据表名、迁移方式、迁移依据字段、开始数值以及结束数值,生成数据表记录数查询sql脚本,分别获取源数据表的记录数与目标数据表的记录数,进行比较是否一致,并记录至日志。
16.第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
17.第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
18.本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
19.1、与传统方法相比,本发明自动实现了对sybase iq、syabase ase、gbase、oracle、mysql等多种数据库产品的支持,无需开发人员对各种数据库语言的语法、数据结构、字符编码、迁移命令、日志输出、异常排查的熟练掌握,降低了开发人员数据迁移的难度;
20.2、与传统方法相比,本发明很好地支持了大数据表(记录数几十亿或上百亿)的数据迁移,采取了更灵活的迁移文件大小控制方式,降低了文件系统在传统的数据库数据迁移过程中的空间限制约束要求;
21.3、与传统的手工处理过程相比,实现了批量化、自动化,屏蔽了手工过程带来的操作失误风险,大幅度降低了工作量;
22.4、与传统方法相比,本发明支持批量之后对有异常的数据进行统一分析、统一解决,降低了异常排查的难度,提高了问题排查效率。
23.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
24.下面参照附图结合实施例对本发明作进一步的说明。
25.图1为本发明的框架示意图。
具体实施方式
26.本技术实施例通过提供一种数据库间大数据表批量迁移的方法、系统、设备和介质,不仅解决了不同数据库间数据迁移的问题,而且对大数据表(记录数达到几十亿或上百亿)的批量迁移也能够充分支持;本发明支持的数据库产品包括:sybase iq、syabase ase、gbase、oracle、mysql等。
27.本技术实施例中的技术方案,总体思路如下:
28.如图1所示,该装置实现的具体功能模块如下:
29.1.配置模块:主要负责对需要转移的数据表进行具体配置,并生成一个配置文件。配置文件由一行或多行组成,每一行对应具体的10个配置列。配置文件的每一个行10个列配置格式如下:“【列1】源数据库【列2】源数据库表名【列3】源编码方式【列4】目标数据库【列5】目标数据库数据表名【列6】目标数据库编码方式【列7】迁移方式【列8】迁移依据字段【列9】开始数值【列10】结束数值”。
30.其中【列1】【列2】决定了数据表建表脚本的获取方式;【列4】【列5】不仅确定了目标数据库的建表方式,还决定了目标数据库的数据文件导入命令的选择;当前数据文件的编码方式主要由gbk与utf-8,数据库内部编码主要由iso_1、cp936、utf-8等,基于【列3】与【列6】的比较,模块会自动判断在数据文件生成之后是否需要进行编码转换。如果源编码方式与目标数据库编码方式不一致,则需要进行编码转换,反之则无需进行编码转换;【列7】主要描述了数据表的迁移方式,数据表的迁移方式分为拆分迁移和整体迁移,可以根据数据表的记录数量进行合理选择。比如数据表的记录数在百万条记录数以内,可以选择整体迁移的方式,迁移过程中只会形成单独的数据文件;如果数据表的记录数达到千万级、亿级甚至更多,可采用拆分迁移的方式。采用拆分迁移的方式时,模块会基于【列8】【列9】【列10】的组合,形成具体的拆分规则,定位表中具体的记录,进而形成一个单独的数据文件。对于一个记录是特别大的表,可以在该配置文件中配置多行以形成不同的【列8】【列9】【列10】的拆分组合。
31.2.批量模块:该配置文件是本发明装置进行数据批量迁移的基础,配置文件可以包含多行,每一行对应具体的一个批量迁移操作,一个迁移操作对应一张数据表的一个整体迁移或其中一个拆分迁移过程。本模块通过对配置文件的循环读取,实现数据表的批量迁移。
32.3.运行模块:运行模块通过批量模块调用执行,实现已配置的具体迁移功能,包括实现当前数据库的建表脚本获取、目标数据库的数据表建立、源数据表数据文件的生成、数据文件转码、数据文件迁移、数据文件导入目标数据库、新旧数据表记录检验、日志生成等操作。
33.4.检验模块:每一次迁移过程完成之后,本模块会自动分别连接到源数据库与目标数据库,根据配置文件的【列2】源数据库表名、【列5】目标数据库数据表名、【列7】迁移方式、【列8】迁移依据字段、【列9】开始数值、【列10】结束数值的配置组合,生成数据表记录数
查询sql脚本,分别获取源数据表的记录数与目标数据表的记录数进行比较并记录日志。
34.5.日志模块:在每一次的批量过程中,本模块对每一步的操作过程实现日志记录,生成日志文件,方便工作人员核查数据迁移的过程信息,定位迁移检验失败的数据表,以查明失败原因。
35.6.存储模块:存储模块主要由nas组成,负责存储从源数据库导出的迁移数据文件,并允许将该数据文件直接导入至目标数据库。
36.实施例一
37.本实施例提供一种数据库间大数据表批量迁移的方法,包括:
38.步骤1、根据所需要迁移的数据表,生成一对应的配置文件,所述配置文件包括至少一行,所述每一行对应10个配置列,所述每个配置列为:源数据库、源数据库表名、源编码方式、目标数据库、目标数据库数据表名、目标数据库编码方式、迁移方式、迁移依据字段、开始数值以及结束数值;
39.步骤2、循环读取配置文件,进行数据表的批量迁移;每一次迁移过程完成之后,根据配置文件的源数据库表名、目标数据库数据表名、迁移方式、迁移依据字段、开始数值以及结束数值,生成数据表记录数查询sql脚本,分别获取源数据表的记录数与目标数据表的记录数,进行比较是否一致,并记录至日志;
40.其中,通过源数据库和源数据库表名设定数据表建表脚本的获取方式;通过目标数据库以及目标数据库数据表名确定目标数据库的建表方式,并确定目标数据库的数据文件导入命令的选择;基于源编码方式与目标数据库编码方式的比较,进行判断在数据文件生成之后是否需要进行编码转换,如果源编码方式与目标数据库编码方式不一致,则需要进行编码转换,若一致,则无需进行编码转换;迁移方式包括拆分迁移和整体迁移。
41.根据数据表的记录数量选择拆分方式,若数据表的记录数在设定范围内,则选择整体迁移的方式;若数据表的记录数不在设定范围内,则采用拆分迁移的方式;采用拆分迁移的方式时,基于迁移依据字段、开始数值以及结束数值的组合,形成拆分规则。
42.基于同一发明构思,本技术还提供了与实施例一中的方法对应的系统,详见实施例二。
43.实施例二
44.在本实施例中提供了一种数据库间大数据表批量迁移的系统,包括:
45.设置模块,根据所需要迁移的数据表,生成一对应的配置文件,所述配置文件包括至少一行,所述每一行对应10个配置列,所述每个配置列为:源数据库、源数据库表名、源编码方式、目标数据库、目标数据库数据表名、目标数据库编码方式、迁移方式、迁移依据字段、开始数值以及结束数值;
46.迁移模块,循环读取配置文件,进行数据表的批量迁移;每一次迁移过程完成之后,根据配置文件的源数据库表名、目标数据库数据表名、迁移方式、迁移依据字段、开始数值以及结束数值,生成数据表记录数查询sql脚本,分别获取源数据表的记录数与目标数据表的记录数,进行比较是否一致,并记录至日志;
47.其中,通过源数据库和源数据库表名设定数据表建表脚本的获取方式;通过目标数据库以及目标数据库数据表名确定目标数据库的建表方式,并确定目标数据库的数据文件导入命令的选择;基于源编码方式与目标数据库编码方式的比较,进行判断在数据文件
生成之后是否需要进行编码转换,如果源编码方式与目标数据库编码方式不一致,则需要进行编码转换,若一致,则无需进行编码转换;迁移方式包括拆分迁移和整体迁移。
48.根据数据表的记录数量选择拆分方式,若数据表的记录数在设定范围内,则选择整体迁移的方式;若数据表的记录数不在设定范围内,则采用拆分迁移的方式;采用拆分迁移的方式时,基于迁移依据字段、开始数值以及结束数值的组合,形成拆分规则。
49.由于本发明实施例二所介绍的系统,为实施本发明实施例一的方法所采用的系统,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该系统的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的系统都属于本发明所欲保护的范围。
50.基于同一发明构思,本技术提供了实施例一对应的电子设备实施例,详见实施例三。
51.实施例三
52.本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
53.由于本实施例所介绍的电子设备为实施本技术实施例一中方法所采用的设备,故而基于本技术实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本技术实施例中的方法不再详细介绍。只要本领域所属技术人员实施本技术实施例中的方法所采用的设备,都属于本技术所欲保护的范围。
54.基于同一发明构思,本技术提供了实施例一对应的存储介质,详见实施例四。
55.实施例四
56.本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
57.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
58.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
59.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
60.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
61.虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献