CN115757481A - 数据迁移方法、装置、设备和存储介质 - Google Patents
数据迁移方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN115757481A CN115757481A CN202211522149.7A CN202211522149A CN115757481A CN 115757481 A CN115757481 A CN 115757481A CN 202211522149 A CN202211522149 A CN 202211522149A CN 115757481 A CN115757481 A CN 115757481A
- Authority
- CN
- China
- Prior art keywords
- database
- file
- key
- migrated
- structured list
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据迁移方法、装置、设备和存储介质,涉及金融技术领域,该方法包括:获取第一数据库中的源文件和第一数据库的数据库类型,根据数据库类型,确定输入解析器,输入解析器用于根据预设的输入模板将源文件解析为键值对并存储至结构化列表中,获取结构化列表并输入至输出解析器,输出解析器用于根据预设的输出模板将结构化列表中的键值对装配为待迁移文件,获取待迁移文件,将待迁移文件导入至第二数据库,第二数据库与第一数据库为异构数据库。该技术方案解决了异构数据库之间脚本兼容性问题,不需要人工费事费力的修改脚本格式,提高了数据迁移效率。
Description
技术领域
本申请涉及金融科技技术领域,尤其涉及一种数据迁移方法、装置、设备和存储介质。
背景技术
数据库是大多数金融行业必不可少的基础,在数据库日常运维中常常需要进行数据迁移,涉及数据导出、导入、加工处理等操作,而不同种类的数据库支持的结构化查询语言脚本格式不尽相同,异构数据库之间必须进行结构化查询语言脚本格式转换。
目前在数据迁移的过程中,一般是先从第一数据库中导出结构化查询语言脚本,然后进行一些手工的格式转换修改,然后再导入至其他类型的异构数据库中,这种手工方式效率低。
发明内容
本申请提供一种数据迁移方法、装置、设备和存储介质,用于解决现有异构数据库之间数据迁移效率低的问题。
第一方面,本申请实施例提供一种数据迁移方法,包括:
获取第一数据库中的源文件和所述第一数据库的数据库类型;
根据所述数据库类型,确定输入解析器,所述输入解析器用于根据预设的输入模板将所述源文件解析为键值对并存储至结构化列表中;
获取所述结构化列表并输入至输出解析器,所述输出解析器用于根据预设的输出模板将所述结构化列表中的键值对装配为待迁移文件;
获取所述待迁移文件,将所述待迁移文件导入至第二数据库,所述第二数据库与所述第一数据库为异构数据库。
在第一方面的一种可能设计中,所述获取所述结构化列表,包括:
确定所述源文件的大小是否大于预设阈值;
若所述源文件的大小大于预设阈值,则将所述源文件分段为至少两个子文件;
根据所述输入解析器将所述至少两个子文件解析为键值对并存储至结构化列表中。
在第一方面的另一种可能设计中,所述根据所述输入解析器将所述源文件解析为键值对并存储至结构化列表中,包括:
扫描读取所述子文件中每个数据行所包含的内容;
在每个数据行所包含的内容中确定出键和与所述键关联的值;
将所述输入模板中的占位符替换为所述键和与所述键关联的值,得到结构化数据;
根据所述子文件中每个数据行的排列顺序,对所述结构化数据进行整理,得到所述结构化列表。
在第一方面的再一种可能设计中,所述获取所述待迁移文件,包括:
对所述结构化列表进行遍历,从所述结构化列表中获取每个数据行所包含的键和与所述键关联的值;
将所述每个数据行所包含的键和与所述键关联的值输入至所述输出解析器以装配得到待迁移文件。
在第一方面的又一种可能设计中,所述将所述每个数据行所包含的键和与所述键关联的值输入至所述输出解析器以装配得到待迁移文件,包括:
将所述输出模板中的占位符替换为所述键和与所述键关联的值以装配得到待迁移文件。
在第一方面的又一种可能设计中,所述结构化列表包括有至少一个数据行,所述数据行包括有至少一个键值对,所述键值对包括键和与所述键关联的值。
在第一方面的又一种可能设计中,所述源文件为结构化查询语言。
第二方面,本申请实施例提供一种数据迁移装置,包括:
文件获取模块,用于获取第一数据库中的源文件和所述第一数据库的数据库类型;
输入解析器调用模块,用于根据所述数据库类型,确定输入解析器,所述输入解析器用于根据预设的输入模板将所述源文件解析为键值对并存储至结构化列表中;
输出解析器调用模块,用于获取所述结构化列表并输入至输出解析器,所述输出解析器用于根据预设的输出模板将所述结构化列表中的键值对装配为待迁移文件;
文件导入模块,用于获取所述待迁移文件,将所述待迁移文件导入至第二数据库,所述第二数据库的数据库类型与所述第一数据库的数据库类型不同。
第三方面,本申请实施例提供一种计算机设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如上任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现如上述的方法。
本申请实施例提供的数据迁移方法、装置、设备和存储介质,根据待进行数据迁移的数据库类型选择相应的输入解析器,结合输入模板完成源文件解析,处理结果可以选择指定的输出解析器结合输出模板输出符合要求的待迁移文件并导入至第二数据库中。本发明解决了异构数据库之间脚本兼容性问题,不需要人工费事费力的修改脚本格式,提高了数据迁移效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理;
图1为本申请实施例提供的数据迁移的场景示意图;
图2为本申请实施例提供的数据迁移方法的流程示意图;
图3为本申请实施例提供的输入解析器的工作流程示意图;
图4为本申请实施例提供的结构化列表的示意图;
图5为本申请实施例提供的脚本处理器的工作流程示意图;
图6为本申请实施例提供的输出解析器的工作流程示意图;
图7为本申请实施例提供的数据迁移装置的结构示意图;
图8为本申请实施例提供的计算机设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请所涉及的名词进行解释:
数据库,是一种按照数据结构来组织、存储和管理数据的仓库,通过数据库可以实现数据的存储、共享、组织与统一管理,数据库可以分为关系型数据库、非关系型数据库、分布式数据库等。
结构化查询语言(Structured Query Language,SQL):一种按照一定格式书写的结构化计算机语言,可实现对数据库的基本操作。
脚本:使用一种特定的描述性语言,依据一定的格式编写的可执行文件。
在涉及数据迁移的场景中,很多成熟的数据库都有相应的解决方案,可以导出其独特的数据文件,但也仅限于同构数据库之间的数据迁移,在异构数据库之间进行数据迁移的时候,往往只能通过SQL脚本的形式,而不同数据库对SQL所遵循的规范有所差异,因此需要根据目标数据库对SQL脚本进行一定的手工调整。同构数据库迁移一般采用导出导入其特有的迁移文件,结合相应的命令进行操作,异构数据库之间迁移一般是先导出SQL脚本,进行一些手工修改之后,再导入其他数据库,针对一些需要特别处理的场景,比如从一个数据表中导出数据文件然后导入另外多个异构数据表的时候目前市场上还没有成熟产品。在某些业务场景中,还需要对导出的脚本进行一些业务逻辑的加工处理,传统的解决方案无法针对导出的数据文件进行自动加工,只能导入目标数据库之后,在目标机器上再执行相应SQL语句来实现某些数据处理逻辑,这可能给数据库运行性能带来影响,特别在一些数据量大、处理逻辑复杂、耗时长的场景中尤为明显。其具体存在以下缺点:1)手工处理,容易出错,不适合大批量处理;2)异构数据库迁移存在兼容性问题;3)在线处理复杂逻辑占用数据库服务器资源,容易影响数据库性能。
针对上述问题,本发明涉及一种基于Java的通用SQL脚本解析处理器,根据不同的脚本选择相应的输入解析器,结合输入模板完成脚本读取,用户可重写处理器完成复杂的处理过程,处理结果可以选择指定的输出解析器结合输出模板输出符合要求的脚本。本发明解决了异构数据库之间脚本兼容性问题,同时将复杂的处理流程离线处理,实现处理结果可追溯可单步调试的效果,避免生产环境数据库占用计算资源影响性能的问题。
下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图1为本申请实施例提供的数据迁移的场景示意图,如图1所示,数据库A和数据库B为异构数据库,其中,异构数据库是指两个数据库中各自的SQL语言的格式是不一样的,在数据迁移的过程,需要进行SQL脚本格式的转换才能够使得数据迁移到另一个数据库中依然可以运行。在本实施例中,源脚本来自于数据库A,其通过输入解析器进行解析之后,再由脚本处理器基于处理逻辑进行处理,最后输入到输出解析器转化为目标脚本,目标脚本在迁移到数据库B之后,可以在数据库B正常使用运行。
图2为本申请实施例提供的数据迁移方法的流程示意图,该方法可以应用于计算机设备,以计算机设备作为执行主体为例,如图2所示,该方法可以包括如下步骤:步骤S201,获取第一数据库中的源文件和第一数据库的数据库类型。
在本实施例中,第一数据库是指需要进行数据迁移的数据库,不同数据库对SQL所遵循的规范所有差异,例如在后文提到的第二数据库(即接收迁移数据的数据库),其与第一数据库对SQL所遵循的规范所有差异。其中,第一数据库与第二数据库为异构数据库,在数据从第一数据库迁移到第二数据库时,需要通过SQL脚本的形式来实现数据的迁移,而由于不同数据库对SQL所遵循的规范有所差异,因此需要根据第二数据库对SQL脚本进行格式调整。
在本实施例中,源文件是指第一数据库的源SQL脚本,即为结构化查询语言,在本实施例中,第一数据库中的数据可以导出为源SQL脚本。
步骤S202,根据数据库类型,确定输入解析器。其中,输入解析器用于根据预设的输入模板将源文件解析为键值对并存储至结构化列表中。
在本实施例中,通过数据库类型可以调用不同的输入解析器,示例性的,可以设置调用关系,例如类型为H1的数据库调用的输入解析器为S1,类型为H2的数据库调用的输入解析器为S2。
其中,输入模板可以由用户根据实际情况选定,即计算机设备可以接收用户发出的选取信号,由此确定出对应的输入模板。示例性的,输入模板的格式举例如下:{COL1}={VAL1},{COL2}={VAL2},{COL3}={VAL3},…,{COLn}={VALn},其中,COLn、VALn将会被替换为源SQL脚本中的内容。
在本实施例中,输入解析器可以根据输入模板,将SQL脚本中的内容对应的解析到输入模板中,最终得到的输入模板再进行整理形成结构化列表。其中,结构化列表会存储到内存中。
在本实施例中,参考图1,可以重写脚本处理器中的处理逻辑,重新定义对SQL加工处理里欧及,脚本处理器加载处理逻辑对输入解析器解析的数据进行业务处理。
步骤S203,获取结构化列表并输入至输出解析器,输出解析器用于根据预设的输出模板将结构化列表中的键值对装配为待迁移文件。
步骤S204,获取待迁移文件,将待迁移文件导入至第二数据库,第二数据库的数据库类型与第一数据库的数据库类型不同。
在本实施例中,计算机设备可以读取输出模板(输出模板可以是用户预先设定的),在核心逻辑处理完成之后,输出解析器根据结构化列表,按照输出模板装配输出内容。其中,输出模板中设置有相应的格式,通过将结构化列表中的内容装配至输出模板之后,就可以得到第二数据库的SQL脚本,完成格式转换并导入第二数据库。
本申请实施例通过根据不同的脚本选择相应的输入解析器,结合输入模板完成脚本读取,用户可重写处理器完成复杂的处理过程,处理结果可以选择指定的输出解析器结合输出模板输出符合要求的脚本。本发明解决了异构数据库之间脚本兼容性问题,同时将复杂的处理流程离线处理,实现处理结果可追溯可单步调试的效果,避免生产环境数据库占用计算资源影响性能的问题。
在另一些实施例中,在确定结构化列表时,具体可以通过如下步骤实现:确定源文件的大小是否大于预设阈值;若源文件的大小大于预设阈值,则将源文件分段为至少两个子文件;根据输入解析器将至少两个子文件解析为键值对并存储至结构化列表中。
示例性的,图3为本申请实施例提供的输入解析器的工作流程示意图,如图3所示,其包括如下步骤:S301,加载用户自定义的输入模板。步骤S302,加载待处理的源SQL脚本。步骤S303,判断源SQL脚本是否为大文件(即SQL脚本的大小是否大于预设阈值,因为如果为大文件全部载入存会造成内存溢出)。步骤S304,如果为大文件,则大分段读取,分段处理(段的大小需要根据计算机设备的性能设置,段的大小默认为1GB)。步骤S305,如果不为大文件,则一次性全部读入内存。步骤S306,内容解析得到输入数据的结构化表示。步骤S307,对结构化数据进行整理、优化、排序并输出。
示例性的,在其他实施例中,结构化列表包括有至少一个数据行,数据行包括有至少一个键值对,键值对包括键和与键关联的值。示例性的,图4为本申请实施例提供的结构化列表的示意图,如图4所示,一个列表中包括有多个元素,每一个元素可以包括多个键值对,其中,列表可以是指源SQL文件,列表中的每个元素是指源SQL文件中的每一行,键值对是指每一行中包含的内容。
在本实施例中,列表中的每个元素可以是图对象(又称MAP对象,即将键映射到值的对象),也可以是一个实体(Entity)对象。示例性的,Map对象中的键值是由输入解析器根据输入模板从源SQL文件解析出来的内容。
本申请实施例通过对源SQL脚本进行分段读取,当源SQL脚本过大时,能够避免造成计算机设备的内存溢出,提高脚本处理过程中的稳定性。
在上述实施例的基础上,在另一些实施例中,上述“根据输入解析器将源文件解析为键值对并存储至结构化列表中”,具体可以通过如下步骤实现:扫描读取子文件中每个数据行所包含的内容;在每个数据行所包含的内容中确定出键和与键关联的值;将输入模板中的占位符替换为键和与键关联的值,得到结构化数据;根据子文件中每个数据行的排列顺序,对结构化数据进行整理,得到结构化列表。
在本实施例中,可以逐行扫描源SQL脚本的子文件,将子文件中的每一个数据行所包含的内容按照指定输入模板检索替换占位符,得到结构化数据。其中,键和值组成键值对,示例性的,可参考上述图4,图中的key1、key2、key3和key4即为键,value1、value2、value3、value4即为值,不同的键关联不同的值,例如key1关联value1。其中,占位符可以分为键占位符和值占位符,如果数据行的内容为键,则对应的替换掉输入模板的键占位符,如果数据行的内容为值,则对应的替换掉输入模板的值占位符。
在本实施例中,输入模板和输出模板的格式不相同,对应的,输入模板的格式可以是与第一数据库的SQL脚本格式相同,输出模板的格式可以是与第二数据库的SQL脚本格式相同。
本申请实施例通过利用输入模板和输入解析器对源SQL脚本进行解析,得到结构化列表,可以解决异构数据库之间脚本兼容性问题,提高异构数据库之间的数据迁移效率。
进一步的,在上述实施例的基础上,在一些实施例中,上述获取待迁移文件具体可以通过如下步骤实现:对结构化列表进行遍历,从结构化列表中获取每个数据行所包含的键和与键关联的值;将每个数据行所包含的键和与键关联的值输入至输出解析器以装配得到待迁移文件。
在本实施例中,在得到结构化列表之后,可以通过图1所示的脚本处理器对结构化列表进行处理,示例性的,图5为本申请实施例提供的脚本处理器的工作流程示意图,如图5所示,其包括如下步骤:步骤S501、循环遍历结构化列表。步骤502,判断结构化列表是否处理完毕。步骤503,若未处理完毕,则逐个取出列表中的元素。步骤504,若已处理完毕,则输出到输出解析器进行解析输出。步骤505,取出元素中的键值对。步骤506,处理器加载处理逻辑文件。其中,可在离线状态下对源SQL脚本进行复杂的业务处理,既不占用生产环境计算资源,又不改动生产环境数据,最大限度保证生产环境稳定性。步骤S507,组装处理结果。步骤S508,对执行处理逻辑过程中产生的异常进行捕获并处理。
本申请实施例根据不同的脚本选择相应的输入解析器,结合输入模板完成脚本读取,用户可重写处理器完成复杂的处理过程,处理结果可以选择指定的输出解析器结合输出模板输出符合要求的脚本,同时将复杂的处理流程离线处理,实现处理结果可追溯可单步调试的效果,避免生产环境数据库占用计算资源影响性能的问题。
在上述实施例的基础上,在另一些实施例中,可以将输出模板中的占位符替换为键和与键关联的值以装配得到待迁移文件。
在本实施例中,示例性的,输出模板的格式可以是与第二数据库的SQL脚本格式相同,输出模板中的占位符也可以分为键占位符和值占位符,每个键占位符可以关联一个值占位符。其中,可以遍历读取结构化列表中的键值对,按照输出模板的格式装配成SQL语句,同时按照时间戳生成文件名,然后写入至SQL文件中作为待迁移文件。
本申请实施例通过根据不同的脚本选择相应的输出解析器,结合输出模板完成SQL脚本的装配,解决了异构数据库之间脚本兼容性问题,提高了异构数据库之间数据迁移的效率
示例性的,在一些实施例中,图6为本申请实施例提供的输出解析器的工作流程示意图,示例性的,输出解析器可以为Oracle、关系型数据库管理***(MySQL)、SQL Server等多种输出解析器。如图6所示,其包括如下步骤:步骤S601,加载输出模板。其中,输出解析器会按照模板中固定的格式进行输出内容装配。步骤602,循环遍历结构化列表,取出处理后的元素。步骤S603,判断是否遍历完成。步骤S604,取出列表中的键值对。步骤S605,按照输出模板装配结构化查询语句。步骤S606,按照时间戳生成文件名。步骤S607,将处理结果写入的结构化查询语句文件。其中,该结构化查询语句文件文件可在第二数据库直接执行。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图7为本申请实施例提供的数据迁移装置的结构示意图,该数据迁移装置可以位于计算机设备中,如图7所示,该数据迁移装置700具体可以包括文件获取模块710、输入解析器调用模块720、输出解析器调用模块730和文件导入模块740。其中,文件获取模块710用于获取第一数据库中的源文件和第一数据库的数据库类型。输入解析器调用模块720用于根据数据库类型,确定输入解析器,输入解析器用于根据预设的输入模板将源文件解析为键值对并存储至结构化列表中。输出解析器调用模块730用于获取结构化列表并输入至输出解析器,输出解析器用于根据预设的输出模板将结构化列表中的键值对装配为待迁移文件。文件导入模块740用于获取待迁移文件,将待迁移文件导入至第二数据库,第二数据库的数据库类型与第一数据库的数据库类型不同。
可选的,输出解析器调用模块具体可以用于:确定源文件的大小是否大于预设阈值;若源文件的大小大于预设阈值,则将源文件分段为至少两个子文件;根据输入解析器将至少两个子文件解析为键值对并存储至结构化列表中。
可选的,输出解析器调用模块具体可以用于:扫描读取子文件中每个数据行所包含的内容;在每个数据行所包含的内容中确定出键和与键关联的值;将输入模板中的占位符替换为键和与键关联的值,得到结构化数据;根据子文件中每个数据行的排列顺序,对结构化数据进行整理,得到结构化列表。
可选的,文件导入模块具体可以用于:对结构化列表进行遍历,从结构化列表中获取每个数据行所包含的键和与键关联的值;将每个数据行所包含的键和与键关联的值输入至输出解析器以装配得到待迁移文件。
可选的,文件导入模块具体可以用于:将输出模板中的占位符替换为键和与键关联的值以装配得到待迁移文件。
可选的,结构化列表包括有至少一个数据行,数据行包括有至少一个键值对,键值对包括键和与键关联的值。
可选的,源文件为结构化查询语言。
本申请实施例提供的装置,可用于执行上述所示实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,文件导入模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上文件导入模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图8为本申请实施例提供的计算机设备的结构示意图。如图8所示,该计算机设备800包括:至少一个处理器810、存储器820、总线830及通信接口840。其中:处理器810、通信接口840以及存储器820通过总线830完成相互间的通信。通信接口840用于与其它设备进行通信。处理器810用于执行程序,具体可以执行上述实施例中所描述的方法中的相关步骤。处理器可能是中央处理器,或者是特定集成电路(Application Specific IntegratedCircuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。计算机设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。存储器820,用于存放计算机指令。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
本实施例还提供一种可读存储介质,可读存储介质中存储有计算机指令,当计算机设备的至少一个处理器执行该计算机指令时,计算机设备执行上述的各种实施方式提供的数据迁移方法。
本实施例还提供一种程序产品,该程序产品包括计算机指令,该计算机指令存储在可读存储介质中。计算机设备的至少一个处理器可以从可读存储介质读取该计算机指令,至少一个处理器执行该计算机指令使得计算机设备实施上述的各种实施方式提供的数据迁移方法。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。
可以理解的是,在本申请实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种数据迁移方法,其特征在于,包括:
获取第一数据库中的源文件和所述第一数据库的数据库类型;
根据所述数据库类型,确定输入解析器,所述输入解析器用于根据预设的输入模板将所述源文件解析为键值对并存储至结构化列表中;
获取所述结构化列表并输入至输出解析器,所述输出解析器用于根据预设的输出模板将所述结构化列表中的键值对装配为待迁移文件;
获取所述待迁移文件,将所述待迁移文件导入至第二数据库,所述第二数据库与所述第一数据库为异构数据库。
2.根据权利要求1所述的方法,其特征在于,所述获取所述结构化列表,包括:
确定所述源文件的大小是否大于预设阈值;
若所述源文件的大小大于预设阈值,则将所述源文件分段为至少两个子文件;
根据所述输入解析器将所述至少两个子文件解析为键值对并存储至结构化列表中。
3.根据权利要求2所述的方法,其特征在于,所述根据所述输入解析器将所述源文件解析为键值对并存储至结构化列表中,包括:
扫描读取所述子文件中每个数据行所包含的内容;
在每个数据行所包含的内容中确定出键和与所述键关联的值;
将所述输入模板中的占位符替换为所述键和与所述键关联的值,得到结构化数据;
根据所述子文件中每个数据行的排列顺序,对所述结构化数据进行整理,得到所述结构化列表。
4.根据权利要求3所述的方法,其特征在于,所述获取所述待迁移文件,包括:
对所述结构化列表进行遍历,从所述结构化列表中获取每个数据行所包含的键和与所述键关联的值;
将所述每个数据行所包含的键和与所述键关联的值输入至所述输出解析器以装配得到待迁移文件。
5.根据权利要求4所述的方法,其特征在于,所述将所述每个数据行所包含的键和与所述键关联的值输入至所述输出解析器以装配得到待迁移文件,包括:
将所述输出模板中的占位符替换为所述键和与所述键关联的值以装配得到待迁移文件。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述结构化列表包括有至少一个数据行,所述数据行包括有至少一个键值对,所述键值对包括键和与所述键关联的值。
7.根据权利要求1-5中任一项所述的方法,其特征在于,所述源文件为结构化查询语言。
8.一种数据迁移装置,其特征在于,包括:
文件获取模块,用于获取第一数据库中的源文件和所述第一数据库的数据库类型;
输入解析器调用模块,用于根据所述数据库类型,确定输入解析器,所述输入解析器用于根据预设的输入模板将所述源文件解析为键值对并存储至结构化列表中;
输出解析器调用模块,用于获取所述结构化列表并输入至输出解析器,所述输出解析器用于根据预设的输出模板将所述结构化列表中的键值对装配为待迁移文件;
文件导入模块,用于获取所述待迁移文件,将所述待迁移文件导入至第二数据库,所述第二数据库的数据库类型与所述第一数据库的数据库类型不同。
9.一种计算机设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211522149.7A CN115757481A (zh) | 2022-11-30 | 2022-11-30 | 数据迁移方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211522149.7A CN115757481A (zh) | 2022-11-30 | 2022-11-30 | 数据迁移方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757481A true CN115757481A (zh) | 2023-03-07 |
Family
ID=85341365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211522149.7A Pending CN115757481A (zh) | 2022-11-30 | 2022-11-30 | 数据迁移方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757481A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934684A (zh) * | 2023-03-14 | 2023-04-07 | 布比(北京)网络技术有限公司 | 一种多源数据库数据移植方法及装置、设备及存储介质 |
-
2022
- 2022-11-30 CN CN202211522149.7A patent/CN115757481A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934684A (zh) * | 2023-03-14 | 2023-04-07 | 布比(北京)网络技术有限公司 | 一种多源数据库数据移植方法及装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5298117B2 (ja) | 分散コンピューティングにおけるデータマージング | |
CN107943945B (zh) | 一种大数据分析开发平台中异构算子管理方法 | |
US10102039B2 (en) | Converting a hybrid flow | |
US11693912B2 (en) | Adapting database queries for data virtualization over combined database stores | |
US8615526B2 (en) | Markup language based query and file generation | |
US11893011B1 (en) | Data query method and system, heterogeneous acceleration platform, and storage medium | |
CN109299074B (zh) | 一种基于模板化数据库视图的数据校验方法及*** | |
CN112148788A (zh) | 异构数据源的数据同步方法及*** | |
CN113760891B (zh) | 一种数据表的生成方法、装置、设备和存储介质 | |
CN115757481A (zh) | 数据迁移方法、装置、设备和存储介质 | |
CN113419789A (zh) | 数据模型脚本的生成方法和装置 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN113806429A (zh) | 基于大数据流处理框架的画布式日志分析方法 | |
CN109634585B (zh) | 一种基于表单自适应展示和更新服务端数据的方法 | |
CN115221143A (zh) | 一种跨类型迁移的算子化多源大数据处理方法 | |
US20180060404A1 (en) | Schema abstraction in data ecosystems | |
CN113918532A (zh) | 画像标签聚合方法、电子设备及存储介质 | |
US9104356B2 (en) | Extendable system for preprocessing print document and method for the same | |
CN114064601A (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN115809294A (zh) | 一种基于Spark SQL临时视图的快速ETL方法 | |
CN115357625A (zh) | 结构化数据比对方法、装置、电子设备及存储介质 | |
CN115757174A (zh) | 一种数据库的差异检测方法及装置 | |
CN114116773A (zh) | 一种结构化查询语言sql文本审核方法及装置 | |
CN111813777B (zh) | Olap自动创建并写入mq数据的方法及*** | |
US20240028594A1 (en) | Query refactoring framework |
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 |