CN114385595B - 数据迁移方法、装置、计算机设备及存储介质 - Google Patents

数据迁移方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN114385595B
CN114385595B CN202210037709.3A CN202210037709A CN114385595B CN 114385595 B CN114385595 B CN 114385595B CN 202210037709 A CN202210037709 A CN 202210037709A CN 114385595 B CN114385595 B CN 114385595B
Authority
CN
China
Prior art keywords
database
sub
value
data
target
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.)
Active
Application number
CN202210037709.3A
Other languages
English (en)
Other versions
CN114385595A (zh
Inventor
姜雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pingan Payment Technology Service Co Ltd
Original Assignee
Pingan Payment Technology Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Pingan Payment Technology Service Co Ltd filed Critical Pingan Payment Technology Service Co Ltd
Priority to CN202210037709.3A priority Critical patent/CN114385595B/zh
Publication of CN114385595A publication Critical patent/CN114385595A/zh
Application granted granted Critical
Publication of CN114385595B publication Critical patent/CN114385595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及数据处理技术领域,揭露一种数据迁移方法、装置、计算机设备及存储介质,其中方法包括将账户信息对应的数据进行打标分库,得到初始分库值,并将初始分库值分为临时分库值和目标分库值;构建目标分库和临时分库,并构建源端数据库与目标分库之间数据链路;再将目标分库值对应的数据从源端数据库同步到目标分库中;当检测到账户号发生变更信息时,获取变更分库值,并将变更分库值转换成临时分库值;当目标分库值对应的数据同步完成时,将临时数据同步到临时分库中。本申请还涉及区块链技术,账户信息存储于区块链中。本申请避免因为分库标记值的变动,所造成数据迁移的出错,有利于提高数据迁移的可靠性。

Description

数据迁移方法、装置、计算机设备及存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据迁移方法、装置、计算机设备及存储介质。
背景技术
OGG软件是一种基于数据库日志的结构化数据复制软件,其能够实现数据的实时捕捉、变换和投递,实现源端数据库与目标分库的数据同步,保持亚秒级的数据延迟。并支持按条件对数据进行策略迁移(按不同条件做不同迁移策略)。
基于上述特性在分库拆分的时候可以按照不同的迁移策略将数据迁移到对应的目标库中。当前OGG仅支持对单一表进行固定策略迁移,无法按照某一规则将整个业务域的数据进行迁移,另外当已迁移的数据在源库规则条件值发生表更,OGG在应用变更日志的时候会因为新值在对应的新库中不存在而失败,OGG异常终止,从而导致数据的迁移可靠性较低。现亟需一种能够提高数据迁移可靠性的方法。
发明内容
本申请实施例的目的在于提出一种数据迁移方法、装置、计算机设备及存储介质,以提高数据迁移的可靠性。
为了解决上述技术问题,本申请实施例提供一种数据迁移方法,包括:
在源端数据库中,基于账户信息,生成分库值标记,并根据所述分库值标记,将所述账户信息对应的数据进行打标分库,得到初始分库值,以及将所述分库值标记对应的初始分库值作为临时分库值,将除所述临时分库值以外的分库值对应的初始分库值作为目标分库值;
构建所述目标分库值对应的目标分库,以及构建所述临时分库值对应的临时分库,并构建所述源端数据库与所述目标分库之间数据链路,得到目标数据链路;
根据数据同步命令,获取所述目标分库值对应的数据,并基于所述目标数据链路,将所述目标分库值对应的数据从所述源端数据库同步到所述目标分库中;
当检测到所述账户号发生变更信息时,获取所述账户号发生变更信息对应的初始分库值,作为变更分库值,并将所述变更分库值转换成所述临时分库值;
当所述目标分库值对应的数据同步完成时,基于所述临时分库值,构建所述源端数据库与所述临时分库之间数据链路,得到临时数据链路;
基于所述临时数据链路,将所述临时分库值对应的数据,从所述源端数据库同步到所述临时分库中。
为了解决上述技术问题,本申请实施例提供一种数据迁移装置,包括:
初始分库值生成模块,用于在源端数据库中,基于账户信息,生成分库值标记,并根据所述分库值标记,将所述账户信息对应的数据进行打标分库,得到初始分库值,以及将所述分库值标记对应的初始分库值作为临时分库值,将除所述临时分库值以外的分库值对应的初始分库值作为目标分库值;
目标数据链路构建模块,用于构建所述目标分库值对应的目标分库,以及构建所述临时分库值对应的临时分库,并构建所述源端数据库与所述目标分库之间数据链路,得到目标数据链路;
第一数据同步模块,用于根据数据同步命令,获取所述目标分库值对应的数据,并基于所述目标数据链路,将所述目标分库值对应的数据从所述源端数据库同步到所述目标分库中;
变更分库值生成模块,用于当检测到所述账户号发生变更信息时,获取所述账户号发生变更信息对应的初始分库值,作为变更分库值,并将所述变更分库值转换成所述临时分库值;
临时数据链路构建模块,用于当所述目标分库值对应的数据同步完成时,基于所述临时分库值,构建所述源端数据库与所述临时分库之间数据链路,得到临时数据链路;
第二数据同步模块,用于基于所述临时数据链路,将所述临时分库值对应的数据,从所述源端数据库同步到所述临时分库中。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种计算机设备,包括,一个或多个处理器;存储器,用于存储一个或多个程序,使得一个或多个处理器实现上述任意一项所述的数据迁移方法。
为解决上述技术问题,本发明采用的一个技术方案是:一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的数据迁移方法。
本发明实施例提供了一种数据迁移方法、装置、计算机设备及存储介质。其中,方法包括:在源端数据库中,基于账户信息,生成分库值标记,并根据分库值标记,将账户信息对应的数据进行打标分库,得到初始分库值,以及将分库值对应的初始分库值作为临时分库值,将除临时分库值以外的分库值对应的初始分库值作为目标分库值;构建目标分库值对应的目标分库,以及构建临时分库值对应的临时分库,并构建源端数据库与所述目标分库之间数据链路,得到目标数据链路;根据数据同步命令,获取目标分库值对应的数据,并基于目标数据链路,将目标分库值对应的数据从源端数据库同步到目标分库中;当检测到账户号发生变更信息时,获取账户号发生变更信息对应的初始分库值,作为变更分库值,并将变更分库值转换成临时分库值;当目标分库值对应的数据同步完成时,基于临时分库值,构建源端数据库与所述临时分库之间数据链路,得到临时数据链路;基于临时数据链路,将临时分库值对应的数据,从源端数据库同步到临时分库中。本发明实施例通过对数据进行打标分库处理,并构建临时分库和目标分库,通过多次迁移的方式,使得数据迁移期间,避免因为分库标记值的变动,造成数据迁移的出错,有利于提高数据迁移的可靠性。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据迁移方法中子流程的一实现流程图;
图2是本申请实施例提供的数据迁移方法中子流程的又一实现流程图;
图3是本申请实施例提供的数据迁移方法中子流程的又一实现流程图;
图4是本申请实施例提供的数据迁移方法中子流程的又一实现流程图;
图5是本申请实施例提供的数据迁移方法中子流程的又一实现流程图;
图6是本申请实施例提供的数据迁移方法中子流程的又一实现流程图;
图7是本申请实施例提供的数据迁移方法中子流程的又一实现流程图;
图8是本申请实施例提供的数据迁移装置示意图;
图9是本申请实施例提供的计算机设备的示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
下面结合附图和实施方式对本发明进行详细说明。
需要说明的是,本申请实施例所提供的数据迁移方法一般由服务器执行,相应地,数据迁移装置一般配置于服务器中。
请参阅图1,图1示出了数据迁移方法的一种具体实施方式。
需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限,该方法包括如下步骤:
S1:在源端数据库中,基于账户信息,生成分库值标记,并根据分库值标记,将账户信息对应的数据进行打标分库,得到初始分库值,以及将分库值标记对应的初始分库值作为临时分库值,将除临时分库值以外的分库值对应的初始分库值作为目标分库值。
具体的,本申请实施例是基于OGG软件进行的一种数据迁移方法,通过OGG软件将需要迁移的数据从源端数据库迁移到目标数据库中。其中,OGG是Oracle Golden Gate的简称,是一种基于日志的结构化数据复制备份软件,它可以通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库和目标数据库之间的同步。
请参阅图2,图2示出了步骤S1的一种具体实施方式,详叙如下:
S11:获取源端数据库中的账户信息,其中,账户信息包括账户号。
S12:获取账户信息对应的数据,作为待打标数据。
S13:基于账户号,生成分库值标记,并基于分库值标记,将账户号对应的待打标数据进行打标分库,得到初始分库值。
S14:将分库值标记对应的初始分库值作为临时分库值,将除临时分库值以外的分库值对应的初始分库值作为目标分库值。
具体的,在源端数据库中,存储有各个账户信息所对应的数据,并且每个账户信息都包括账户号,通过获取账户信息对应的数据,作为待打标数据,再将账户号作为分库值标记,基于分库值标记对每个账户号下的待打标数据进行打标分库,得到初始分库值,最后将任一分库值标记对应的初始分库值作为临时分库值,其余分库值对应的初始分库值作为目标分库值。在一具体实施例中,将账户号后两位作为分库值标记,例如账户号A12345600、A12378900、A12345601、A12378901等等,则将“00”、“01”-“99”作为分库值标记,将属于同一打标分库键中的所有数据都打上相应的分库值标记,实现将数据都打上对应的分库值标记,这些分库值标记在后续步骤中对应相同分库值标记的分库;也即若由一数据为账户号A12345600下的数据,则该数据被打上“00”分库值标记,在后续进行数据同步时,将该数据同步到“00”分库中。进一步的,为了账户信息发送更改时,避免OGG同步数据发生异常,选取任一分库值标记对应的初始分库值作为临时分库值,其余分库值对应的初始分库值作为目标分库值。优选的,选择分库值标记为“99”对应的数据的初始分库值作为临时分库值,“00”-“98”对应的数据作为目标分库值,有利于区分临时分库值和目标分库值。其中,初始分库值是指打上分库值标记的数据;目标分库值和临时分库值分别是指选取不同分库值标记所对应的数据;
本实施例中,通过获取源端数据库中的账户信息,再获取账户信息对应的数据,作为待打标数据,基于账户号,生成分库值标记,并基于分库值标记,将账户号对应的待打标数据进行打标分库,得到初始分库值,最后将分库值标记对应的初始分库值作为临时分库值,将除临时分库值以外的分库值对应的初始分库值作为目标分库值,实现将待迁移数据进行分类打标,将其进行分类,便于后续对数据进行分库迁移和多次迁移,有利于提高数据迁移的可靠性。
S2:构建目标分库值对应的目标分库,以及构建临时分库值对应的临时分库,并构建源端数据库与目标分库之间数据链路,得到目标数据链路。
请参阅图3,图3示出了步骤S2的一种具体实施方式,详叙如下:
S21:基于目标分库值的分库值标记,构建目标分库,目标分库包括目标分库值的分库值标记。
S22:基于临时分库值的分库值标记,构建临时分库,临时分库包括临时分库值的分库值标记。
S23:构建源端数据库与目标分库之间数据链路,得到目标数据链路,并基于数据链路,生成源端数据库与目标分库之间的数据传输通道。
具体的,本实施例是基于OGG进行数据同步,需要将数据从源端数据库同步到目标分库中,所以在数据同步之前,构建对应的分库,并构建源端数据库与分库之间的数据链路用于数据传输。由于在步骤S1中,已经将源端数据库中的数据分别进行打标分库,每个数据都有其对应的分库值标记,该分库值标记所对应的是需要将该数据同步到对应的分库中。所以基于目标分库值的分库值标记构建对应的目标分库,基于临时分库的分库值标记构建对应的临时分库,目标分库和临时分库中均包括对应的分库值标记。例如,目标分库的分库值标记为DB0、DB1。
本实施例中,基于目标分库值的分库值标记,构建目标分库,再基于临时分库值的分库值标记,构建临时分库,再构建源端数据库与目标分库之间数据链路,得到目标数据链路,并基于数据链路,生成源端数据库与目标分库之间的数据传输通道,实现对应目标分库值和临时分库值,创建对应的分库,在数据迁移过程中,将对应分库值的数据迁移到对应分库中,实现数据的同步迁移。
请参阅图4,图4示出了步骤S23的一种具体实施方式,详叙如下:
S231:构建源端数据库与目标分库之间数据链路,得到目标数据链路。
S232:采用预置的Docker组件和Kubernetes组件,分别在源端数据库和目标分库建立多个应用容器。
S233:基于预置的Zookeeper组件,分别在各个应用容器中创建配置文件,生成Zookeeper实例。
S234:通过将各个应用容器中配置文件的参数设置为相同,建立各个应用容器中的Zookeeper实例之间的通信连接,以构建出Zookeeper消息集群。
S235:将预置的Kafka组件注册至Zookeeper消息集群中,获得源端数据库与目标分库之间的数据传输通道。
具体的,可以通过在源数据库和目标分库中安装Oracle GoldenGate工具构建出两个数据库之间的数据链路,即OGG链路。在本实施例中,源端数据库和目标分库可以是大数据库,也可以普通数据库,本实施例对此不作限定。在本发明实施例中,在构建出OGG链路的基础上,还可以结合多种组件技术,在该OGG链路中配置出多个数据传输通道,通过多个数据传输通道实现对数据增量变化的传递,提高OGG全链路的高可用性。
在具体实现中,可以结合Docker、Kubernetes、Kafka、Zookeeper等组件技术完成数据传输通道的配置,提高OGG全链路的高可用性。其其中,Docker是一个应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Kubernetes是一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。Zookeeper是一个分布式的应用程序协调服务,是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
S3:根据数据同步命令,获取目标分库值对应的数据,并基于目标数据链路,将目标分库值对应的数据从源端数据库同步到目标分库中。
请参阅图5,图5示出了步骤S3的一种具体实施方式,详叙如下:
S31:获取数据同步命令,并基于数据同步命令从源端数据库中获取更新日志文件。
S32:解析更新日志文件,以获取更新日志文件中的标志信息,其中,标志信息包括待同步数据对应的目标分库值。
S33:基于标志信息获取待同步数据对应的目标数据链路,作为同步数据链路。
S34:基于同步数据链路,将待同步数据从源端数据库同步到目标分库中。
具体的,在需要进行数据同步时,获取到对应的数据同步命令,对该命令进行解析,可以从源端数据库中获取到对应的更新日志文件,再对更新日志文件进行解析,获取需要同步的数据标志信息,该数据标志信息包括同步数据名称、同步数据对应的目标分库值等信息,通过该目标分库值,获取到对应的目标分库以及目标数据链路,从源端数据库获取同步数据,将其基于目标数据链路同步到对应的目标分库中。
进一步的,在数据进行同步时:获取源端数据库当前系统修订号,并基于当前系统修订号导出目标分库值对应的数据表;导出数据表对应的目录;从源端数据库发送传送命令到目标分库,在目标分库中,指定可移植可执行文件,将数据表重新分配到对应的目标分库中。
本实施例中,通过获取数据同步命令,并基于数据同步命令从源端数据库中获取更新日志文件,并解析更新日志文件,以获取更新日志文件中的标志信息,再基于标志信息获取待同步数据对应的目标数据链路,作为同步数据链路,实现对目标分库值对应的数据进行数据迁移,在目标分库值对应的数据迁移完成后,再进行临时分库值对应的数据进行迁移,避免在数据迁移过程中OGG的出错,提高数据迁移的可靠性。
请参阅图6,图6示出了步骤S3之后的一种具体实施方式,详叙如下:
S3A:获取源端数据库中增量数据的创建时间,并计算创建时间到当前时间的时间跨度。
S3B:当时间跨度到达预设同步时间时,获取增量数据对应的目标数据链路。
S3C:基于目标数据链路构建数据映射关系,并基于数据映射关系,将增量数据同步到目标分库中。
具体的,本实施例还通过设置同步时间,将源端数据库中的增量数据进行不同。由于每个数据存储于源端数据库中都有其对应的创建时间,并实时计算数据的创建时间到当前时间的时间跨度,并且在上述步骤中已经将数据进行打标分库,所以在数据的跨度时间到达预设同步时间时,获取该增量数据对应的分库值,在基于分库值获取对应的目标数据链路,并构建构建数据映射关系,并基于数据映射关系,将增量数据同步到目标分库中。例如预设不同时间为48小时,而增量数据的创建时间为2021年10月15日12时,而当前时间为2021年10月17日12时,此时的增量数据的时间跨度刚好24小时,达到了预设同步时间,则将该增量数据进行同步。
本实施例中,通过获取源端数据库中增量数据的创建时间,并计算创建时间到当前时间的时间跨度,当时间跨度到达预设同步时间时,获取增量数据对应的目标数据链路,再基于目标数据链路构建数据映射关系,并基于数据映射关系,将增量数据同步到目标分库中,实现按照预设时间进行数据迁移,有利于提高数据迁移的可靠性。
S4:当检测到账户号发生变更信息时,获取账户号发生变更信息对应的初始分库值,作为变更分库值,并将变更分库值转换成临时分库值。
请参阅图7,图7示出了步骤S4的一种具体实施方式,详叙如下:
S41:当检测到账户号发生变更信息时,从源端数据库中读取更改日志文件。
S42:解析更改日志文件,以获取更改日志文件中的数据变化信息,得到账户号发生变更信息,其中,账户号发生变更信息包括账户绑定、解绑以及合并。
S43:基于发生变更信息,获取发生变更信息对应的初始分库值,并将初始分库值转换成临时分库值。
具体的,当账户号发生变更时,例如账户绑定、解绑、合并等,如若还将该账户按照目标分库的同步迁移方式进同步时,例如当业务数据已经迁移到一个目标分库后,在源端数据库更新分库ID的值(dbid=0变更为dbid=1),此时会产生一条更新DBID值的日志记录,当OGG将该条日志应用到目标库的时候由于目标分库(dbid=1)记录不存在,会抛出未更新到数据的异常,并导致OGG迁移链路中断,从而导致数据同步迁移发生异常。所以本申请实施例通过获取账户号发生变更信息对应的初始分库值,作为变更分库值,并将变更分库值转换成临时分库值,避免在上述步骤数据同步时,由于账户变更导致的OGG迁移链路中断,将其初始分库值强制修改成临时分库值,在数据同步完成后,再进行变更数据的同步。具体的,实施例利用抽取进程(Extract Process)在源端数据库中读取在线重做日志Online Redo Log或者归档日志Archive Log,也即读取更改日志文件,然后对更改日志文件进行解析,只提取其中数据的变化信息,获取账户号发生变更信息,再基于发生变更信息,获取目发生变更信息对应的初始分库值,并将初始分库值转换成临时分库值。
本实施例中,当检测到账户号发生变更信息时,从源端数据库中读取更改日志文件,并解析更改日志文件,以获取更改日志数据中的数据变化信息,得到账户号发生变更信息,然后基于发生变更信息,获取发生变更信息对应的初始分库值,并将初始分库值转换成临时分库值,实现在账户号发生更改时,能够将发生变更的数据转换成临时分库值,将其不参与目标分库值的迁移,避免OGG出现异常,有利于提高数据迁移的可靠性。
S5:当目标分库值对应的数据同步完成时,基于临时分库值,构建源端数据库与临时分库之间数据链路,得到临时数据链路。
具体的,由于在源端数据库中,临时分库值所对应的数据还未进行同步,该数据包括原本分库值为临时分库值的数据,以及账户信息发送变更后的数据,这些数据的均被打上临时分库值。在目标分库值对应的数据同步完成时,再对临时分库值对应的数据进行同步,此时构建源端数据库对应的临时分库之间数据链路,得到临时数据链路。
S6:基于临时数据链路,将临时分库值对应的数据,从源端数据库同步到临时分库中。
具体的,获取源端数据库中的所有临时分库值对应的数据,作为临时数据,将临时数据局域临时数据链路,从源端数据库中同步到临时分库中。在一具体实施例中,目标分库值为0-98数据同步完成后,切换0-98分库上线,源端数据库仅提供99临时分库值的数据操作,其他标记数据均处于各自归属的目标分库中(DB0-DB98),此时新搭建OGG链路来同步99分库值的数据到99分库中。此时在源端数据库中对99的分库值进行变更则不会影响OGG(如:将99变更为1。首先查询99的数据插入到1分库,待数据插入完成后会从源端数据库中将99标记的数据逻辑删除)。
本实施例中,在源端数据库中,基于账户信息,生成分库值标记,并根据分库值标记,将账户信息对应的数据进行打标分库,得到初始分库值,以及将分库值标记对应的初始分库值作为临时分库值,将除临时分库值以外的分库值对应的初始分库值作为目标分库值;构建目标分库值对应的目标分库,以及构建临时分库值对应的临时分库,并构建源端数据库与目标分库之间数据链路,得到目标数据链路;根据数据同步命令,获取目标分库值对应的数据,并基于目标数据链路,将目标分库值对应的数据从源端数据库同步到目标分库中;当检测到账户号发生变更信息时,获取账户号发生变更信息对应的初始分库值,作为变更分库值,并将变更分库值转换成临时分库值;当目标分库值对应的数据同步完成时,基于临时分库值,构建源端数据库与临时分库之间数据链路,得到临时数据链路;基于临时数据链路,将临时分库值对应的数据,从源端数据库同步到临时分库中。本发明实施例通过对数据进行打标分库处理,并构建临时分库和目标分库,通过多次迁移的方式,使得数据迁移期间,避免因为分库标记值的变动,造成数据迁移的出错,有利于提高数据迁移的可靠性。同时采用多次迁移方式,既能保证产线业务不受影响,又能保证数据迁移后的完成性不受影响。
需要强调的是,为进一步保证上述账户信息的私密和安全性,上述账户信息还可以存储于一区块链的节点中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
请参考图8,作为对上述图1所示方法的实现,本申请提供了一种数据迁移装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图8所示,本实施例的数据迁移装置包括:初始分库值生成模块71、目标数据链路构建模块72、第一数据同步模块73、变更分库值生成模块74、临时数据链路构建模块75及第二数据同步模块76,其中:
初始分库值生成模块71,用于在源端数据库中,基于账户信息,生成分库值标记,并根据分库值标记,将账户信息对应的数据进行打标分库,得到初始分库值,以及将分库值标记对应的初始分库值作为临时分库值,将除临时分库值以外的分库值对应的初始分库值作为目标分库值;
目标数据链路构建模块72,用于构建目标分库值对应的目标分库,以及构建临时分库值对应的临时分库,并构建源端数据库与目标分库之间数据链路,得到目标数据链路;
第一数据同步模块73,用于根据数据同步命令,获取目标分库值对应的数据,并基于目标数据链路,将目标分库值对应的数据从源端数据库同步到目标分库中;
变更分库值生成模块74,用于当检测到账户号发生变更信息时,获取账户号发生变更信息对应的初始分库值,作为变更分库值,并将变更分库值转换成临时分库值;
临时数据链路构建模块75,用于当目标分库值对应的数据同步完成时,基于临时分库值,构建源端数据库与临时分库之间数据链路,得到临时数据链路;
第二数据同步模块76,用于基于临时数据链路,将临时分库值对应的数据,从源端数据库同步到临时分库中。
进一步的,初始分库值生成模块71包括:
账户信息获取单元,用于获取源端数据库中的账户信息,其中,账户信息包括账户号;
待打标数据获取单元,用于获取账户信息对应的数据,作为待打标数据;
初始分库值获取单元,用于基于账户号,生成分库值,并基于分库值,将账户号对应的待打标数据进行打标分库,得到初始分库值;
初始分库值切分单元,用于将分库值标记对应的初始分库值作为临时分库值,将除临时分库值以外的分库值对应的初始分库值作为目标分库值。
进一步的,目标数据链路构建模块72包括:
目标分库构建单元,用于基于目标分库值的分库值标记,构建目标分库,目标分库包括目标分库值的分库值标记;
临时分库构建单元,用于基于临时分库值的分库值标记,构建临时分库,临时分库包括临时分库值的分库值标记;
数据传输通道生成单元,用于构建源端数据库与目标分库之间数据链路,得到目标数据链路,并基于数据链路,生成源端数据库与目标分库之间的数据传输通道。
进一步的,数据传输通道生成单元包括:
目标数据链路构建子单元,用于构建源端数据库与目标分库之间数据链路,得到目标数据链路;
应用容器构建子单元,用于采用预置的Docker组件和Kubernetes组件,分别在源端数据库和目标分库建立多个应用容器;
配置文件创建子单元,用于基于预置的Zookeeper组件,分别在各个应用容器中创建配置文件,生成Zookeeper实例;
通信连接建立子单元,用于通过将各个应用容器中配置文件的参数设置为相同,建立各个应用容器中的Zookeeper实例之间的通信连接,以构建出Zookeeper消息集群;
组件注册子单元,用于将预置的Kafka组件注册至Zookeeper消息集群中,获得源端数据库与目标分库之间的数据传输通道。
进一步的,第一数据同步模块73包括:
更新日志文件获取单元,用于获取数据同步命令,并基于数据同步命令从源端数据库中获取更新日志文件;
更新日志文件解析单元,用于解析更新日志文件,以获取更新日志文件中的标志信息,其中,标志信息包括待同步数据对应的目标分库值;
同步数据链路生成单元,用于基于标志信息获取待同步数据对应的目标数据链路,作为同步数据链路;
同步数据同步单元基于同步数据链路,将待同步数据从源端数据库同步到目标分库中。
进一步的,第一数据同步模块73之后还包括:
时间跨度统计模块,用于获取源端数据库中增量数据的创建时间,并计算创建时间到当前时间的时间跨度;
时间跨度达到模块,用于当时间跨度到达预设同步时间时,获取增量数据对应的目标数据链路;
增量数据同步模块,用于基于目标数据链路构建数据映射关系,并基于数据映射关系,将增量数据同步到目标分库中。
进一步的,变更分库值生成模块74包括:
更改日志文件读取单元,用于当检测到账户号发生变更信息时,从源端数据库中读取更改日志文件;
更改日志文件解析单元,用于解析更改日志文件,以获取更改日志文件中的数据变化信息,得到账户号发生变更信息,其中,账户号发生变更信息包括账户绑定、解绑以及合并;
初始分库值转换单元,用于基于发生变更信息,获取发生变更信息对应的初始分库值,并将初始分库值转换成临时分库值。
需要强调的是,为进一步保证上述账户信息的私密和安全性,上述账户信息还可以存储于一区块链的节点中。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图9,图9为本实施例计算机设备基本结构框图。
计算机设备8包括通过系统总线相互通信连接存储器81、处理器82、网络接口83。需要指出的是,图中仅示出了具有三种组件存储器81、处理器82、网络接口83的计算机设备8,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field -Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器81至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器81可以是计算机设备8的内部存储单元,例如该计算机设备8的硬盘或内存。在另一些实施例中,存储器81也可以是计算机设备8的外部存储设备,例如该计算机设备8上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器81还可以既包括计算机设备8的内部存储单元也包括其外部存储设备。本实施例中,存储器81通常用于存储安装于计算机设备8的操作系统和各类应用软件,例如数据迁移方法的程序代码等。此外,存储器81还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器82在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器82通常用于控制计算机设备8的总体操作。本实施例中,处理器82用于运行存储器81中存储的程序代码或者处理数据,例如运行上述数据迁移方法的程序代码,以实现数据迁移方法的各种实施例。
网络接口83可包括无线网络接口或有线网络接口,该网络接口83通常用于在计算机设备8与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序可被至少一个处理器执行,以使至少一个处理器执行如上述的一种数据迁移方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种数据迁移方法,其特征在于,包括:
在源端数据库中,基于账户信息,生成分库值标记,并根据所述分库值标记,将所述账户信息对应的数据进行打标分库,得到初始分库值,以及将所述分库值标记对应的初始分库值作为临时分库值,将除所述临时分库值以外的分库值对应的初始分库值作为目标分库值;
构建所述目标分库值对应的目标分库,以及构建所述临时分库值对应的临时分库,并构建所述源端数据库与所述目标分库之间数据链路,得到目标数据链路;
根据数据同步命令,获取所述目标分库值对应的数据,并基于所述目标数据链路,将所述目标分库值对应的数据从所述源端数据库同步到所述目标分库中;
当检测到所述账户号发生变更信息时,获取所述账户号发生变更信息对应的初始分库值,作为变更分库值,并将所述变更分库值转换成所述临时分库值;
当所述目标分库值对应的数据同步完成时,基于所述临时分库值,构建所述源端数据库与所述临时分库之间数据链路,得到临时数据链路;
基于所述临时数据链路,将所述临时分库值对应的数据,从所述源端数据库同步到所述临时分库中。
2.根据权利要求1所述的数据迁移方法,其特征在于,所述在源端数据库中,基于账户信息,生成分库值标记,并根据所述分库值标记,将所述账户信息对应的数据进行打标分库,得到初始分库值,以及将所述分库值标记对应的初始分库值作为临时分库值,将除所述临时分库值以外的分库值对应的初始分库值作为目标分库值,包括:
获取所述源端数据库中的所述账户信息,其中,所述账户信息包括所述账户号;
获取所述账户信息对应的数据,作为待打标数据;
基于所述账户号,生成所述分库值标记,并基于所述分库值标记,将所述账户号对应的所述待打标数据进行打标分库,得到所述初始分库值;
将所述分库值标记对应的初始分库值作为临时分库值,将除所述临时分库值以外的分库值对应的初始分库值作为目标分库值。
3.根据权利要求1所述的数据迁移方法,其特征在于,所述构建所述目标分库值对应的目标分库,以及构建所述临时分库值对应的临时分库,并构建所述源端数据库与所述目标分库之间数据链路,得到目标数据链路,包括:
基于所述目标分库值的分库值标记,构建所述目标分库,所述目标分库包括所述目标分库值的分库值标记;
基于所述临时分库值的分库值标记,构建所述临时分库,所述临时分库包括所述临时分库值的分库值标记;
构建所述源端数据库与所述目标分库之间数据链路,得到目标数据链路,并基于所述数据链路,生成所述源端数据库与所述目标分库之间的数据传输通道。
4.根据权利要求3所述的数据迁移方法,其特征在于,所述构建所述源端数据库与所述目标分库之间数据链路,得到目标数据链路,并基于所述数据链路,生成所述源端数据库与所述目标分库之间的数据传输通道,包括:
构建所述源端数据库与所述目标分库之间数据链路,得到所述目标数据链路;
采用预置的Docker组件和Kubernetes组件,分别在所述源端数据库和所述目标分库建立多个应用容器;
基于预置的Zookeeper组件,分别在各个所述应用容器中创建配置文件,生成Zookeeper实例;
通过将各个所述应用容器中配置文件的参数设置为相同,建立各个所述应用容器中的Zookeeper实例之间的通信连接,以构建出Zookeeper消息集群;
将预置的Kafka组件注册至所述Zookeeper消息集群中,获得所述源端数据库与所述目标分库之间的所述数据传输通道。
5.根据权利要求1所述的数据迁移方法,其特征在于,所述根据数据同步命令,获取所述目标分库值对应的数据,并基于所述目标数据链路,将所述目标分库值对应的数据从所述源端数据库同步到所述目标分库中,包括:
获取所述数据同步命令,并基于所述数据同步命令从源端数据库中获取更新日志文件;
解析所述更新日志文件,以获取所述更新日志文件中的标志信息,其中,所述标志信息包括待同步数据对应的目标分库值;
基于所述标志信息获取所述待同步数据对应的目标数据链路,作为同步数据链路;
基于所述同步数据链路,将所述待同步数据从所述源端数据库同步到所述目标分库中。
6.根据权利要求1所述的数据迁移方法,其特征在于,所述根据数据同步命令,获取所述目标分库值对应的数据,并基于所述目标数据链路,将所述目标分库值对应的数据从所述源端数据库同步到所述目标分库中之后,所述方法还包括:
获取源端数据库中增量数据的创建时间,并计算创建时间到当前时间的时间跨度;
当所述时间跨度到达预设同步时间时,获取所述增量数据对应的目标数据链路;
基于所述目标数据链路构建数据映射关系,并基于所述数据映射关系,将增量数据同步到所述目标分库中。
7.根据权利要求1至6任一项所述的数据迁移方法,其特征在于,所述当检测到所述账户号发生变更信息时,获取所述账户号发生变更信息对应的初始分库值,作为变更分库值,并将所述变更分库值转换成所述临时分库值,包括:
当检测到所述账户号发生变更信息时,从源端数据库中读取更改日志文件;
解析所述更改日志文件,以获取所述更改日志文件中的数据变化信息,得到所述账户号发生变更信息,其中,所述账户号发生变更信息包括账户绑定、解绑以及合并;
基于所述发生变更信息,获取所述发生变更信息对应的初始分库值,并将所述初始分库值转换成所述临时分库值。
8.一种数据迁移装置,其特征在于,包括:
初始分库值生成模块,用于在源端数据库中,基于账户信息,生成分库值标记,并根据所述分库值标记,将所述账户信息对应的数据进行打标分库,得到初始分库值,以及将所述分库值标记对应的初始分库值作为临时分库值,将除所述临时分库值以外的分库值对应的初始分库值作为目标分库值;
目标数据链路构建模块,用于构建所述目标分库值对应的目标分库,以及构建所述临时分库值对应的临时分库,并构建所述源端数据库与所述目标分库之间数据链路,得到目标数据链路;
第一数据同步模块,用于根据数据同步命令,获取所述目标分库值对应的数据,并基于所述目标数据链路,将所述目标分库值对应的数据从所述源端数据库同步到所述目标分库中;
变更分库值生成模块,用于当检测到所述账户号发生变更信息时,获取所述账户号发生变更信息对应的初始分库值,作为变更分库值,并将所述变更分库值转换成所述临时分库值;
临时数据链路构建模块,用于当所述目标分库值对应的数据同步完成时,基于所述临时分库值,构建所述源端数据库与所述临时分库之间数据链路,得到临时数据链路;
第二数据同步模块,用于基于所述临时数据链路,将所述临时分库值对应的数据,从所述源端数据库同步到所述临时分库中。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的数据迁移方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据迁移方法。
CN202210037709.3A 2022-01-13 2022-01-13 数据迁移方法、装置、计算机设备及存储介质 Active CN114385595B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210037709.3A CN114385595B (zh) 2022-01-13 2022-01-13 数据迁移方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210037709.3A CN114385595B (zh) 2022-01-13 2022-01-13 数据迁移方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN114385595A CN114385595A (zh) 2022-04-22
CN114385595B true CN114385595B (zh) 2024-04-09

Family

ID=81202108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210037709.3A Active CN114385595B (zh) 2022-01-13 2022-01-13 数据迁移方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN114385595B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019138A (zh) * 2017-12-29 2019-07-16 中国移动通信集团公司 一种基于Zabbix的传输表空间自动迁移方法和系统
CN112181945A (zh) * 2020-09-28 2021-01-05 中国平安人寿保险股份有限公司 数据归档处理方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2784688A1 (en) * 2009-12-17 2011-06-23 Fluor Technologies Corporation Plant deliverable management system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019138A (zh) * 2017-12-29 2019-07-16 中国移动通信集团公司 一种基于Zabbix的传输表空间自动迁移方法和系统
CN112181945A (zh) * 2020-09-28 2021-01-05 中国平安人寿保险股份有限公司 数据归档处理方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HIS数据库跨版本跨平台迁移;李想;苏玉成;杨艳华;蒋昆;;中国医疗设备;20180910(第09期);全文 *

Also Published As

Publication number Publication date
CN114385595A (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
WO2022126974A1 (zh) 基于Kafka的增量数据同步方法、装置、设备及介质
CN107220142B (zh) 执行数据恢复操作的方法及装置
CN108228814B (zh) 数据同步方法及装置
CN113420039B (zh) 一种调控云平台的模型管理方法、系统、设备及介质
US20200364373A1 (en) File verification method, file verification system and file verification server
CN110737719A (zh) 数据同步方法、装置、设备及计算机可读存储介质
US11954123B2 (en) Data processing method and device for data integration, computing device and medium
CN114385759A (zh) 配置文件的同步方法、装置、计算机设备及存储介质
CN111654522B (zh) 文件同步方法、文件同步服务器及存储介质
CN107832227B (zh) 业务系统的接口参数测试方法、装置、设备和存储介质
CN111666087A (zh) 运算规则更新方法、装置、计算机系统及可读存储介质
CN114416638A (zh) 一种电子文件自动归档方法及系统
CN113672692B (zh) 数据处理方法、装置、计算机设备和存储介质
CN109462661B (zh) 数据同步方法、装置、计算机设备和存储介质
CN114385595B (zh) 数据迁移方法、装置、计算机设备及存储介质
CN113468143A (zh) 数据迁移方法、系统、计算设备及存储介质
CN115455020A (zh) 一种增量数据同步方法、装置、计算机设备及存储介质
CN115002062B (zh) 消息处理方法、装置、设备及可读存储介质
CN108595924B (zh) 一种业务权限管理方法、装置、计算机设备及存储介质
CN114443294B (zh) 大数据服务组件部署方法、系统、终端及存储介质
CN114817400A (zh) 一种数据同步方法、装置、电子设备及存储介质
CN114626352A (zh) 报表自动化生成方法、装置、计算机设备及存储介质
CN108664634B (zh) 数据管理方法、装置、计算机设备及存储介质
CN110554895A (zh) 一种数据调用的方法和装置
CN110674214A (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
GR01 Patent grant
GR01 Patent grant