大容量数据移行方法及装置与流程

文档序号:30582056发布日期:2022-06-29 12:51阅读:152来源:国知局
大容量数据移行方法及装置与流程

1.本技术涉及数据处理领域,可应用于金融领域和其他领域,尤指一种大容量数据移行方法及装置。


背景技术:

2.随着科技的进步,金融行业系统软件逐步开始向自主可控的技术栈转型,gauss高斯数据库作为同类型产品的领先者是企业级关系型数据库自主可控转型的一个很好的选择,然而异构数据库间大容量数据移行一直是数据库产品替换的一个痛点。从实际实施经验来看,无论是产品提供方提供的解决方案或是第三方的移行工具都存在瑕疵,对项目实施存在不可控的因素。
3.现有技术中,sqlserver管理系统数据库作为目前市场占有率较小的产品无论制造商或者第三方都没有成熟的数据移行方案或最佳实践案例。因此急需一种方法解决这一痛点更好地支持sqlserver产品的自主可控转型的实施。


技术实现要素:

4.本技术目的在于提供一种大容量数据移行方法及装置,通过对sqlserver和gaussdb在不同运行环境特性的概括和总结,实现通用的数据库数据移行。
5.为达上述目的,本技术所提供的大容量数据移行方法,具体包含:根据移行需求生成移行表清单,并提取源数据库与目标数据库的连接信息和目标数据库的格式要求;根据所述移行表清单、源数据库与目标数据库的连接信息生成建表脚本并于目标数据库中执行;根据所述源数据库的连接信息和所述移行表清单提取对应数据生成提取数据文件,通过所述格式要求对所述提取数据文件进行格式转制和数据清洗获得移行数据文件;将所述移行数据文件导入所述目标数据库。
6.在上述大容量数据移行方法中,可选的,根据所述移行表清单、源数据库与目标数据库的连接信息生成建表脚本并于目标数据库中执行包含:根据所述移行表清单和所述目标数据库的连接信息访问源数据库生成目标数据库建表脚本;将所述目标数据库建表脚本于目标数据库中执行。
7.在上述大容量数据移行方法中,可选的,根据所述源数据库的连接信息和所述移行表清单提取对应数据生成提取数据文件包含:根据移行需求获得导出的数据文件的文件格式;根据所述源数据库的连接信息和所述移行表清单提取对应的导出数据,根据所述文件格式将所述导出数据转换生成提取数据文件。
8.在上述大容量数据移行方法中,可选的,所述文件格式包含utf或gbk。
9.在上述大容量数据移行方法中,可选的,通过所述格式要求对所述提取数据文件进行格式转制和数据清洗获得移行数据文件包含:根据所述格式要求获得非法字符描述清单,根据所述非法字符描述清单对所述提取数据文件进行数据清洗获得待转制文本;根据所述格式要求将所述待转制文本转换为目标数据库对应的文本格式获得移行数据文件。
10.在上述大容量数据移行方法中,可选的,根据所述格式要求将所述待转制文本转换为目标数据库对应的文本格式获得移行数据文件包含:获取源数据库与目标数据库之间的字段映射关系,根据所述字段映射关系将所述待转制文本转换为目标数据库对应的文本格式获得移行数据文件。
11.在上述大容量数据移行方法中,可选的,所述源数据库为sqlserver数据库,所述目标数据库为gauss数据库。
12.本技术还提供一种大容量数据移行装置,所述装置包含:提取模块、执行模块、处理模块和导入模块;所述提取模块用于根据移行需求生成移行表清单,并提取源数据库与目标数据库的连接信息和目标数据库的格式要求;所述执行模块用于根据所述移行表清单、源数据库与目标数据库的连接信息生成建表脚本并于目标数据库中执行;所述处理模块用于根据所述源数据库的连接信息和所述移行表清单提取对应数据生成提取数据文件,通过所述格式要求对所述提取数据文件进行格式转制和数据清洗获得移行数据文件;所述导入模块用于将所述移行数据文件导入所述目标数据库。
13.本技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
14.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
15.本技术的有益技术效果在于:从目标数据库的建表,数据导出,数据清理,最后到数据导入提供一揽子解决方案,为应用的平台关系数据库转型提供稳定、可靠的解决方案;填补了sqlserver至gaussdb数据库大容量数据移行的技术空缺,为基于sqlserver数据库的应用的自主可控转型的平台选型提供了更多的选项;规范了数据从sqlserver数据库迁移至gaussdb的流程,在项目项目管理层面能够较为准确的评估数据移行的投入成本。在投产层面可以准确的预估投产所需要的各项资源,降低项目转型过程中存在的潜在风险;通过简单的适配也可应用于其他异构数据库的移行工作。
附图说明
16.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,并不构成对本技术的限定。在附图中:
17.图1为本技术一实施例所提供的大容量数据移行方法的流程示意图;
18.图2为本技术一实施例所提供的建表脚本的生成流程示意图;
19.图3为本技术一实施例所提供的提取数据文件的生成流程示意图;
20.图4为本技术一实施例所提供的移行数据文件的生成流程示意图;
21.图5为本技术一实施例所提供的大容量数据移行装置的逻辑结构示意图;
22.图6为本技术一实施例所提供的大容量数据移行装置的应用结构示意图;
23.图7为本技术一实施例所提供的表结构生成组件的运行原理示意图;
24.图8为本技术一实施例所提供的数据导出组件的运行原理示意图;
25.图9为本技术一实施例所提供的数据清洗组件的运行原理示意图;
26.图10为本技术一实施例所提供的数据导入组件的运行原理示意图;
27.图11为本技术一实施例所提供的电子设备的结构示意图。
具体实施方式
28.以下将结合附图及实施例来详细说明本技术的实施方式,借此对本技术如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本技术中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本技术的保护范围之内。
29.另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
30.请参考图1所示,本技术所提供的大容量数据移行方法,具体包含:
31.s101根据移行需求生成移行表清单,并提取源数据库与目标数据库的连接信息和目标数据库的格式要求;
32.s102根据所述移行表清单、源数据库与目标数据库的连接信息生成建表脚本并于目标数据库中执行;
33.s103根据所述源数据库的连接信息和所述移行表清单提取对应数据生成提取数据文件,通过所述格式要求对所述提取数据文件进行格式转制和数据清洗获得移行数据文件;
34.s104将所述移行数据文件导入所述目标数据库。
35.由此,从目标数据库的建表,数据导出,数据清理,最后到数据导入提供一揽子解决方案,为应用的平台关系数据库转型提供稳定、可靠的解决方案。其中,所述源数据库可为sqlserver数据库,所述目标数据库可为gauss数据库;所述移行表清单可为描述需要移行的表清单,用以描述导出数据文件的命名规范;所述源数据库与目标数据库的连接信息可为源数据库与目标数据库的接入方式,例如源数据库的接入端口、接入方式等信息,同理,所述目标数据库的连接信息也可为接入端口、接入方式等;对应的源数据库与目标数据库的格式要求即为其输入数据格式;各步骤的具体实现方式将在后续实施例中详细说明,在此就不再一一详述。
36.请参考图2所示,在本技术一实施例中,根据所述移行表清单、源数据库与目标数据库的连接信息生成建表脚本并于目标数据库中执行包含:
37.s201根据所述移行表清单和所述目标数据库的连接信息访问源数据库生成目标数据库建表脚本;
38.s202将所述目标数据库建表脚本于目标数据库中执行。
39.以此通过该流程可在目标数据库中完成建表脚本的执行,以帮助后续数据导入,其中建表脚本可利用移行表清单、源数据库和目标数据库的连接信息、源数据库和目标数据库的字段对照表等配置信息生成移行表清单对应的建表脚本,具体构建方式可采用常规的数据库数据迁移脚本,通过移行表清单确定迁移内容,连接信息确定数据的输入输出方式,字段对照表确认源数据库到目标数据库的数据编译方式,以此构建执行代码,根据所述执行代码生成对应的目标数据库建表脚本create.sql,该目标数据库建表脚本逻辑可采用sql脚本的生成流程,亦即将数据迁移的操作流程以代码的方式实现,通过多个代码的组合构成目标脚本,基于该目标数据库建表脚本create.sql可于源数据库中导出数据t1.bin
……
tn.bin,基于目标数据库的连接信息和所述字段对照表将其转制成t1_
new.bin
……
tn_new.bin后存入至目标数据库,因实际需求不同,不同需求下代码的内容也会对应调整,本技术再此不再详细举例说明。
40.请参考图3所示,在本技术一实施例中,根据所述源数据库的连接信息和所述移行表清单提取对应数据生成提取数据文件包含:
41.s301根据移行需求获得导出的数据文件的文件格式;
42.s302根据所述源数据库的连接信息和所述移行表清单提取对应的导出数据,根据所述文件格式将所述导出数据转换生成提取数据文件。
43.其中,所述文件格式包含utf或gbk;具体的,该文件格式可包含数据字段间的分隔符,换行符,以及文件的存储格式(utf或gbk)。实际工作中,分隔符可选择在源数据库中不存在或者极少出现的字符,如chr(26),在导出数据时应对源数据做有效性检查并过滤掉数据中可能存在的“分隔符”,以确保导出的数据文件格式合法。
44.由于操作系统和数据库字符集的差异,某些特殊字符在目标库中不支持,在进行文件格式转制时也可能会产生不支持的字符,这些“非法”字符在目标数据库执行大容量数据复制命令时会报错导致导入组件失效,如sqlserver中的“0x00”;为此,请参考图4所示,在本技术一实施例中,通过所述格式要求对所述提取数据文件进行格式转制和数据清洗获得移行数据文件可包含:
45.s401根据所述格式要求获得非法字符描述清单,根据所述非法字符描述清单对所述提取数据文件进行数据清洗获得待转制文本;
46.s402根据所述格式要求将所述待转制文本转换为目标数据库对应的文本格式获得移行数据文件。
47.其中,根据所述格式要求将所述待转制文本转换为目标数据库对应的文本格式获得移行数据文件可包含:获取源数据库与目标数据库之间的字段映射关系,根据所述字段映射关系将所述待转制文本转换为目标数据库对应的文本格式获得移行数据文件。具体的,在该字段映射关系中可确认源数据库与目标数据库之间的对应关系,例如源数据库中的a1对应目标数据库中的b1,此后,在将源数据库中对应的a1数据进行转换时,即可将其转换为b1;对应的,如源数据库中包含特殊字符c,但是目标数据库中c为非法字符,此时则需将该特殊字符c进行数据清洗掉,以防止后续导致失效,整体上该数据清洗的目的就在将预先定义的目标数据库中无法兼容的字符,在数据清洗的过程中将其过滤,以确保数据文件符合规范。
48.请参考图5所示,本技术还提供一种大容量数据移行装置,所述装置包含:提取模块、执行模块、处理模块和导入模块;所述提取模块用于根据移行需求生成移行表清单,并提取源数据库与目标数据库的连接信息和目标数据库的格式要求;所述执行模块用于根据所述移行表清单、源数据库与目标数据库的连接信息生成建表脚本并于目标数据库中执行;所述处理模块用于根据所述源数据库的连接信息和所述移行表清单提取对应数据生成提取数据文件,通过所述格式要求对所述提取数据文件进行格式转制和数据清洗获得移行数据文件;所述导入模块用于将所述移行数据文件导入所述目标数据库。
49.实际工作中,所述大容量数据移行装置的运行流程可参考图6所示,其中包括:a1为配置调度中心。维护整个数据移行装置的配置信息以及对数据移行的步骤进行有效调度,具体配置信息项如下:a11:移行表清单列表,描述需要移行的表清单,描述导出数据文
件的命名规范;a12:源数据库和目标数据库字段映射关系;a13:维护sqlserver数据库(源数据库)的连接信息;a14:维护gauss数据库(目标数据库)的连接信息;a15:数据文件格式,描述导出的数据文件的文件格式(utf或gbk),表字段间的分隔符以及换行符;a16:定义目标数据库中无法兼容的源数据库中的字符,在数据清洗的过程中将其过滤,以确保数据文件符合规范;
50.a2为表结构生成组件,a3为数据导出组件,a4为数据清洗组件,a5为数据导入组件;数据移行流程如下:
51.步骤一、表结构生成组件a2通过配置调度中心a1的源数据库连接信息a13访问源数据库,按照移行表清单a11生成目标数据库建表脚本;
52.步骤二、表结构生成组件a2通过配置调度中心a1的目标数据库连接信息将步骤一导出的建表脚本在目标数据库中执行;
53.步骤三、数据导出组件a3通过配置调度中心a1的源数据库连接信息a13,数据格式文件描述a15,移行表清单a11生成一揽子数据文件;
54.步骤四、数据清洗组件a4通过配置调度中心a1的非法字符描述a16对步骤三导出的一揽子数据文件进行清洗,一是清理源数据库中在目标数据库中不兼容的字符,二是根据目标数据库的需要对文本进行格式转制。
55.步骤五、数据导入组件a5通过配置调度中心a1的数据格式文件描述a15,将已经完成清洗的数据文件导入目标数据库中。
56.请参考图7所示,表结构生成组件的工作原理在于:b1:配置调度中心提供移行表清单,源数据库和目标数据库的连接信息,源数据库和目标数据库的字段对照关系。b2:表结构生成组件根据配置信息连接源数据库b3生成移行表清单中的建表脚本b4。表结构生成组件读取配置连接目标数据库b5,执行生成的建表脚本。请参考图8所示,数据导出组件的工作原理在于:c1:配置调度中心提供移行表清单,源数据库连接信息和数据文件的格式描述;c2:表结构生成组件根据配置信息连接源数据库,根据配置调度中心中对数据文件的格式描述将表清单中的表以此生成数据文件落地。请参考图9所示,数据清洗组件的工作原理如下:d1:读取配置文件中的非法字符描述清单和表清单配置信息。d2:数据清洗组件将数据文件d3进行格式转制和非法字符清洗生成可正确适配目标数据库d4的数据文件。请参考图10所示,数据导入组件的工作原理在于:e1:配置调度中心提供移行表清单,目标数据库连接信息和数据文件的格式描述。e2:数据导出组件根据配置信息连接目标数据库,根据数据格式描述对清洗后的数据文件进行解析后导入目标数据库。
57.本技术的有益技术效果在于:从目标数据库的建表,数据导出,数据清理,最后到数据导入提供一揽子解决方案,为应用的平台关系数据库转型提供稳定、可靠的解决方案;填补了sqlserver至gaussdb数据库大容量数据移行的技术空缺,为基于sqlserver数据库的应用的自主可控转型的平台选型提供了更多的选项;规范了数据从sqlserver数据库迁移至gaussdb的流程,在项目项目管理层面能够较为准确的评估数据移行的投入成本。在投产层面可以准确的预估投产所需要的各项资源,降低项目转型过程中存在的潜在风险;通过简单的适配也可应用于其他异构数据库的移行工作。
58.本技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
59.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
60.如图11所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图11中所示的所有部件;此外,电子设备600还可以包括图11中没有示出的部件,可以参考现有技术。
61.如图11所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
62.其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
63.输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。
64.该存储器140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
65.存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
66.通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
67.基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
68.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
69.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
70.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
71.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
72.以上所述的具体实施例,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本技术的具体实施例而已,并不用于限定本技术的保护范围,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1