CN115982129A - 数据迁移方法、装置、电子设备及存储介质 - Google Patents
数据迁移方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115982129A CN115982129A CN202310002858.0A CN202310002858A CN115982129A CN 115982129 A CN115982129 A CN 115982129A CN 202310002858 A CN202310002858 A CN 202310002858A CN 115982129 A CN115982129 A CN 115982129A
- Authority
- CN
- China
- Prior art keywords
- data
- compensation
- compensated
- data table
- target database
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据迁移方法、装置、电子设备及存储介质。涉及大数据处理技术,可用于金融科技领域或其他相关领域,该方法应用于单元化架构,包括:获取补偿数据表,以及补偿数据表的表类型;若表类型指示补偿数据表为预定类数据表,则根据待补偿数据的数据编号查询目标数据库,以确定待补偿数据是否已存在于目标数据库中;若待补偿数据已存在于目标数据库中,且待补偿数据在补偿数据表中的第一时间戳,大于待补偿数据在目标数据库中的第二时间戳,则更新目标数据库中包含有待补偿数据的第二数据表;若待补偿数据未存在于目标数据库中,则将待补偿数据写入目标数据库的第二数据表中。以通过迁移数据的补偿保证异构数据库之间的数据一致性。
Description
技术领域
本申请涉及大数据处理技术,可用于金融科技领域或其他相关领域,尤其涉及一种数据迁移方法、装置、电子设备及存储介质。
背景技术
目前,在异构数据库之间进行数据迁移处理过程中,数据一致性的缺失可能会对交易产生不可预估的风险,因此,异构数据库的数据一致性极为重要。
例如,Orac l e数据库迁移存量数据至MySQL数据库,考虑到从Orac l e数据库迁移至MySQL过程中,对于7*24小时应用的数据库,无间断的维护数据一致性,需要投入巨大的维护成本,而如果无法有效维护数据一致性,又会导致数据一致性缺失。
发明内容
本申请提供一种数据迁移方法、装置、电子设备及存储介质,用以提供一种迁移数据的补偿方案,可以保证异构数据库之间的数据一致性。
一方面,本申请提供一种数据迁移方法,应用于单元化架构,上述方法包括:
获取补偿数据表,以及补偿数据表的表类型,其中,上述补偿数据表包含从单元化架构中的数据库向目标数据库迁移数据过程中缺失的待补偿数据;
若上述表类型指示上述补偿数据表为预定类数据表,则根据上述待补偿数据的数据编号查询上述目标数据库,以确定上述待补偿数据是否已存在于上述目标数据库中;
若上述待补偿数据已存在于上述目标数据库中,且上述待补偿数据在补偿数据表中的第一时间戳,大于上述待补偿数据在上述目标数据库中的第二时间戳,则更新上述目标数据库中包含有上述待补偿数据的第二数据表;
若上述待补偿数据未存在于上述目标数据库中,则将上述待补偿数据写入上述目标数据库的第二数据表中。
进一步地,上述获取补偿数据表,以及补偿数据表的表类型,包括:
获取预定时段内从上述数据库迁移至上述目标数据库的迁移数据,以得到第一数据表,其中,上述数据库和目标数据库为异构数据库,上述迁移数据中包含上述待补偿数据;
获取上述第一数据表中预定个数的待补偿数据,以得到补偿数据表;
根据上述补偿数据表中的待补偿数据是否包含时间戳,确定上述补偿数据表的表类型,其中,包含有时间戳对应的表类型为上述预定类数据表,上述预定类数据表包括如下至少之一:客户表、协议表。
进一步地,在获取上述补偿数据表的表类型之前,上述方法还包括:
获取预先确定的补偿配置参数,其中,上述补偿配置参数包括:预定单次处理个数;
若上述补偿数据列表中的待补偿数据小于上述预定单次处理个数,则将数据补偿循环流程的标志位标记为结束;
若上述补偿数据列表中的待补偿数据大于或等于上述预定单次处理个数,则创建预定大小的多个线程,以并行处理上述待补偿数据列表。
进一步地,在获取上述第一数据表中预定个数的待补偿数据,以得到补偿数据表之前,上述方法还包括:
获取数据补偿循环流程的标志位,以确定数据补偿循环流程是否结束;
如果确定上述数据补偿循环流程已结束,则在上述第一数据表中记录上述多个线程各自对应的补偿处理结果,以得到处理日志,其中,上述处理日志未报错则表征数据补偿成功;
如果确定上述数据补偿循环流程未结束,则执行上述获取上述第一数据表中预定个数的待补偿数据,以得到补偿数据表的步骤。
进一步地,在根据上述补偿数据表中待补偿数据的数据编号查询上述目标数据库之前,上述方法还包括:
若确定上述补偿数据表中待补偿数据的数据编号为空值,则确定上述补偿数据表对应的补偿处理结果为补偿处理失败;
若确定上述补偿数据表中待补偿数据的数据编号为非空值,则确定执行上述根据上述数据编号查询上述目标数据库的步骤。
进一步地,上述方法还包括:
若上述表类型指示上述补偿数据表为除上述预定类数据表外的其他类数据表,则获取上述第一数据表插入或更新的字符串;
若确定上述字符串已存在于上述第二数据表,则基于上述字符串更新上述第二数据表,若确定上述字符串未存在于上述第二数据表,则将上述字符串插入上述第二数据表。
另一方面,本申请提供一种数据迁移装置,应用于单元化架构,上述装置包括:
获取模块,用于获取补偿数据表,以及补偿数据表的表类型,其中,上述补偿数据表包含从单元化架构中的数据库向目标数据库迁移数据过程中缺失的待补偿数据;
查询模块,用于若上述表类型指示上述补偿数据表为预定类数据表,则根据上述待补偿数据的数据编号查询上述目标数据库,以确定上述待补偿数据是否已存在于上述目标数据库中;
更新模块,用于若上述待补偿数据已存在于上述目标数据库中,且上述待补偿数据在补偿数据表中的第一时间戳,大于上述待补偿数据在上述目标数据库中的第二时间戳,则更新上述目标数据库中包含有上述待补偿数据的第二数据表;
写入模块,用于若上述待补偿数据未存在于上述目标数据库中,则将上述待补偿数据写入上述目标数据库的第二数据表中。
进一步地,上述获取模块,包括:
第一获取单元,用于获取预定时段内从上述数据库迁移至上述目标数据库的迁移数据,以得到第一数据表,其中,上述数据库和目标数据库为异构数据库,上述迁移数据中包含上述待补偿数据;
第二获取单元,用于获取上述第一数据表中预定个数的待补偿数据,以得到补偿数据表;
确定单元,用于根据上述补偿数据表中的待补偿数据是否包含时间戳,确定上述补偿数据表的表类型,其中,包含有时间戳对应的表类型为上述预定类数据表,上述预定类数据表包括如下至少之一:客户表、协议表。
进一步地,上述装置还包括:
参数获取模块,用于获取预先确定的补偿配置参数,其中,上述补偿配置参数包括:预定单次处理个数;
标记模块,用于若上述补偿数据列表中的待补偿数据小于上述预定单次处理个数,则将数据补偿循环流程的标志位标记为结束;
处理模块,用于若上述补偿数据列表中的待补偿数据大于或等于上述预定单次处理个数,则创建预定大小的多个线程,以并行处理上述待补偿数据列表。
进一步地,上述装置还包括:
标志位获取模块,用于获取数据补偿循环流程的标志位,以确定数据补偿循环流程是否结束;
记录模块,用于如果确定上述数据补偿循环流程已结束,则在上述第一数据表中记录上述多个线程各自对应的补偿处理结果,以得到处理日志,其中,上述处理日志未报错则表征数据补偿成功;
执行模块,用于如果确定上述数据补偿循环流程未结束,则执行上述第二获取单元。
进一步地,上述装置还包括:
第一判断模块,用于判断上述补偿数据表中待补偿数据的数据编号是否为空值;
第一确定模块,用于若上述数据编号为空值,则确定上述补偿数据表对应的补偿处理结果为补偿处理失败;
第二确定模块,用于若上述数据编号为非空值,则确定执行上述查询模块。
进一步地,上述装置还包括:
字符串获取模块,用于若上述表类型指示上述补偿数据表为除上述预定类数据表外的其他类数据表,则获取上述第一数据表插入或更新的字符串;
第二判断模块,用于判断上述字符串是否已存在于上述第二数据表;
字符串处理模块,用于若上述字符串已存在于上述第二数据表,则基于上述字符串更新上述第二数据表,若上述字符串未存在于上述第二数据表,则将上述字符串插入上述第二数据表。
另一方面,本申请提供一种电子设备,包括:处理器,以及与上述处理器连接的存储器;上述存储器存储计算机执行指令;上述处理器执行上述存储器存储的计算机执行指令,以实现如任一项上述的方法。
另一方面,本申请提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机执行指令,上述计算机执行指令被处理器执行时用于实现如任一项上述的方法。
另一方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现任一项上述的方法。
本申请提供的数据迁移方法、装置、电子设备及存储介质,应用于单元化架构,通过获取补偿数据表,以及补偿数据表的表类型,由于补偿数据表包含从单元化架构中的数据库向目标数据库迁移数据过程中缺失的待补偿数据;在确定表类型指示补偿数据表为预定类数据表时,则根据待补偿数据的数据编号查询目标数据库,以确定待补偿数据是否已存在于目标数据库中;若待补偿数据已存在于目标数据库中,且待补偿数据在补偿数据表中的第一时间戳,大于待补偿数据在目标数据库中的第二时间戳,则更新目标数据库中包含有待补偿数据的第二数据表;若待补偿数据未存在于目标数据库中,则将待补偿数据写入目标数据库的第二数据表中。
通过提供一种迁移数据的补偿方案,针对数据迁移过程中导致的数据丢失或缺失,以进行数据补偿处理;针对数据库的数据更新后没有及时同步到目标数据库,进行数据更新处理,可以保证异构数据库之间的数据一致性,避免迁移数据的缺失,且实现简单。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种数据迁移方法的流程示意图;
图2为本申请实施例提供的一种可选的数据迁移方法的流程示意图;
图3是本发明实施例所提供的一种可选的数据迁移方法的流程示意图;
图4是本发明实施例所提供的一种可选的数据迁移方法的流程示意图;
图5是本发明实施例所提供的一种可选的数据迁移方法的流程示意图;
图6为本申请实施例提供的一种数据迁移装置的结构框图;
图7为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
单元化:一种架构模式,单元是指一个能完成所有业务操作的自包含集合,在这个集合中包含了所有业务所需的所有服务,以及分配给这个单元的数据。单元化架构就是将单元作为部署的基本单位,在全站所有机房中部署多个单元,每个机房内单元数目不固定,任一单元均部署系统所需的全部应用,数据则是全量数据按照某种维度划分后的一部分。
异构数据库:是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,几个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的数据库管理系统、外构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍有自己的应用特性、完整性控制和安全性控制。
在一些应用程序进行单元化架构转型建设的过程中,以单元化架构下的异步数据库为例,存量数据从Orac l e数据库迁移至MySQL数据库,单个数据库的亿万级数据量需要拆分到128个分片。在日间同步数据、迁移数据的过程中,可能会存在数据误差或数据未及时同步及数据丢失的情况。
为解决异构数据库数据在日间数据迁移或同步过程中,可能会存在数据误差或数据未及时同步及数据丢失的问题,本发明实施例提出一种迁移数据方法,旨在解决现有技术的如上技术问题,给出在日间同步后进行批量补偿的补偿机制,可以保证迁移数据的一致性。
需要说明的是,本公开数据迁移方法和装置可用于金融领域。也可用于除金融领域以外的任意领域。本公开数据迁移方法和装置应用领域不作限定。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本发明实施例提供了一种数据迁移方法,应用于单元化架构,图1是本发明实施例所提供的一种数据迁移方法的流程示意图,如图1所示,该方法包括:
S101,获取补偿数据表,以及补偿数据表的表类型。
S102,若上述表类型指示上述补偿数据表为预定类数据表,则根据上述待补偿数据的数据编号查询上述目标数据库,以确定上述待补偿数据是否已存在于上述目标数据库中。
S103,若上述待补偿数据已存在于上述目标数据库中,且上述待补偿数据在补偿数据表中的第一时间戳,大于上述待补偿数据在上述目标数据库中的第二时间戳,则更新上述目标数据库中包含有上述待补偿数据的第二数据表。
S104,若上述待补偿数据未存在于上述目标数据库中,则将上述待补偿数据写入上述目标数据库的第二数据表中。
可选的,上述补偿数据表包含从单元化架构中的数据库向目标数据库迁移数据过程中缺失的待补偿数据。
在本公开实施例中,上述数据库和目标数据库为单元化架构中的异构数据库,例如,数据库可以为Orac l e数据库,目标数据库可以为MySQL数据库。本申请实施例可以应用于在一些应用程序进行单元化架构转型建设的场景中,以单元化架构下的异步数据库为例,从Orac l e数据库中导出存量数据至MySQL数据库,即向MySQL数据库中导入存量数据。
可选的,数据库迁移至目标数据库的迁移数据可以但不限于为交易过程中产生的存量数据,例如,交易信息、客户协议参数等。并且,迁移数据中包含迁移数据过程中缺失的待补偿数据。
针对这些不同类型的存量数据,可以采用不同类型的补偿数据表执行补偿处理操作,需要说明的是,在本公开实施例中,不同类型的补偿数据表配置的补偿规则有差别,且可以兼容不同的补偿以及数据基准规则,且规则格式一致,配置方便简单。
一种可选的实施例中,包含有时间戳对应的表类型为上述预定类数据表,上述预定类数据表包括如下至少之一:客户表、协议表。
对于预定类数据表,根据预定类数据表中待补偿数据的数据编号,查询MySQL数据库,以确定待补偿数据是否已存在于MySQL数据库中。
若查询到待补偿数据存在于MySQL数据库中,则比较待补偿数据在补偿数据表中的第一时间戳,和待补偿数据在MySQL数据库的第二时间戳,以确定补偿数据表中的待补偿数据是否为已更新后的数据。
为保证数据一致性,如果上述待补偿数据在补偿数据表中的第一时间戳,大于上述待补偿数据在MySQL数据库的第二时间戳,则采用补偿数据表中的待补偿数据,更新MySQL数据库中包含有上述待补偿数据的正式数据表。
若查询到待补偿数据未存在于MySQL数据库中,则表征该待补偿数据可能存在缺失或者丢失的情况,需要补偿处理,直接将上述待补偿数据写入至MySQL数据库中的正式数据表。
一种示例中,如果补偿数据表为协议表,则可以根据协议表中待补偿数据的协议编号,查询MySQL数据库,以确定待补偿数据是否已存在于MySQL数据库中。
如果不存在,则直接将协议表中的待补偿数据写入至MySQL数据库中的正式数据表。
如果存在,为保证数据一致性,且确定待补偿数据在协议表的第一时间戳,大于上述待补偿数据在MySQL数据库的第二时间戳,则采用协议表中的待补偿数据,更新MySQL数据库中包含有上述待补偿数据的正式数据表。
如果存在,且确定待补偿数据在客户表的第一时间戳,大于上述待补偿数据在MySQL数据库的第二时间戳,则直接忽略即可,无需继续处理。
再例如另一示例中,如果补偿数据表为客户表,则可以根据客户表中待补偿数据的客户编号查询MySQL数据库,以确定客户表中的待补偿数据是否已存在于MySQL数据库中。
如果不存在,则直接将客户表中的待补偿数据写入至MySQL数据库中的正式数据表。
如果存在,为保证数据一致性,且确定待补偿数据在协议表的第一时间戳,大于上述待补偿数据在MySQL数据库的第二时间戳,则采用客户表中的待补偿数据,更新MySQL数据库中包含有上述待补偿数据的正式数据表。
如果存在,且确定待补偿数据在协议表的第一时间戳,大于上述待补偿数据在MySQL数据库的第二时间戳,则直接忽略即可,无需继续处理。
一种可选的实施例中,补偿处理完成后更新临时数据表的处理结果为处理成功,其他异常情况则将临时数据表的处理结果更新为处理失败,并记录失败信息,所有记录处理完成后则确定补偿流程结束。
本公开实施例中,记录处理结果是以便于对补偿流程进行数据验证,可以对临时数据表与正式数据表进行双向核对,核对完成需进行处理结果的记录,同步更新正式数据表(数据补偿)以及临时数据表(更新状态及补偿处理结果),可以有效维护异构数据库之间的数据一致性。
由此,本申请提供的数据迁移方法,通过提供一种迁移数据的补偿方案,针对数据迁移过程中导致的数据丢失或缺失,以进行数据补偿处理;针对Orac l e数据库的数据更新后没有及时同步到MySQL数据库,进行数据更新处理,可以保证异构数据库之间的数据一致性,且实现简单。
一种示例中,如图2所示,上述S101,获取补偿数据表,以及补偿数据表的表类型,包括:
S201,获取预定时段内从上述数据库迁移至上述目标数据库的迁移数据,以得到第一数据表。
S202,获取上述第一数据表中预定个数的待补偿数据,以得到补偿数据表。
S203,根据上述补偿数据表中的待补偿数据是否包含时间戳,确定上述补偿数据表的表类型。
可选的,上述预定时间段可以根据预定迁移周期确定,也可以根据数据库的使用时段确定,例如,预定时间段可以设置为24小时,也可以为3*24小时,或者7*24小时等。
以预定时间段为24小时为例,获取24小时内,即一个数据迁移的工作日内,从Oracl e数据库迁移到MySQL数据库的迁移数据,以得到第一数据表。可以理解的是,本公开实施例中,该第一数据表是用于实现数据补偿的临时数据表,例如,以单元化架构下的异步数据库为例,可以先从Orac l e数据库中导出存量数据表到一个文件,再采用单元化架构的文件导入导出构件,将该文件导入至该临时数据表中。
本公开实施例,通过设置临时数据表,可以一次性获取24小时内,数据库迁移至目标数据库的所有迁移数据,避免重复进行数据拉取,导致的数据丢失和繁琐操作。
可选的,在本次数据补偿流程执行完毕之后,或者在预定次数的数据补偿流程执行完毕之后,可以删除该临时数据表。
一种示例中,每次补偿的数据的个数和类型是可以预先设定的,为了便于对不同类型的待补偿数据进行串行或并行进行补偿处理,可以根据预先确定的补偿规则,根据每次补偿的预定个数和待补偿数据的数据类型,获取临时数据表中预定个数的待补偿数据,以得到补偿数据表。
例如,本公开实施例中,还可以根据预先确定的补偿配置参数中预定单次处理个数和待补偿数据的数据类型,获取临时数据表中预定个数的待补偿数据,以得到补偿数据表。
这样,由于该补偿数据表中的待补偿数据的数据类型是一致的,共同确定了该补偿数据表的表类型。并且,该补偿数据表中的待补偿数据的个数是确定的,可以保证补偿过程中的数据一致性和数据安全,避免待补偿数据的丢失。
之后,再根据上述补偿数据表中的待补偿数据是否包含时间戳,确定上述补偿数据表的表类型。
一种可选的实施例中,包含有时间戳对应的表类型为上述预定类数据表,上述预定类数据表包括如下至少之一:客户表、协议表。
此外,需要说明的是,其他数据中包含有时间戳的补偿数据表,也可以确定是预定类数据表,同样可以采用本申请实施例所提供的针对该预定类数据表的数据补偿机制,本申请实施例对预定类数据表的数量和种类不具体限定。
另一种示例中,如图3所示,在执行S203之前,上述方法还包括:
S301,获取预先确定的补偿配置参数,其中,上述补偿配置参数包括:预定单次处理个数。
S302,若上述补偿数据列表中的待补偿数据小于上述预定单次处理个数,则将数据补偿循环流程的标志位标记为结束。
S303,若上述补偿数据列表中的待补偿数据大于或等于上述预定单次处理个数,则创建预定大小的多个线程,以并行处理上述待补偿数据列表。
可选的,上述补偿配置参数还可以但不限于包括:统一资源定位URL地址、用户名、密码、临时数据表的表名、正式数据表的表名。
一种可选的实施例中,如果确定补偿数据列表中的待补偿数据小于预定单次处理个数,表明待补偿数据的数据量小于最小单次补偿处理数,则无需继续补偿处理,可以直接将数据补偿循环流程的标志位标记为结束。
需要说明的是,S202和S301的前后顺序是可以替换的,不影响本公开实施例中方案的具体实现,其他方法步骤也是如此,示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。
由于大型数据库系统的交易表数据的数量很大,往往都是亿级,对于不同数据表的补偿处理,本公开实施例中,如果确定补偿数据列表中的待补偿数据大于或等于上述预定单次处理个数,则创建预定大小的多个线程,以并行处理上述待补偿数据列表。
此外,本公开实施例,还可以支持分片处理、串行处理、并行处理,以便于满足用户在补偿处理过程中的灵活调用需求。
另一种示例中,如图4所示,在执行S202,获取上述第一数据表中预定个数的待补偿数据,以得到补偿数据表之前,上述方法还包括:
S401,获取数据补偿循环流程的标志位,以确定数据补偿循环流程是否结束。
如果确定上述数据补偿循环流程已结束,则执行S402,如果确定上述数据补偿循环流程未结束,则执行S202,即获取上述第一数据表中预定个数的待补偿数据,以得到补偿数据表的步骤。
S402,在上述第一数据表中记录上述多个线程各自对应的补偿处理结果,以得到处理日志。其中,上述处理日志未报错则表征数据补偿成功。
在获取上述第一数据表中预定个数的待补偿数据,以得到补偿数据表之前,可以先根据数据补偿循环流程的标志位,来确定数据补偿循环流程是否结束,如果确定数据补偿循环流程未结束,则执行上述获取上述第一数据表中预定个数的待补偿数据,以得到补偿数据表的步骤。
如果确定上述数据补偿循环流程已结束,则在上述第一数据表中记录上述多个线程各自对应的补偿处理结果,以得到处理日志。
在得到处理日志之后,可以输出展示该处理日志,上述处理日志未报错则表征数据补偿成功,处理日志报错则表征数据补偿失败,需要根据处理日志查询补偿处理的线程或者出现错误的线程,以继续进行数据补偿处理,以保证迁移数据的一致性。
一种示例中,在根据上述补偿数据表中待补偿数据的数据编号查询上述目标数据库之前,上述方法还包括:
S501,判断上述补偿数据表中待补偿数据的数据编号是否为空值。
S502,若上述数据编号为空值,则确定上述补偿数据表对应的补偿处理结果为补偿处理失败。
S503,若上述数据编号为非空值,则确定执行上述根据上述数据编号查询上述目标数据库的步骤。
可选的,在根据上述补偿数据表中待补偿数据的数据编号查询上述目标数据库之前,可以先判断上述补偿数据表中待补偿数据的数据编号是否为空值,若确定所有待补偿数据的数据编号为空值,则直接记录补偿数据表对应的补偿处理结果为补偿处理失败,在数据编号为非空值的情况下,才继续执行上述根据上述数据编号查询上述目标数据库的步骤。
一种示例中,如图5所示,上述方法还包括:
S601,若上述表类型指示上述补偿数据表为除上述预定类数据表外的其他类数据表,则获取上述第一数据表插入或更新的字符串。
S602,判断上述字符串是否已存在于上述第二数据表。
S603,若上述字符串已存在于上述第二数据表,则基于上述字符串更新上述第二数据表,若上述字符串未存在于上述第二数据表,则将上述字符串插入上述第二数据表。
在一种可选的实施例中,若上述表类型指示上述补偿数据表为除上述预定类数据表外的其他类数据表,即不包含时间戳的数据表,如系统参数表等,则可以获取该临时数据表插入或更新的字符串,以通过将该临时数据表插入或更新的字符串,同样插入或更新到目标数据库的方式,判断上述字符串是否已存在于上述第二数据表。
若上述字符串已存在于上述第二数据表,则基于上述字符串更新上述第二数据表,若上述字符串未存在于上述第二数据表,则将上述字符串插入上述第二数据表。
此外,对于目标数据库的正式数据表中存在且临时数据表中不存在的数据,则直接删除掉即可,不需要继续更新或同步处理。
通过本公开实施例,针对不同类型数据表,对应配置不同的数据补偿规则,并且本公开实施例中,单元架构下的异构数据库,可以兼容异构数据库之间不同的数据补偿规则,且相同类型数据表的数补偿规则格式一致,配置简单实现方便。
根据本申请的一个或多个实施例,提供了一种数据迁移装置,应用于单元化架构,图6为本申请实施例提供的一种数据迁移装置的结构框图,如图6所示,上述装置包括:
获取模块600,用于获取补偿数据表,以及补偿数据表的表类型,其中,上述补偿数据表包含从单元化架构中的数据库向目标数据库迁移数据过程中缺失的待补偿数据;
查询模块601,用于若上述表类型指示上述补偿数据表为预定类数据表,则根据上述待补偿数据的数据编号查询上述目标数据库,以确定上述待补偿数据是否已存在于上述目标数据库中;
更新模块602,用于若上述待补偿数据已存在于上述目标数据库中,且上述待补偿数据在补偿数据表中的第一时间戳,大于上述待补偿数据在上述目标数据库中的第二时间戳,则更新上述目标数据库中包含有上述待补偿数据的第二数据表;
写入模块603,用于若上述待补偿数据未存在于上述目标数据库中,则将上述待补偿数据写入上述目标数据库的第二数据表中。
根据本申请的一个或多个实施例,上述获取模块,包括:
第一获取单元,用于获取预定时段内从上述数据库迁移至上述目标数据库的迁移数据,以得到第一数据表,其中,上述数据库和目标数据库为异构数据库,上述迁移数据中包含上述待补偿数据;
第二获取单元,用于获取上述第一数据表中预定个数的待补偿数据,以得到补偿数据表;
确定单元,用于根据上述补偿数据表中的待补偿数据是否包含时间戳,确定上述补偿数据表的表类型,其中,包含有时间戳对应的表类型为上述预定类数据表,上述预定类数据表包括如下至少之一:客户表、协议表。
根据本申请的一个或多个实施例,上述装置还包括:
参数获取模块,用于获取预先确定的补偿配置参数,其中,上述补偿配置参数包括:预定单次处理个数;
标记模块,用于若上述补偿数据列表中的待补偿数据小于上述预定单次处理个数,则将数据补偿循环流程的标志位标记为结束;
处理模块,用于若上述补偿数据列表中的待补偿数据大于或等于上述预定单次处理个数,则创建预定大小的多个线程,以并行处理上述待补偿数据列表。
根据本申请的一个或多个实施例,上述装置还包括:
标志位获取模块,用于获取数据补偿循环流程的标志位,以确定数据补偿循环流程是否结束;
记录模块,用于如果确定上述数据补偿循环流程已结束,则在上述第一数据表中记录上述多个线程各自对应的补偿处理结果,以得到处理日志,其中,上述处理日志未报错则表征数据补偿成功;
执行模块,用于如果确定上述数据补偿循环流程未结束,则执行上述第二获取单元。
根据本申请的一个或多个实施例,上述装置还包括:
第一判断模块,用于判断上述补偿数据表中待补偿数据的数据编号是否为空值;
第一确定模块,用于若上述数据编号为空值,则确定上述补偿数据表对应的补偿处理结果为补偿处理失败;
第二确定模块,用于若上述数据编号为非空值,则确定执行上述查询模块。
根据本申请的一个或多个实施例,上述装置还包括:
字符串获取模块,用于若上述表类型指示上述补偿数据表为除上述预定类数据表外的其他类数据表,则获取上述第一数据表插入或更新的字符串;
第二判断模块,用于判断上述字符串是否已存在于上述第二数据表;
字符串处理模块,用于若上述字符串已存在于上述第二数据表,则基于上述字符串更新上述第二数据表,若上述字符串未存在于上述第二数据表,则将上述字符串插入上述第二数据表。
在示例性实施例中,本申请实施例还提供了一种电子设备,包括:处理器,以及与上述处理器连接的存储器;
上述存储器存储计算机执行指令;
上述处理器执行上述存储器存储的计算机执行指令,以实现如任一项上述的方法。
在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机执行指令,上述计算机执行指令被处理器执行时用于实现如任一项上述的方法。
在示例性实施例中,本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现任一项上述的方法。
为了实现上述实施例,本申请实施例还提供了一种电子设备。
参考图7,其示出了适于用来实现本申请实施例的电子设备700的结构示意图,该电子设备700可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Persona l D i gi ta l Ass i stant,简称PDA)、平板电脑(Portab l e Andro i dDev i ce,简称PAD)、便携式多媒体播放器(Portabl e Med i a P l ayer,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(Read On l y Memory,简称ROM)702中的程序或者从存储装置708加载到随机访问存储器(Random Access Memory,简称RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(L i qu i dCrysta l D i sp l ay,简称LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM 702被安装。在该计算机程序被处理装置701执行时,执行本申请实施例的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Sma l l ta lk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(Loca l Area Network,简称LAN)或广域网(Wi de Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(AS I C)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
Claims (10)
1.一种数据迁移方法,其特征在于,应用于单元化架构,所述方法包括:
获取补偿数据表,以及补偿数据表的表类型,其中,所述补偿数据表包含从单元化架构中的数据库向目标数据库迁移数据过程中缺失的待补偿数据;
若所述表类型指示所述补偿数据表为预定类数据表,则根据所述待补偿数据的数据编号查询所述目标数据库,以确定所述待补偿数据是否已存在于所述目标数据库中;
若所述待补偿数据已存在于所述目标数据库中,且所述待补偿数据在补偿数据表中的第一时间戳,大于所述待补偿数据在所述目标数据库中的第二时间戳,则更新所述目标数据库中包含有所述待补偿数据的第二数据表;
若所述待补偿数据未存在于所述目标数据库中,则将所述待补偿数据写入所述目标数据库的第二数据表中。
2.根据权利要求1所述的方法,其特征在于,所述获取补偿数据表,以及补偿数据表的表类型,包括:
获取预定时段内从所述数据库迁移至所述目标数据库的迁移数据,以得到第一数据表,其中,所述数据库和目标数据库为异构数据库,所述迁移数据中包含所述待补偿数据;
获取所述第一数据表中预定个数的待补偿数据,以得到补偿数据表;
根据所述补偿数据表中的待补偿数据是否包含时间戳,确定所述补偿数据表的表类型,其中,包含有时间戳对应的表类型为所述预定类数据表,所述预定类数据表包括如下至少之一:客户表、协议表。
3.根据权利要求1所述的方法,其特征在于,在获取所述补偿数据表的表类型之前,所述方法还包括:
获取预先确定的补偿配置参数,其中,所述补偿配置参数包括:预定单次处理个数;
若所述补偿数据列表中的待补偿数据小于所述预定单次处理个数,则将数据补偿循环流程的标志位标记为结束;
若所述补偿数据列表中的待补偿数据大于或等于所述预定单次处理个数,则创建预定大小的多个线程,以并行处理所述待补偿数据列表。
4.根据权利要求2所述的方法,其特征在于,在获取所述第一数据表中预定个数的待补偿数据,以得到补偿数据表之前,所述方法还包括:
获取数据补偿循环流程的标志位,以确定数据补偿循环流程是否结束;
如果确定所述数据补偿循环流程已结束,则在所述第一数据表中记录多个线程各自对应的补偿处理结果,以得到处理日志,其中,所述处理日志未报错则表征数据补偿成功;
如果确定所述数据补偿循环流程未结束,则执行所述获取所述第一数据表中预定个数的待补偿数据,以得到补偿数据表的步骤。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在根据所述补偿数据表中待补偿数据的数据编号查询所述目标数据库之前,所述方法还包括:
若确定所述补偿数据表中待补偿数据的数据编号为空值,则确定所述补偿数据表对应的补偿处理结果为补偿处理失败;
若确定所述补偿数据表中待补偿数据的数据编号为非空值,则确定执行所述根据所述数据编号查询所述目标数据库的步骤。
6.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:
若所述表类型指示所述补偿数据表为除所述预定类数据表外的其他类数据表,则获取所述第一数据表插入或更新的字符串;
若确定所述字符串已存在于所述第二数据表,则基于所述字符串更新所述第二数据表,若确定所述字符串未存在于所述第二数据表,则将所述字符串插入所述第二数据表。
7.一种数据迁移装置,其特征在于,应用于单元化架构,所述装置包括:
获取模块,用于获取补偿数据表,以及补偿数据表的表类型,其中,所述补偿数据表包含从单元化架构中的数据库向目标数据库迁移数据过程中缺失的待补偿数据;
查询模块,用于若所述表类型指示所述补偿数据表为预定类数据表,则根据所述待补偿数据的数据编号查询所述目标数据库,以确定所述待补偿数据是否已存在于所述目标数据库中;
更新模块,用于若所述待补偿数据已存在于所述目标数据库中,且所述待补偿数据在补偿数据表中的第一时间戳,大于所述待补偿数据在所述目标数据库中的第二时间戳,则更新所述目标数据库中包含有所述待补偿数据的第二数据表;
写入模块,用于若所述待补偿数据未存在于所述目标数据库中,则将所述待补偿数据写入所述目标数据库的第二数据表中。
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310002858.0A CN115982129A (zh) | 2023-01-03 | 2023-01-03 | 数据迁移方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310002858.0A CN115982129A (zh) | 2023-01-03 | 2023-01-03 | 数据迁移方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115982129A true CN115982129A (zh) | 2023-04-18 |
Family
ID=85959362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310002858.0A Pending CN115982129A (zh) | 2023-01-03 | 2023-01-03 | 数据迁移方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115982129A (zh) |
-
2023
- 2023-01-03 CN CN202310002858.0A patent/CN115982129A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230350872A1 (en) | Updating method of citation document, apparatus, electronic device and storage medium | |
CN111555940B (zh) | 客户端的测试方法、装置、电子设备及计算机可读存储介质 | |
CN115757400B (zh) | 数据表处理方法、装置、电子设备和计算机可读介质 | |
CN111679990A (zh) | 测试数据生成方法、装置、可读介质及电子设备 | |
CN114153856A (zh) | 主机数据双写方法及装置 | |
CN113918659A (zh) | 数据操作方法、装置、存储介质及电子设备 | |
WO2023124910A1 (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN114328700B (zh) | 医疗数据etl任务中的数据核查方法及装置 | |
CN116049142A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109165259B (zh) | 基于网络附属存储的索引表更新方法、处理器及存储装置 | |
CN115982129A (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
CN115079873B (zh) | 信息显示方法、装置、电子设备和存储介质 | |
CN112422648B (zh) | 数据同步方法和系统 | |
CN114428925A (zh) | 页面渲染方法、装置、电子设备和计算机可读介质 | |
CN111143464B (zh) | 数据获取方法、装置和电子设备 | |
CN114003659A (zh) | 数据同步方法、装置、电子设备、存储介质及程序产品 | |
CN112650491A (zh) | 基于ReactNative的日期选择模态组件开发方法及相关设备 | |
CN113761075A (zh) | 切换数据库的方法、装置、设备和计算机可读介质 | |
CN113779048A (zh) | 一种数据处理方法和装置 | |
CN110780898A (zh) | 页面数据的升级方法、装置和电子设备 | |
CN111787043A (zh) | 数据请求方法和装置 | |
CN111984645B (zh) | 一种数据处理的方法、装置、介质和电子设备 | |
CN114566244B (zh) | 电子病历质量评估方法、装置及计算机可读存储介质 | |
CN113282688A (zh) | 显示数据的方法、装置、设备和计算机可读介质 | |
CN116932562A (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 |