CN112632038A - 数据库迁移方法、装置、终端及存储介质 - Google Patents
数据库迁移方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN112632038A CN112632038A CN202011624019.5A CN202011624019A CN112632038A CN 112632038 A CN112632038 A CN 112632038A CN 202011624019 A CN202011624019 A CN 202011624019A CN 112632038 A CN112632038 A CN 112632038A
- Authority
- CN
- China
- Prior art keywords
- database
- target
- source
- file
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库迁移方法、装置、终端及存储介质,其中方法包括:接收数据库迁移指令,数据库迁移指令包括源数据库和目标数据库;将源数据库中的数据导出,得到源SQL文件和数据文件;解析源SQL文件,以得到源SQL文件中的语法规则信息和关键信息,并根据语法规则信息和关键信息构建符合目标数据库的目标SQL文件;执行目标SQL文件以将数据文件导入至目标数据库。通过上述方式,本申请能够自动实现异构数据库之间的数据迁移工作,减少数据库管理员的工作量,提升了数据迁移效率。
Description
技术领域
本申请涉及数据库管理技术领域,特别是涉及一种数据库迁移方法、装置、终端及存储介质。
背景技术
在数据库管理系统的领域,已经存在多个成熟的数据库产品(例如Oracle、SQLServer、Mysql、Postgre、武汉达梦、人大金仓、神州通用等),而在企业搭建的众多应用系统中,由于应用开发部门不同或者应用系统本身特点等因素,不同的系统使用的数据库系统不同,已经在这些异构数据库内的数据无法融合在一起。为解决异构数据库之间的数据融合问题,需要将数据从一个异构数据库迁移到另外一个异构数据库中。目前各个数据库厂商提供的数据迁移工具只适用于自身数据库与其他特定数据库之间迁移,例如达梦数据库提供达梦与Oracle数据库之间的数据迁移工具,该工具不能完成达梦与Mysql或者Postgre数据库之间的数据迁移,因此并不具有普遍适用性。而通过手动迁移的方式来进行数据库迁移时,其工作量巨大,需要开发人员先将源端数据库的数据备份出来,然后进行手动的语法适配(将源端的数据库的SQL语法转换为目标端数据库的SQL语法),然后传输到目标端数据库所在服务器,再导入目标端数据库,这个过程耗时长,还容易出现错误,迁移效率低下。
发明内容
本申请提供一种数据库迁移方法、装置、终端及存储介质,以解决现有数据库迁移效率低、耗时长的问题。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种数据库迁移方法,包括:接收数据库迁移指令,数据库迁移指令包括源数据库和目标数据库;将源数据库中的数据导出,得到源SQL文件和数据文件;解析源SQL文件,以得到源SQL文件中的语法规则信息和关键信息,并根据语法规则信息和关键信息构建符合目标数据库的目标SQL文件;执行目标SQL文件以将数据文件导入至目标数据库。
作为本申请的进一步改进,接收数据库迁移指令,数据库迁移指令包括源数据库和目标数据库之后,还包括:暂停向源数据库中写入数据,并将需要存储至源数据库中的数据存储至缓存中;
执行目标SQL文件以将数据文件导入至目标数据库之后,还包括:将缓存中存储的数据存储至目标数据库。
作为本申请的进一步改进,将源数据库中的数据导出,得到源SQL文件和数据文件,包括:分析数据库中数据表之间的血缘关系;将存在血缘关系的数据表划分为一个批次,再导出每个批次的数据表的源SQL文件和数据文件。
作为本申请的进一步改进,解析源SQL文件,以得到源SQL文件中的语法规则信息和关键信息,并根据语法规则信息和关键信息构建符合目标数据库的目标SQL文件,包括:从源SQL文件中提取出所有源SQL语句并进行解析,得到每条源SQL语句对应的语法规则和关键信息;获取目标数据库的目标数据库类型,基于目标数据库类型确认查询范围;根据查询范围在预设的知识库中查询每条源SQL语句的语法规则对应的目标语法规则;根据目标语法规则和关键信息生成每条源SQL语句对应的目标SQL语句,由目标SQL语句组成目标SQL文件。
作为本申请的进一步改进,根据查询范围在预设的知识库中查询每条源SQL语句的语法规则对应的目标语法规则,包括:判断在查询范围内是否存在与语法规则对应的目标语法规则;若存在,则获取目标语法规则;若不存在,则发送手动补充指令至外部以提醒开发人员手动补充与语法规则对应且符合目标数据库的目标语法规则。
作为本申请的进一步改进,发送手动补充指令至外部以提醒开发人员手动补充与语法规则对应且符合目标数据库的目标语法规则之后,还包括:建立语法规则与目标语法规则之间的对应关系,并将语法规则、目标语法规则、对应关系存储至知识库中。
作为本申请的进一步改进,根据目标语法规则和关键信息生成每条源SQL语句对应的目标SQL语句,由目标SQL语句组成目标SQL文件之后,还包括:利用预设的验证样本验证目标SQL语句是否正确;若不准确,则发送错误提示消息至外部,以提醒开发人员手动修改目标语法规则。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种数据库迁移装置,包括:接收模块,用于接收数据库迁移指令,数据库迁移指令包括源数据库和目标数据库;导出模块,用于将源数据库中的数据导出,得到源SQL文件和数据文件;解析模块,用于解析源SQL文件,以得到源SQL文件中的语法规则信息和关键信息,并根据语法规则信息和关键信息构建符合目标数据库的目标SQL文件;导入模块,用于执行目标SQL文件以将数据文件导入至目标数据库。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种终端,终端包括处理器、与处理器耦接的存储器,存储器中存储有程序指令,程序指令被处理器执行时,使得处理器执行上述中任一项权利要求的数据库迁移方法的步骤。
为解决上述技术问题,本申请采用的再一个技术方案是:提供一种存储介质,存储有能够实现上述中任一项的数据库迁移方法的程序文件。
本申请的有益效果是:本申请的数据库迁移方法通过在接收到数据库迁移指令后,将源数据库中的输入导出为源SQL文件和数据文件,然后根据目标数据库的语法规则,将源SQL文件进行解析后,生成符合目标数据库的目标SQL文件,然后执行目标SQL文件,从而将数据文件中的数据全部存储至目标数据库中,完成对源数据库中数据的迁移,其解决了异构数据库之间数据迁移工作量大、耗时长、效率低下的问题,使得异构数据库之间的数据迁移更为高效和便捷,同时也进一步降低了数据迁移过程出错的可能性。
附图说明
图1是本申请第一实施例的数据库迁移方法的流程示意图;
图2是本申请第二实施例的数据库迁移方法的流程示意图;
图3是本申请第三实施例的数据库迁移方法的流程示意图;
图4是本申请第四实施例的数据库迁移方法的流程示意图;
图5是本申请实施例的数据库迁移方法装置的功能模块示意图;
图6是本申请实施例的终端的结构示意图;
图7是本申请实施例的存储介质的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1是本申请第一实施例的数据库迁移方法的流程示意图。需注意的是,若有实质上相同的结果,本申请的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
步骤S101:接收数据库迁移指令,数据库迁移指令包括源数据库和目标数据库。
在步骤S101中,数据库迁移指令指的是用于将数据库中的数据由一个数据库迁移至另一个数据库的指令。源数据库指待迁移的数据库,目标数据库指待迁入数据的数据库,本实施例中,源数据库与目标数据库是指异构数据库,例如源数据库是Oracle数据库与目标数据库是Mysql数据库,异构数据库因数据库语言语法的不同,在进行数据迁移时,需要进行语法的变换。
步骤S102:将源数据库中的数据导出,得到源SQL文件和数据文件。
在步骤S102中,在将源数据库中的数据导出之后,主要得到两部分的数据,其中,第一部分的数据是源SQL文件,其中包括SQL语句,如建表语句“CREATE TABLE”、删表语句“DROP TABLE”、索引创建语句“CREATE INDEX”等,源SQL文件用于记录源数据库中数据库表结构;第二部分的数据是数据文件,数据文件中记录了数据库中的所有数据表内的数据,该数据文件可以通过例如csv文件形式、xml文件形式来存储数据。
步骤S103:解析源SQL文件,以得到源SQL文件中的语法规则信息和关键信息,并根据语法规则信息和关键信息构建符合目标数据库的目标SQL文件。
在步骤S103中,在获取到源SQL文件之后,对源SQL文件进行解析,从而获取到源SQL文件中的语法规则信息和关键信息,其中,语法规则信息是指SQL语句的语法规则,例如建表语句的语法规则;而关键信息是指数据表名称、主键名称、字段名称等信息。在获取到语法规则信息和关键信息之后,确认目标数据库的数据库类型,然后根据语法规则信息和关键信息构建符合目标数据库的数据库类型的目标SQL文件。例如,当源数据库为Oracle数据库,目标数据库是Mysql数据库时,从Oracle数据库导出的源SQL文件的语法规则信息是与Oracle数据库的SQL语法规则向匹配的,此时,则需要将该语法规则信息转换为与Mysql数据库相匹配的目标语法规则,再通过目标语法规则和关键信息构建符合Mysql数据库的目标SQL文件。
步骤S104:执行目标SQL文件以将数据文件导入至目标数据库。
在步骤S104中,在得到目标SQL文件之后,在目标数据库中执行该SQL文件,以在目标数据库中建立与源数据库中相同的表结构,然后将数据文件导入至目标数据库中,以将数据文件中的数据全部导入至目标数据库,完成数据库中数据的迁移。
本申请第一实施例的数据库迁移方法通过在接收到数据库迁移指令后,将源数据库中的输入导出为源SQL文件和数据文件,然后根据目标数据库的语法规则,将源SQL文件进行解析后,生成符合目标数据库的目标SQL文件,然后执行目标SQL文件,从而将数据文件中的数据全部存储至目标数据库中,完成对源数据库中数据的迁移,其解决了异构数据库之间数据迁移工作量大、耗时长、效率低下的问题,使得异构数据库之间的数据迁移更为高效和便捷,同时也进一步降低了数据迁移过程出错的可能性。
图2是本申请第二实施例的数据库迁移方法的流程示意图。需注意的是,若有实质上相同的结果,本申请的方法并不以图2所示的流程顺序为限。如图2所示,该方法包括步骤:
步骤S201:接收数据库迁移指令,数据库迁移指令包括源数据库和目标数据库。
在本实施例中,图2中的步骤S201和图1中的步骤S101类似,为简约起见,在此不再赘述。
步骤S202:暂停向源数据库中写入数据,并将需要存储至源数据库中的数据存储至缓存中。
在步骤S202中,当接收到数据库迁移指令时,暂停向源数据库中写入数据,并将需要存储至源数据库中的数据存储至缓存中。
步骤S203:将源数据库中的数据导出,得到源SQL文件和数据文件。
在本实施例中,图2中的步骤S203和图1中的步骤S103类似,为简约起见,在此不再赘述。
步骤S204:解析源SQL文件,以得到源SQL文件中的语法规则信息和关键信息,并根据语法规则信息和关键信息构建符合目标数据库的目标SQL文件。
在本实施例中,图2中的步骤S204和图1中的步骤S104类似,为简约起见,在此不再赘述。
步骤S205:执行目标SQL文件以将数据文件导入至目标数据库。
在本实施例中,图2中的步骤S205和图1中的步骤S105类似,为简约起见,在此不再赘述。
步骤S206:将所述缓存中存储的数据存储至所述目标数据库。
在步骤S206中,在将源数据库中的数据迁移至目标数据库之后,再将缓存中暂时存储的数据存储至目标数据库中,从而避免数据迁移过程中,需要存储至源数据库中的数据丢失,并且,后续需要存储至源数据库的数据直接存储至目标数据库中。
本申请第二实施例的数据库迁移方法在第一实施例的基础上,通过暂停向所述源数据库中写入数据,并将需要存储至所述源数据库中的数据存储至缓存中后,在源数据库数据全部迁移至目标数据库之后,再将缓存中的数据存储至目标数据库,其实现了对源数据库中所有数据的全量迁移,以及对数据库迁移过程中需要存储至源数据库中的数据的增量迁移,从而在不停机的情况下完成数据库迁移。
图3是本申请第三实施例的数据库迁移方法的流程示意图。需注意的是,若有实质上相同的结果,本申请的方法并不以图3所示的流程顺序为限。如图3所示,该方法包括步骤:
步骤S301:接收数据库迁移指令,数据库迁移指令包括源数据库和目标数据库。
在本实施例中,图3中的步骤S301和图1中的步骤S101类似,为简约起见,在此不再赘述。
步骤S302:分析数据库中数据表之间的血缘关系。
需要说明的是,数据的血缘关系是指数据的产生、加工融合、流转流通,到最终消亡,数据之间自然会形成一种关系。借鉴人类社会中类似的一种关系来表达数据之间的这种关系,称之为数据的血缘关系。数据血缘是元数据的组成部分之一。它分析表和字段从数据源到当前表的血缘路径,以及血缘字段之间存在的关系是否满足,关注的数据一致性以及表设计的合理性,可用于分析上游数据发生变化会给下游数据带来哪些影响;下游数据发生变化时追踪上游问题的源头等问题。
在步骤S302中,通过解析源数据库中的所有数据表,得到每张数据表的抽象语法树,再分析每张数据表的抽象语法树,从而得到数据表之间的血缘关系。
步骤S303:将存在血缘关系的数据表划分为一个批次,再导出每个批次的数据表的源SQL文件和数据文件。
在步骤S303中,在得到数据表之间的血缘关系之后,将存在血缘关系的数据表划分为一个批次,从而得到多个批次的数据表,再将数据表按批次导出,存在血缘关系的数据表在一个批次导出。
步骤S304:解析源SQL文件,以得到源SQL文件中的语法规则信息和关键信息,并根据语法规则信息和关键信息构建符合目标数据库的目标SQL文件。
在本实施例中,图3中的步骤S304和图1中的步骤S103类似,为简约起见,在此不再赘述。
步骤S305:执行目标SQL文件以将数据文件导入至目标数据库。
在本实施例中,图3中的步骤S305和图1中的步骤S104类似,为简约起见,在此不再赘述。
进一步的,在一些实施例中,在将数据表划分为多个批次之后,可以同时对多个批次进行迁移,进而加速数据迁移过程,提高迁移速度。
本申请第三实施例的数据库迁移方法在第一实施例的基础上,通过根据数据表之间的血缘关系,将有血缘关系的数据表划分为同一个批次,然后导出每个批次的数据表的源SQL文件和数据文件,通过按照血缘关系将数据表进行打包再分批处理,使得存在血缘关系的数据表能够同批次处理,避免在迁移过程中存在血缘关系的数据表在迁移之后血缘关系被打乱的情况,使得数据表的迁移过程更为清晰。
图4是本申请第四实施例的数据库迁移方法的流程示意图。需注意的是,若有实质上相同的结果,本申请的方法并不以图4所示的流程顺序为限。如图4所示,该方法包括步骤:
步骤S401:接收数据库迁移指令,数据库迁移指令包括源数据库和目标数据库。
在本实施例中,图4中的步骤S401和图1中的步骤S101类似,为简约起见,在此不再赘述。
步骤S402:将源数据库中的数据导出,得到源SQL文件和数据文件。
在本实施例中,图4中的步骤S402和图1中的步骤S102类似,为简约起见,在此不再赘述。
步骤S403:从源SQL文件中提取出所有源SQL语句并进行解析,得到每条源SQL语句对应的语法规则和关键信息。
在步骤S403中,源SQL文件中包括了多种不同语义的SQL语句,例如:建表语句、索引创建语句等,通过从源SQL文件中提取出所有的源SQL语句之后,对源SQL语句进行解析,从而得到每条源SQL语句对应的语法规则和关键信息。
步骤S404:获取目标数据库的目标数据库类型,基于目标数据库类型确认查询范围。
在步骤S404中,获取目标数据库的目标数据库类型,如该目标数据库是Oracle数据库还是Mysql数据库,每种类型的数据对应一个查询范围。
步骤S405:根据查询范围在预设的知识库中查询每条源SQL语句的语法规则对应的目标语法规则。
在步骤S405中,在知识库中存储的语法规则均按照数据库的类型分类存储,例如目标数据库是Mysql数据库,则在Mysql数据库对应的查询范围内查询与SQL语句的语法规则对应的目标语法规则。
进一步的,步骤S405具体包括:
1、判断在查询范围内是否存在与语法规则对应的目标语法规则;
2、若存在,则获取目标语法规则;
3、若不存在,则发送手动补充指令至外部以提醒开发人员手动补充与语法规则对应且符合目标数据库的目标语法规则。
具体地,在获取到源SQL语句对应的语法规则之后,在查询范围内进行查询,从而确认知识库中是否存在与语法规则对应的目标语法规则,若存在,则获取该目标语法规则;若不存在,则提醒开发人员需要手动补充语法规则对应的目标语法规则,从而使得数据库迁移过程不会被中断,并避免数据库迁移过程中出现数据丢失。
进一步的,发送手动补充指令至外部以提醒开发人员手动补充与语法规则对应且符合目标数据库的目标语法规则的步骤,具体包括:建立语法规则与目标语法规则之间的对应关系,并将语法规则、目标语法规则、对应关系存储至知识库中。
具体地,在开发人员手动补充目标语法规则之后,记录目标语法规则与源SQL语句的语法规则的对应关系,并将该语法规则、目标语法规则,以及语法规则和目标语法规则的对应关系存储至知识库中,从而丰富知识库的内容。
步骤S406:根据目标语法规则和关键信息生成每条源SQL语句对应的目标SQL语句,由目标SQL语句组成目标SQL文件。
在步骤S406中,通过查询得到目标语法规则后,根据目标语法规则和关键信息生成与源SQL语句对应的目标SQL语句,在得到所有源SQL语句对应的目标SQL语句后,由目标SQL语句组成目标SQL文件。
进一步的,步骤S406之后,还包括:
1、利用预设的验证样本验证目标SQL语句是否正确。
具体地,在建立知识库时,每存储一条目标语法规则,设立一条用于验证该目标语法规则的验证样本,在根据该目标语法规则生成目标SQL语句之后,利用该预设的验证样本来验证目标SQL语句,从而判断该目标SQL语句是否正确。
2、若不准确,则发送错误提示消息至外部,以提醒开发人员手动修改目标语法规则。
具体地,若生成的目标SQL语句不正确,则发送错误提示消息至外部,从而提醒开发人员手动修改该条目标语法规则,使之正确。
步骤S407:执行目标SQL文件以将数据文件导入至目标数据库。
在本实施例中,图4中的步骤S407和图1中的步骤S104类似,为简约起见,在此不再赘述。
本申请第四实施例的数据库迁移方法在第一实施例的基础上,通过提取出SQL文件中的所有SQL语句,然后分别对每个SQL语句进行解析,以单独对每条SQL语句进行转换,从而提升SQL语句转换的准确率。此外,在知识库查询对应的目标语法规则时,当未查询到对应的目标语法规则而时,提醒开发人员手动补充,从而保证数据迁移的过程不会被中断,并且补充的目标语法规则还会被存储至知识库,丰富知识库。并且,在生成目标SQL语句后,还会验证目标SQL语句的正确性,避免错误的目标SQL语句影响到数据迁移过程。
图5是本申请实施例的数据库迁移装置的功能模块示意图。如图5所示,该装置50包括接收模块51、导出模块52、解析模块53和导入模块54。
接收模块51,用于接收数据库迁移指令,数据库迁移指令包括源数据库和目标数据库;
导出模块52,用于将源数据库中的数据导出,得到源SQL文件和数据文件;
解析模块53,用于解析源SQL文件,以得到源SQL文件中的语法规则信息和关键信息,并根据语法规则信息和关键信息构建符合目标数据库的目标SQL文件;
导入模块54,用于执行目标SQL文件以将数据文件导入至目标数据库。
可选地,接收模块51接收数据库迁移指令,数据库迁移指令包括源数据库和目标数据库的操作之后,还用于暂停向源数据库中写入数据,并将需要存储至源数据库中的数据存储至缓存中;导入模块44执行目标SQL文件以将数据文件导入至目标数据库的操作之后,还用于将缓存中存储的数据存储至目标数据库。
可选地,导出模块52将源数据库中的数据导出,得到源SQL文件和数据文件的操作还可以为:分析数据库中数据表之间的血缘关系;将存在血缘关系的数据表划分为一个批次,再导出每个批次的数据表的源SQL文件和数据文件。
可选地,解析模块53解析源SQL文件,以得到源SQL文件中的语法规则信息和关键信息,并根据语法规则信息和关键信息构建符合目标数据库的目标SQL文件的操作,还可以为:从源SQL文件中提取出所有源SQL语句并进行解析,得到每条源SQL语句对应的语法规则和关键信息;获取目标数据库的目标数据库类型,基于目标数据库类型确认查询范围;根据查询范围在预设的知识库中查询每条源SQL语句的语法规则对应的目标语法规则;根据目标语法规则和关键信息生成每条源SQL语句对应的目标SQL语句,由目标SQL语句组成目标SQL文件。
可选地,解析模块53根据查询范围在预设的知识库中查询每条源SQL语句的语法规则对应的目标语法规则的操作,还可以为:判断在查询范围内是否存在与语法规则对应的目标语法规则;若存在,则获取目标语法规则;若不存在,则发送手动补充指令至外部以提醒开发人员手动补充与语法规则对应且符合目标数据库的目标语法规则。
可选地,解析模块53发送手动补充指令至外部以提醒开发人员手动补充与语法规则对应且符合目标数据库的目标语法规则的操作之后,还用于:建立语法规则与目标语法规则之间的对应关系,并将语法规则、目标语法规则、对应关系存储至知识库中。
可选地,解析模块53根据目标语法规则和关键信息生成每条源SQL语句对应的目标SQL语句,由目标SQL语句组成目标SQL文件的操作之后,还用于:利用预设的验证样本验证目标SQL语句是否正确;若不准确,则发送错误提示消息至外部,以提醒开发人员手动修改目标语法规则。
关于上述实施例数据库迁移装置中各模块实现技术方案的其他细节,可参见上述实施例中的数据库迁移方法中的描述,此处不再赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
请参阅图6,图6为本申请实施例的终端的结构示意图。如图6所示,该终端60包括处理器61及和处理器61耦接的存储器62。
存储器62存储有程序指令,程序指令被处理器61执行时,使得处理器61执行上述实施例中的数据库迁移方法的步骤。
其中,处理器61还可以称为CPU(Central Processing Unit,中央处理单元)。处理器1可能是一种集成电路芯片,具有信号的处理能力。处理器61还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图7,图7为本申请实施例的存储介质的结构示意图。本申请实施例的存储介质存储有能够实现上述所有方法的程序文件71,其中,该程序文件71可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据库迁移方法,其特征在于,其包括:
接收数据库迁移指令,所述数据库迁移指令包括源数据库和目标数据库;
将所述源数据库中的数据导出,得到源SQL文件和数据文件;
解析所述源SQL文件,以得到所述源SQL文件中的语法规则信息和关键信息,并根据所述语法规则信息和所述关键信息构建符合所述目标数据库的目标SQL文件;
执行所述目标SQL文件以将所述数据文件导入至所述目标数据库。
2.根据权利要求1所述的数据库迁移方法,其特征在于,所述接收数据库迁移指令,所述数据库迁移指令包括源数据库和目标数据库之后,还包括:
暂停向所述源数据库中写入数据,并将需要存储至所述源数据库中的数据存储至缓存中;
所述执行所述目标SQL文件以将所述数据文件导入至所述目标数据库之后,还包括:
将所述缓存中存储的数据存储至所述目标数据库。
3.根据权利要求1所述的数据库迁移方法,其特征在于,所述将所述源数据库中的数据导出,得到源SQL文件和数据文件,包括:
分析所述数据库中数据表之间的血缘关系;
将存在血缘关系的数据表划分为一个批次,再导出每个批次的数据表的源SQL文件和数据文件。
4.根据权利要求1所述的数据库迁移方法,其特征在于,所述解析所述源SQL文件,以得到所述源SQL文件中的语法规则信息和关键信息,并根据所述语法规则信息和所述关键信息构建符合所述目标数据库的目标SQL文件,包括:
从所述源SQL文件中提取出所有源SQL语句并进行解析,得到每条所述源SQL语句对应的语法规则和关键信息;
获取所述目标数据库的目标数据库类型,基于所述目标数据库类型确认查询范围;
根据所述查询范围在预设的知识库中查询每条所述源SQL语句的语法规则对应的目标语法规则;
根据所述目标语法规则和所述关键信息生成每条所述源SQL语句对应的目标SQL语句,由所述目标SQL语句组成目标SQL文件。
5.根据权利要求4所述的数据库迁移方法,其特征在于,所述根据所述查询范围在预设的知识库中查询每条所述源SQL语句的语法规则对应的目标语法规则,包括:
判断在所述查询范围内是否存在与所述语法规则对应的目标语法规则;
若存在,则获取所述目标语法规则;
若不存在,则发送手动补充指令至外部以提醒开发人员手动补充与所述语法规则对应且符合所述目标数据库的目标语法规则。
6.根据权利要求5所述的数据库迁移方法,其特征在于,所述发送手动补充指令至外部以提醒开发人员手动补充与所述语法规则对应且符合所述目标数据库的目标语法规则之后,还包括:
建立所述语法规则与所述目标语法规则之间的对应关系,并将所述语法规则、所述目标语法规则、所述对应关系存储至所述知识库中。
7.根据权利要求4所述的数据库迁移方法,其特征在于,所述根据所述目标语法规则和所述关键信息生成每条所述源SQL语句对应的目标SQL语句,由所述目标SQL语句组成目标SQL文件之后,还包括:
利用预设的验证样本验证所述目标SQL语句是否正确;
若不准确,则发送错误提示消息至外部,以提醒开发人员手动修改所述目标语法规则。
8.一种数据库迁移装置,其特征在于,其包括:
接收模块,用于接收数据库迁移指令,所述数据库迁移指令包括源数据库和目标数据库;
导出模块,用于将所述源数据库中的数据导出,得到源SQL文件和数据文件;
解析模块,用于解析所述源SQL文件,以得到所述源SQL文件中的语法规则信息和关键信息,并根据所述语法规则信息和所述关键信息构建符合所述目标数据库的目标SQL文件;
导入模块,用于执行所述目标SQL文件以将所述数据文件导入至所述目标数据库。
9.一种终端,其特征在于,所述终端包括处理器、与所述处理器耦接的存储器,所述存储器中存储有程序指令,所述程序指令被所述处理器执行时,使得所述处理器执行如权利要求1-7中任一项权利要求所述的数据库迁移方法的步骤。
10.一种存储介质,其特征在于,存储有能够实现如权利要求1-7中任一项所述的数据库迁移方法的程序文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011624019.5A CN112632038A (zh) | 2020-12-31 | 2020-12-31 | 数据库迁移方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011624019.5A CN112632038A (zh) | 2020-12-31 | 2020-12-31 | 数据库迁移方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112632038A true CN112632038A (zh) | 2021-04-09 |
Family
ID=75289699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011624019.5A Pending CN112632038A (zh) | 2020-12-31 | 2020-12-31 | 数据库迁移方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632038A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127124A (zh) * | 2021-04-21 | 2021-07-16 | 平安付科技服务有限公司 | 数据库语言类型切换方法、装置、计算机设备及存储介质 |
CN113297182A (zh) * | 2021-06-16 | 2021-08-24 | 中国农业银行股份有限公司 | 数据迁移方法、设备、存储介质及程序产品 |
CN113312336A (zh) * | 2021-06-22 | 2021-08-27 | 中国农业银行股份有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
CN113360482A (zh) * | 2021-08-10 | 2021-09-07 | 深圳市中科鼎创科技股份有限公司 | 基于sql数据库的在线迁移方法 |
CN113407514A (zh) * | 2021-05-21 | 2021-09-17 | 济南浪潮数据技术有限公司 | 一种数据库迁移的方法、装置、设备及可读介质 |
CN113626407A (zh) * | 2021-07-30 | 2021-11-09 | 浪潮云信息技术股份公司 | 一种语法转换迁移方法 |
CN117407362A (zh) * | 2023-12-15 | 2024-01-16 | 中电云计算技术有限公司 | 一种异构文件系统间文件迁移的方法与装置 |
CN117992436A (zh) * | 2024-04-03 | 2024-05-07 | 深圳九有数据库有限公司 | 基于不同类型数据库的信息系统自动改造方法及设备 |
-
2020
- 2020-12-31 CN CN202011624019.5A patent/CN112632038A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127124A (zh) * | 2021-04-21 | 2021-07-16 | 平安付科技服务有限公司 | 数据库语言类型切换方法、装置、计算机设备及存储介质 |
CN113407514A (zh) * | 2021-05-21 | 2021-09-17 | 济南浪潮数据技术有限公司 | 一种数据库迁移的方法、装置、设备及可读介质 |
CN113297182A (zh) * | 2021-06-16 | 2021-08-24 | 中国农业银行股份有限公司 | 数据迁移方法、设备、存储介质及程序产品 |
CN113297182B (zh) * | 2021-06-16 | 2024-01-30 | 中国农业银行股份有限公司 | 数据迁移方法、设备、存储介质及程序产品 |
CN113312336A (zh) * | 2021-06-22 | 2021-08-27 | 中国农业银行股份有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
CN113626407A (zh) * | 2021-07-30 | 2021-11-09 | 浪潮云信息技术股份公司 | 一种语法转换迁移方法 |
CN113360482A (zh) * | 2021-08-10 | 2021-09-07 | 深圳市中科鼎创科技股份有限公司 | 基于sql数据库的在线迁移方法 |
CN117407362A (zh) * | 2023-12-15 | 2024-01-16 | 中电云计算技术有限公司 | 一种异构文件系统间文件迁移的方法与装置 |
CN117407362B (zh) * | 2023-12-15 | 2024-04-16 | 中电云计算技术有限公司 | 一种异构文件系统间文件迁移的方法与装置 |
CN117992436A (zh) * | 2024-04-03 | 2024-05-07 | 深圳九有数据库有限公司 | 基于不同类型数据库的信息系统自动改造方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112632038A (zh) | 数据库迁移方法、装置、终端及存储介质 | |
WO2020233367A1 (zh) | 区块链数据存储和查询方法、装置、设备及存储介质 | |
CN111339041B (zh) | 文件解析入库、文件生成方法及装置 | |
CN109491989B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
WO2023060878A1 (zh) | 一种数据查询方法、系统、异构加速平台及存储介质 | |
US20190325021A1 (en) | Method and Device for Creating Hyperlink | |
US11366808B2 (en) | Query processing method, data source registration method, and query engine | |
US20100293161A1 (en) | Automatically avoiding unconstrained cartesian product joins | |
CN106919612A (zh) | 一种上线结构化查询语言脚本的处理方法及装置 | |
WO2018188539A1 (zh) | 一种数据处理方法、终端、设备以及存储介质 | |
CN112015722A (zh) | 数据库管理方法、数据血缘分析方法以及相关装置 | |
CN109558166A (zh) | 一种面向缺陷定位的代码搜索方法 | |
CN104536987A (zh) | 一种查询数据的方法及装置 | |
CN110955714A (zh) | 一种将非结构化文本转化为结构化文本的方法及装置 | |
TW202004527A (zh) | 資料庫存取方法及裝置 | |
CN113672628A (zh) | 数据血缘分析方法、终端设备及介质 | |
CN111198898A (zh) | 大数据查询方法及大数据查询装置 | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN115905630A (zh) | 一种图数据库查询方法、装置、设备及存储介质 | |
CN111444208B (zh) | 一种数据更新方法及相关设备 | |
CN108780452B (zh) | 一种存储过程处理方法及装置 | |
CN115408383A (zh) | 高并发数据入库方法、装置、电子设备及存储介质 | |
WO2021259290A1 (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN114281842A (zh) | 一种数据库分表查询的方法及设备 | |
CN115390936A (zh) | 统一校验方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |