CN112015351B - 数据迁移方法、装置、存储介质及电子设备 - Google Patents
数据迁移方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112015351B CN112015351B CN202011115102.XA CN202011115102A CN112015351B CN 112015351 B CN112015351 B CN 112015351B CN 202011115102 A CN202011115102 A CN 202011115102A CN 112015351 B CN112015351 B CN 112015351B
- Authority
- CN
- China
- Prior art keywords
- data
- original system
- target system
- original
- read
- 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
Links
- 238000013508 migration Methods 0.000 title claims abstract description 289
- 230000005012 migration Effects 0.000 title claims abstract description 289
- 238000000034 method Methods 0.000 title claims abstract description 138
- 230000004927 fusion Effects 0.000 claims description 32
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 238000012986 modification Methods 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 9
- 238000011156 evaluation Methods 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 68
- 238000004891 communication Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 12
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000008447 perception Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000003749 cleanliness Effects 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据迁移方法、装置、存储介质及电子设备,数据迁移方法包括:获取数据迁移信号;根据第一原系统信息确定第一原系统,根据目标系统信息确定目标系统,按照预定周期根据第一原系统数据和目标系统数据确定第一差别数据和第一差别数据量,将第一差别数据迁移至目标系统;当按照预定周期获取的第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数时,响应于数据请求,将待写入数据同时写入第一原系统和目标系统,从第一原系统读取待读取数据,通过第一原系统将从第一原系统获取的待读取数据返回。本发明实施例所提供的数据迁移方法、装置、存储介质及电子设备,可以实现数据迁移过程中对数据的平滑稳定读写的要求。
Description
技术领域
本发明实施例涉及计算机领域,尤其涉及一种数据迁移方法、装置、存储介质及电子设备。
背景技术
随着业务的发展,经常会遇到由于业务功能的升级、相似业务系统的合并、系统架构的升级等原因所导致的数据迁移需求,也就是将数据从第一原系统迁移到目标系统上。
现有的数据迁移方法,通常是接收到数据的迁移指令之后,停止对数据的访问,不再允许对数据进行读写操作,通过对第一原系统的数据的备份,将数据迁移到目标系统中,待到数据完成迁移后,再允许外部对目标系统进行访问,或者在此过程中,数据的写入或者读取出现错误。
因此,如何实现数据迁移过程中对数据的平滑稳定读写,就成为本领域技术人员亟需解决的技术问题。
发明内容
本发明实施例提供一种数据迁移方法、装置、存储介质及电子设备,能够实现数据迁移过程中对数据的平滑稳定读写的要求。
为解决上述问题,本发明实施例提供一种数据迁移方法,包括:
获取数据迁移信号,所述数据迁移信号包括第一原系统信息和目标系统信息;
根据所述第一原系统信息确定第一原系统,根据所述目标系统信息确定目标系统,按照预定周期根据所述第一原系统的第一原系统数据和所述目标系统的目标系统数据确定第一差别数据和第一差别数据量,将所述第一差别数据迁移至所述目标系统;
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数未达到第一预定次数时,响应于数据请求,将待写入数据写入所述第一原系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回;
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数时,响应于数据请求,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
为解决上述问题,本发明实施例提供一种数据迁移装置,包括:
数据迁移信号获取单元,适于获取数据迁移信号,所述数据迁移信号包括第一原系统信息和目标系统信息;
数据迁移单元,适于根据所述第一原系统信息确定第一原系统,根据所述目标系统信息确定目标系统,按照预定周期根据所述第一原系统的第一原系统数据和所述目标系统的目标系统数据确定第一差别数据和第一差别数据量,将所述第一差别数据迁移至所述目标系统;
数据读写单元,适于当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数未达到第一预定次数时,响应于数据请求,将待写入数据写入所述第一原系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回;
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数时,响应于数据请求,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
为解决上述问题,本发明实施例提供一种存储介质,所述存储介质存储有适于数据迁移的程序,以实现如前述任一项所述的数据迁移方法。
为解决上述问题,本发明实施例提供一种电子设备,包括至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述程序,以执行如前述任一项所述的数据迁移方法。
与现有技术相比,本发明的技术方案具有以下优点:
本发明实施例所提供的数据迁移方法、装置、存储介质及电子设备,其中,数据迁移方法,在接收到数据迁移信号后,根据第一原系统信息确定第一原系统数据,并根据目标系统信息确定目标系统数据,并基于第一原系统数据和目标系统数据确定第一差别数据和第一差别数据量,不断将第一差别数据迁移至目标系统,在此过程中,响应于数据请求,将待写入数据写入第一原系统,从第一原系统读取待读取数据,通过第一原系统将获取的待读取数据返回;直至所获取的第一差别数据量小于第一数据量阈值,并且第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数时,响应于数据请求,开启数据双写,将待写入数据不仅写入第一原系统还同时写入目标系统,但在数据读取时,仅从第一原系统获取待读取数据,并通过第一原系统获取的待读取数据返回。这样,本发明实施例所提供的数据迁移方法,在数据迁移过程中,当数据迁移量较少时,仍按照数据迁移之前的读写流程进行数据的读写,当数据迁移达到一定数量后,数据写入时,通过数据双写,既将待写入数据写入第一原系统,保证数据的完整性,从而可以通过第一差别数据的获取,防止目标系统中数据的遗漏和缺失;还将新写入数据写入目标系统,保证当第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数后,避免由于新写入数据在第一原系统的写入,而在目标系统中不写入,造成第一差别数据量的增大,使得数据迁移朝向目标系统数据和第一原系统数据的第一差别数据量越来越小的方向变化,加快数据迁移过程的完成,当然,数据双写也可以保证数据迁移过程中,待写入数据的正常写入;数据读取时,为了保证数据的读取,在此阶段,仍然从第一原系统中读取待读取数据,则可以保证读取到的数据的准确性,并且通过第一原系统将待读取数据返回,可以保证数据返回的顺畅性,保证在数据迁移过程中数据读取的用户体验。可以看出,本发明实施例所提供的数据迁移方法,通过根据数据迁移的进度确定数据写入的系统和数据读取的系统,可以保证在数据迁移过程中的数据写入的完整性和平滑稳定性,数据读取的准确性和顺畅性,降低用户对于数据迁移的感知,从而可以降低由于数据迁移对用户体验造成的影响。
可选方案中,当按照预定周期获取的所述第一差别数据量小于数据量阈值的连续次数达到预定次数时,调整所述第一差别数据和所述第一差别数据量的获取方式为待写入数据写入时获取,这样,可以在减少确定第一差别数据和第一差别数据量的次数,降低运算量的基础上,保证第一差别数据和第一差别数据量的获取,基于获取的准确性,保证数据的迁移以及数据迁移过程中的数据读写。
附图说明
图1是本发明实施例所提供的数据迁移方法的一流程示意图;
图2为本发明实施例所提供的数据迁移方法的另一流程示意图;
图3为本发明实施例所提供的数据迁移装置的一框图;
图4是本发明实施例提供的电子设备的一种可选硬件设备架构。
具体实施方式
现有技术中,难以实现数据迁移过程中对数据的平滑稳定读写的要求。
为了实现数据迁移过程中对数据的平滑稳定读写的要求,本发明实施例提供了一种数据迁移方法,包括:
获取数据迁移信号,所述数据迁移信号包括第一原系统信息和目标系统信息;
根据所述第一原系统信息确定第一原系统,根据所述目标系统信息确定目标系统,按照预定周期根据所述第一原系统的第一原系统数据和所述目标系统的目标系统数据确定第一差别数据和第一差别数据量,将所述第一差别数据迁移至所述目标系统;
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数未达到第一预定次数时,响应于数据请求,将待写入数据写入所述第一原系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回;
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数时,响应于数据请求,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
这样,本发明实施例所提供的数据迁移方法,在数据迁移过程中,当已完成的数据迁移量较少时,仍按照数据迁移之前的读写流程进行数据的读写,当已完成的数据迁移量达到一定数量后,数据写入时,通过数据双写,既将待写入数据写入第一原系统,保证数据的完整性,从而可以通过第一差别数据的获取,防止目标系统中数据的遗漏和缺失;还将新写入数据写入目标系统,保证当第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数后,避免由于新写入数据在第一原系统的写入,而在目标系统中不写入,造成第一差别数据量的增大,使得数据迁移朝向目标系统数据和第一原系统数据的第一差别数据量越来越小的方向变化,加快数据迁移过程的完成,当然,数据双写也可以保证数据迁移过程中,待写入数据的正常写入;数据读取时,为了保证数据的读取,在此阶段,仍然从第一原系统中读取待读取数据,则可以保证读取到的数据的准确性,并且通过第一原系统将待读取数据返回,可以保证数据返回的顺畅性,保证在数据迁移过程中数据读取的用户体验。
可以看出,本发明实施例所提供的数据迁移方法,通过根据数据迁移的进度确定数据写入的系统和数据读取的系统,可以保证在数据迁移过程中的数据写入的完整性和平滑稳定性,数据读取的准确性和顺畅性,降低用户对于数据迁移的感知,从而可以降低由于数据迁移对用户体验造成的影响。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1是本发明实施例所提供的数据迁移方法的一流程示意图。
如图中所示,本发明实施例所提供的数据迁移方法,包括以下步骤:
步骤S10:获取数据迁移信号,所述数据迁移信号包括第一原系统信息和目标系统信息。
容易理解的是,当数据迁移的目标系统开发完毕上线,第一原系统改造完备后,通过接收数据迁移信号,触发从第一原系统向目标系统的数据迁移。
为了减少数据迁移过程中数据读写的次数,降低数据迁移的难度,可以在数据流量较小的时候,发出数据迁移信号,从而本发明实施例所提供的数据迁移方法获取到数据迁移信号,开始数据的迁移。
其中,第一原系统信息是指用于确定数据迁移前所在的第一原系统的信息,目标系统信息是指用于确定数据迁移后的系统的信息。
步骤S11:根据所述第一原系统信息确定第一原系统,根据所述目标系统信息确定目标系统,按照预定周期根据所述第一原系统的第一原系统数据和所述目标系统的目标系统数据确定第一差别数据和第一差别数据量,将所述第一差别数据迁移至所述目标系统。
基于所获取的第一原系统信息,确定第一原系统基于所获取的目标系统信息,确定目标系统,然后按照预定周期确定第一原系统数据和目标系统数据,以及第一差别数据和第一差别数据量,为数据迁移做好准备。
另外,需要说明的是,第一差别数据是指第一原系统中包含而目标系统中不包含的数据,而不包括目标系统中包含第一原系统中不包含的数据。
可以理解的是,当刚接收到数据迁移信号时,目标系统数据的数据量为0,第一差别数据即为第一原系统数据,并开始将第一原系统数据向目标系统迁移,由于数据迁移受到时间和流量的限制,如果第一差别数据量很大,两次获取第一差别数据的时间间隙内,前一次得到的第一差别数据可能还未迁移完成,则在后一次确定的第一差别数据后,继续进行数据的迁移,并且随着时间的推移,第一差别数据量不断减小。
本文所述的按照预定周期确定第一原系统数据和目标系统数据是指,不论后续的数据迁移是否完成,当距离上一次获取的第一差别数据的时间间隔达到预定周期时,即开始下一次的第一差别数据的获取,以及后续的数据迁移。
具体地,数据迁移时,可以将具有相同第一原系统数据标识的数据作为一个数据单元进行迁移,比如:可以将同一用户主体的数据作为数据单元,相同的第一原系统数据标识即为第一原系统用户标识,标识数据的归属。
容易理解的是,在数据迁移的过程中,只要存在第一差别数据,就执行将第一差别数据迁移至目标系统的步骤,以保证第一原系统数据中的数据最终全部包含于目标系统中。
第一差别数据量既可以为具体的数据量,也可以为第一差别数据的数据量占第一原系统数据的数据量的比例。
步骤S12:判断按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数是否达到第一预定次数,若是,执行步骤S14;若否,执行步骤S13。
每次获取第一差别数据和差别数据量后,除了进行第一差别数据的向目标系统的迁移外,还需要判断第一差别数据量是否小于第一数据量阈值,如果小于,则记录第一差别数据量小于第一数据量阈值的次数加1,并进一步判断第一差别数据量小于第一数据量阈值的次数是否达到第一预定次数,如果是,则说明第一差别数据已经持续一段时间小于第一数据量阈值,目标系统中已经基本具有第一原系统的数据,为了保证数据迁移的完成,可以开启数据双写,即执行步骤S14;否则,则执行步骤S13。
容易理解的是,本文所述的连续次数是指在一段时间内第一差别数据量持续小于第一数据量阈值,以保证目标系统数据与第一原系统数据的相似性。
步骤S13:响应于数据请求,将待写入数据写入所述第一原系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
如果第一差别数据量大于或等于第一数据量阈值,或者第一差别数据量小于第一数据量阈值的次数未达到第一预定次数,那么说明目标系统数据与第一原系统数据的差别还较大,为了保证数据的正确性,响应于数据请求,当接收到数据写入请求时,仍然将待写入数据写入第一原系统,当接收到数据读取请求时,仍然从第一原系统中获取待读取数据,并通过控制第一原系统将待读取数据返回,数据获取或写入的用户不会感知到数据迁移过程。
容易理解的是,本文所述的响应于数据请求,是指在数据迁移过程中,用户仍然访问数据库,向系统发出数据写入(包含数据的改写和新数据的写入)或者数据读取的请求,系统仍然响应于请求,执行数据写入或者数据读取的指令。
步骤S14:响应于数据请求,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
如果按照预定周期获取的第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数后,当在接收到数据写入请求时,将待写入数据同时写入第一原系统和目标系统,以实现新写入数据在两系统中的一致性,避免由于待写入数据的写入造成第一原系统和目标系统的差别数据量的增大;而当接收到数据读取请求时,由于此时第一原系统和目标系统的数据仍然可能存在不同,为保证读取数据的准确性,仍然从第一原系统读取待读取数据,并仍然通过第一原系统将待读取数据返回。
可以看出,本发明实施例所提供的数据迁移方法,在数据迁移过程中,当数据迁移量较少,目标系统数据与第一原系统数据的差别较大时,仍按照数据迁移之前的读写流程进行数据的读写,当数据迁移达到预定数量后,数据写入时,通过数据双写,既将待写入数据写入第一原系统,保证数据的完整性,从而可以通过第一差别数据的获取,防止目标系统中数据的遗漏和缺失;还将新写入数据写入目标系统,保证当第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数后,避免由于新写入数据在第一原系统的写入,而在目标系统中不写入,造成第一差别数据量的增大,使得数据迁移朝向目标系统数据和第一原系统数据的第一差别数据量越来越小的方向变化,加快数据迁移过程的完成,当然,数据双写也可以保证数据迁移过程中,待写入数据的正常写入;数据读取时,为了保证数据的读取,在此阶段,仍然从第一原系统中读取待读取数据,则可以保证读取到的数据的准确性,并且通过第一原系统将待读取数据返回,可以保证数据返回的顺畅性,保证在数据迁移过程中数据读取的用户体验。
这样,本发明实施例所提供的数据迁移方法,通过根据数据迁移的进度确定数据写入的系统和数据读取的系统,可以保证在数据迁移过程中的数据写入的完整性和平滑稳定性,数据读取的准确性和顺畅性,降低用户对于数据迁移的感知,从而可以降低由于数据迁移对用户体验造成的影响。
为了进一步保证数据迁移过程中,数据读写的平滑稳定性,在后续阶段,仍然需要对数据读写进行控制,为此,本发明实施例还提供一种数据迁移方法,请参考图2,图2为本发明实施例所提供的数据迁移方法的另一流程示意图。
如图中所示,本发明实施例所提供的数据迁移方法还包括:
步骤S20:当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到预定次数时,调整所述第一差别数据和所述第一差别数据量的获取方式为当待写入数据写入时获取。
由于当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到预定次数时,第一原系统数据和目标系统数据仍然存在差别数据,为此,还需要获取第一差别数据,而此时,第一差别数据较小,如果仍然按照预定周期进行获取,则会造成运算资源的浪费,为此,可以在待写入数据写入时获取第一差别数据和第一差别数据量,并同时执行将第一差别数据迁移至目标系统。
可以看出,通过调整获取第一差别数据和第一差别数据量的获取方式,可以在减少确定第一差别数据和第一差别数据量的次数,降低运算量的基础上,保证第一差别数据和第一差别数据量的获取,基于获取的准确性,保证数据的迁移以及数据迁移过程中的数据读写。
然而,当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数后,虽然开启了系统双写(即同时将待写入数据写入第一原系统和目标系统),但仍然未完成数据迁移,为此,为了在保证数据迁移过程中数据读取平滑稳定性的基础上,逐渐转向仅利用目标系统实现数据迁移,本发明实施例所提供的数据迁移方法还包括:
步骤S21:判断待写入数据写入时获取的所述第一差别数据量小于第二数据量阈值的连续次数是否达到第二预定次数,若是,执行步骤S22,若否执行步骤S23。
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到预定次数,开始被动地进行第一差别数据量的获取,即当待写入数据写入时获取,并且每当获取待写入数据写入时,不仅获取第一差别数据量,还需要确定第一差别数据量是否小于第二数据量阈值,如果小于第二数据量阈值,则记录第一差别数据量小于第二数据量阈值的次数加1,进一步比较第一差别数据量小于第二数据量阈值的连续次数是否达到第二预定次数,如果达到第二预定次数,那么执行步骤S22,否则执行步骤S23。
需要说明的是,第二数据量阈值可以大于第一数据量阈值,也可以小于或等于第一数据量阈值,二者之间也没有必然的大小关系;第二预定次数也可以大于第一预定次数或者小于、等于第一预定次数,二者之间也没有必然的大小关系。
步骤S22:响应于数据请求,将所述待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统和所述目标系统均读取所述待读取数据,并通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
如果待写入数据写入时获取的所述第一差别数据量小于第二数据量阈值的连续次数是否达到第二预定次数,当接收到数据写入请求后,依然将待写入数据同时写入第一原系统和目标系统,而当接收到数据读取请求后,不仅从第一原系统读取待读取数据,还从目标系统读取待读取数据,从而可以比较从第一原系统读取的待读取数据和从目标系统读取的待读取数据的差别,确定目标系统的数据的准确性,但在此阶段,仍然将从第一原系统获取的待读取数据通过第一原系统返回,从而可以保证反馈给用户的数据的准确性。
步骤S23:响应于数据请求,将待写入数据写入所述第一原系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
步骤S23的内容请参考图1所示的步骤S13,在此不再赘述。
这样,本发明实施例所提供的数据迁移方法,当待写入数据写入时获取的所述第一差别数据量小于第二数据量阈值的连续次数达到第二预定次数时,同时读取目标系统和第一原系统的待读取数据,以实现对目标系统数据准确性的判断,同时还兼顾返回数据的准确性,提高数据迁移过程中,数据读写的平滑稳定。
数据迁移的最终目标是实现目标系统数据与第一原系统数据相同,并且数据读写操作均通过目标系统实现,为此,当待写入数据写入时获取的所述第一差别数据量小于第二数据量阈值的连续次数达到第二预定次数持续一段时间后,就需要开启对于目标系统数据的读取和返回,而为了保证此过程的平稳性,请继续参考图2,本发明实施例所提供的数据迁移方法,还可以包括:
步骤S24:判断待写入数据写入时获取的所述第一差别数据量小于第三数据量阈值的连续次数是否达到第三预定次数,若是,执行步骤S25,若否,执行步骤S22。
对于第一差别数据量小于第三数据量阈值的判断可以在第一差别数据量小于第二数据量阈值后就开始执行,也可以在第一差别数据量小于第二数据量阈值一段时间后或者满足某个其他条件后执行,比如:当第一差别数据量小于第二数据量阈值,并且响应于数据读取请求,从目标系统获取的待读取数据与从第一原系统获取的待读取数据的相同次数达到预定次数。
容易理解的是,如果在第一差别数据量小于第二数据量阈值一段时间后,开始进行第一差别数据量与第三数据量阈值的比较,第三数据量阈值可以大于第二数据量阈值,也可以小于或者等于第二数据量阈值,当然,为了进一步保证数据的准确性,提高数据迁移的顺畅性,本实施例中,可以设置第三数据量阈值小于第二数据量阈值。
当待写入数据写入时获取的所述第一差别数据量小于第三数据量阈值,那么记录第一差别数据量小于第三数据量阈值的次数加1,直至待写入数据写入时获取的第一差别数据量小于第三数据量阈值的连续次数达到第三预定次数时,执行步骤S25,如果未达到,那么仍然执行步骤S22。
步骤S25:调整数据信任度开关,响应于数据请求,根据所述数据请求对应的数据与所述数据信任度开关的开度的对应关系,确定所述待写入数据的写入系统,以及所述待读取数据的读取系统和返回系统。
如果每次待写入数据写入时,所获取的第一差别数据量小于第三数据量阈值的连续次数达到第三预定次数,则开始调整数据信任度开关,每当接收到数据请求时,确定与数据请求对应的数据是否落入数据信任度开关的开度范围内,确定待写入数据的写入系统,以及所述待读取数据的读取系统和返回系统。
这样,通过对数据信任度开关的设置,可以通过对数据信任度开关的调整,逐渐增大对于目标系统数据的信任,并逐渐降低对第一原系统的依赖,实现数据读写从第一原系统向目标系统的转移,从而可以提高数据迁移过程中,对数据读写的平滑稳定性。
具体地,在一种具体实施方式中,所述根据所述数据请求对应的数据与所述数据信任度开关的开度的对应关系,确定所述待写入数据的写入系统,以及所述待读取数据的读取系统和返回系统的步骤包括:
当所述数据请求对应的数据在所述数据信任度开关的开度的范围以外时,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统和所述目标系统均读取所述待读取数据,并通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回;
当所述数据请求对应的数据在所述数据信任度开关的开度的范围以内时,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统和所述目标系统均读取所述待读取数据,并通过所述第一原系统将从所述目标系统获取的所述待读取数据返回。
这样,不论数据请求对应的数据是否落入数据信任度开关的开度范围内,如果数据请求为数据写入请求,那么均将待写入数据同时写入第一原系统和目标系统,保证新写入数据的准确性,如果数据请求为数据读取请求,从第一原系统和目标系统中均读取待读取数据,从而可以用于判断通过目标系统所得到的待读取数据是否准确,而当数据请求对应的数据在所述数据信任度开关的开度的范围以外时,信任从第一原系统读取的待读取数据,并利用第一原系统返回,当数据请求对应的数据在数据信任度开关的开度的范围以内时,信任从目标系统读取的待读取数据,并利用第一原系统返回。
这样,在对数据信任度开关的开度进行调整的过程中,数据的写入仍然保持双写状态,从而可以更好地保证数据的完整性,数据的读取仍然保持从两个系统同时读取的状态,从而一方面可以简化数据获取逻辑,另一方面有助于确定从目标系统获取的待读取数据的准确性,而返回数据的调整则可以保证对目标系统数据的信任度的提高,实现对目标系统信任的逐渐过渡。
在一种具体实施方式中,数据信任度开关可以包括第一原系统数据标识范围开关,数据请求对应的数据包括第一原系统数据标识。
具体地,第一原系统数据标识可以为数据所对应用户主体的标识,即前述的用户标识,比如:对于不同学生,每个学生为一个用户,那么关于这个学生的所有数据的标识均为同一个用户标识,对应的,第一原系统数据标识范围即为用户标识范围,通过确定各个用户标识,从而可以确定将所有的用户标识确定在内的用户标识范围。
为方便理解,现举例如下:
假设第一原系统中包含300个用户的数据,那么各个第一原系统数据标识(用户标识)可以为从1到300,那么第一原系统数据标识范围(用户标识范围)即为1-300,第一原系统数据标识范围开关(用户标识范围开关)则可以在1-300之间调整,比如设定第一原系统数据标识范围开关的开度为100,那么用户标识落入1-100的用户的数据,可以通过第一原系统将从目标系统读取的数据返回,比如用户标识为30的数据;而当第一原系统数据标识范围开关的开度调整为120时,那么用户标识落入1-120的用户的数据就可以通过第一原系统将从目标系统读取的数据返回。
可以看出,利用数据请求对应的数据的第一原系统数据标识,以及第一原系统数据标识范围开关,可以方便地实现对数据信任范围的调整,从而可以很方便的实现对于哪些数据信任的调整,进而实现数据信任度开关的作用。
进一步地,由于在数据迁移过程中会不断有新的数据写入,为了保证在数据量不断变化的情况下,仍然能够实现对于数据信任度开关的开度调整要求,第一原系统数据标识范围开关可以包括第一原系统调整标识范围开关,而第一原系统数据标识包括第一原系统数据一致性哈希标识,所述第一原系统数据一致性哈希标识通过所述第一原系统数据标识和所述调整标识范围的一致性哈希运算获取。
需要说明的是,本文所述的第一原系统调整标识范围开关是指限定了最大值的开关,比如,限定最大值为100,那么调整标识范围即为1-100,第一原系统调整标识范围开关的开度就在1-100之间调整。
为了保证利用第一原系统调整标识范围开关时,对于数据的信任度控制,第一原系统数据标识也需要进行调整,具体地,为了保证在利用第一原系统调整标识范围开关进行调整时,不会引起已经被列为信任范围的数据重新变为非信任数据,导致数据的读取途径来回跳转,影响数据获取者的体验,第一原系统数据标识可以为第一原系统数据一致性哈希标识,即通过对第一原系统数据标识和调整标识范围的一致性哈希运算获取。
比如:第一原系统数据标识为150,调整标识范围即为1-100,那么第一原系统数据一致性哈希标识即为150与100的取余运算,即为50,此时如果第一原系统调整标识范围开关的开度为30,那么第一原系统数据标识为150的数据就落入第一原系统调整标识范围开关的开度以外,而当第一原系统调整标识范围开关的开度调整为80时,那么第一原系统数据标识为150的数据就落入第一原系统调整标识范围开关的开度以内。
进一步地,为了随着时间的推进,实现数据信任度开关的开度的调整,本发明实施例所提供的数据迁移方法的调整数据信任度开关的步骤可以包括:
每次调整数据信任度开关后,执行:
获取预定评判周期内所述第一差别数据量大于第四数据量阈值的周期次数;
当所述周期次数大于第四预定次数时,调整数据信任度开关减小预定信任度调整步长;
当所述周期次数小于或等于第四预定次数时,调整数据信任度开关增大预定信任度调整步长。
其中,第四数据量阈值可以根据数据迁移进度的要求和在此阶段所允许的第一原系统和目标系统的第一差别数据量的最大值进行确定;周期次数是指在预定评判周期内的次数之和。
从而,为了实现对于数据信任度开关的调整,当待写入数据写入时获取的所述第一差别数据量小于第三数据量阈值的连续次数达到第三预定次数时,进行第一次数据信任度开关的调整,具体调整量可以预先确定,在一种具体实施方式中,可以按照预定信任度调整步长进行调整,即增大预定信任度调整步长,然后获取在预定评判周期内第一差别数据量大于第四数据量阈值的周期次数,如果周期次数小于或等于第四预定次数,那么按照预定信任度调整步长增大数据信任度开关的开度,从而可以让更多的数据的信任度提高,如果周期次数大于第四预定次数,那么按照预定信任度调整步长减小数据信任度开关的开度,从而可以降低数据的信任度,保证读取数据的准确性,保证数据迁移过程中的过渡平滑性。
由于数据迁移的目标是达到对目标系统数据的全面信任,不论是待写入数据的写入,还是待读取数据的读取,都可以直接通过目标系统完成,因此对着数据信任度开关的开度的调整,还需要确定数据信任度开关的开度是否为全开,以即使调整在新阶段的数据写入和读取过程,为此,本发明实施例所提供的数据迁移方法,还包括:
步骤S26:判断所述数据信任度开关的开度是否为全开,且待写入数据写入时获取的所述第一差别数据量小于第五数据量阈值的连续次数是否达到第五预定次数,若否执行步骤S25,若是执行步骤S27。
容易理解的是,上述判断是经过两个步骤完成的,每次进行数据信任度开关的开度调整后,判断数据信任度开关是否已经达到全开,如果没有达到全开,那么继续执行步骤S25,如果是,那么继续判断待写入数据写入时获取的第一差别数据量是否小于第五数据量阈值,如果是,那么待写入数据写入时获取的第一差别数据量是否小于第五数据量阈值的次数增加1,一直到且待写入数据写入时获取的所述第一差别数据量小于第五数据量阈值的连续次数是否达到第五预定次数,如果是,执行步骤S27,如果未达到第五预定次数,那么继续执行步骤S25。
容易理解的是,第五数据量阈值也可以根据需要进行设定,与其他数据量阈值之间没有必然的大小关系。
步骤S27:响应于数据请求,将所述待写入数据写入所述目标系统,从所述目标系统读取所述待读取数据,并通过所述第一原系统将从所述目标系统获取的所述待读取数据返回。
当所述数据信任度开关的开度为全开,且待写入数据写入时获取的所述第一差别数据量小于第五数据量阈值的连续次数达到第五预定次数时,如果接收到数据写入请求,仅需要将待写入数据写入目标系统,从而降低运算量;如果接收到数据读取请求,仅从目标系统读取待读取数据,并通过第一原系统将目标系统获取的待读取数据返回。
这样,随着数据迁移的推进,逐渐增大对目标系统的信任,可以在保证在数据迁移过程中的数据写入的完整性和平滑稳定性,以及数据读取的准确性和顺畅性的基础上,减少数据运算量。
在数据迁移过程中,除了需要随着数据迁移量的推进,逐渐增大对于目标数据的信任以外,还需要调整待读取数据的返回路径,逐渐减小对于第一原系统的依赖,为此,本发明实施例所提供的数据迁移方法,还包括:
步骤S28:判断待写入数据写入时获取的所述第一差别数据量小于第六数据量阈值的连续次数是否达到第六预定次数,若是,执行步骤S29,否则,执行步骤S27。
当响应于数据请求,将所述待写入数据写入所述目标系统,从所述目标系统读取所述待读取数据,并通过所述第一原系统将从所述目标系统获取的所述待读取数据返回后,在每次待写入数据写入时,仍然获取第一差别数据量,当第一差别数据量小于第六数据量阈值的连续次数是否达到第六预定次数时,执行步骤S29,否则执行步骤S27。
步骤S29:按照预定时间间隔和预定比例减小通过所述第一原系统所返回所述待读取数据的量,增大通过目标系统所返回所述待读取数据的量,直至通过所述第一原系统所返回所述待读取数据的比例降为0,通过所述目标系统返回所述待读取数据的比例增为100%。
当第一差别数据量小于第六数据量阈值的连续次数是否达到第六预定次数时,按照预定比例减小通过第一原系统返回待读取数据的量,并增大通过目标系统所返回所述待读取数据的量,然后到达预定周期后,进一步按照预定比例减小通过第一原系统返回待读取数据的量,增大通过目标系统所返回所述待读取数据的量,然后随着时间的推进,再次按照预定比例减小通过第一原系统返回待读取数据的量,增大通过目标系统所返回所述待读取数据的量,直至通过第一原系统所返回所述待读取数据的比例降为0,通过所述目标系统返回所述待读取数据的比例增为100%。
容易理解的是,通过第一原系统所返回所述待读取数据的比例与通过所述目标系统返回所述待读取数据的比例之和始终为100%。
需要说明的是,预定周期可以包括第一预定周期、第二预定周期……,并且各个预定周期的时间长度可以相同也可以不同;另外,预定比例也可以包括第一预定比例、第二预定比例……,并且各个预定比例的大小可以相同也可以不同。
具体地,可以通过减小所述第一原系统通过数据返回网关所传输数据的流量,减小通过所述第一原系统所返回所述待读取数据的量,通过增大所述目标系统通过数据返回网关所传输数据的流量,增大通过目标系统所返回所述待读取数据的量,以简化对于通过第一原系统所返回所述待读取数据的量和通过目标系统所返回所述待读取数据的量的调整控制方式,操作过程简单,实现方便。
可以看出,通过减小通过第一原系统返回的待读取数据的量,可以逐渐进一步地降低对于第一原系统的依赖,当通过所述目标系统返回所述待读取数据的比例增为100%时,可以实现,相应于数据请求,待写入数据写入目标系统,待读取数据从目标系统读取,并通过目标系统返回,从而可以实现数据迁移过程的完成,并且在此过程中,可以提高数据迁移的平滑稳定性。
由于在数据迁移过程中,还会出现从多个原系统向同一个目标系统进行数据迁移的情况,为了避免多个原系统向同一个目标系统进行数据迁移时,造成迁移至同一个目标系统的数据出现混乱的现象,因此,在另一种具体实施方式中,本发明实施例所提供的数据迁移方法,所述将所述第一差别数据迁移至所述目标系统步骤后,还包括:
进行第一差别数据的第一原系统数据标识转换,获取所述第一差别数据在所述目标系统的目标系统数据标识;
所述将待写入数据同时写入所述目标系统的步骤后,还包括:
在所述目标系统中为所述待写入数据分配目标系统数据标识;
所获取的数据迁移信号还可以包括第二原系统信息,数据迁移方法还包括:
根据所述第二原系统信息确定第二原系统,按照预定周期根据所述第二原系统的第二原系统数据和所述目标系统数据确定第二差别数据和第二差别数据量,将所述第二差别数据迁移至所述目标系统,进行第二差别数据的第二原系统数据标识转换,获取所述第二差别数据在所述目标系统的目标系统数据标识,并将具有相同通用数据标识的第二差别数据与所述目标系统数据融合,所述通用数据标识至少在所述第一原系统和所述第二原系统中标识同一归属数据。
可以理解的是,第二差别数据是指第二原系统中包含而目标系统中不包含的数据,不包括目标系统中包含而第二原系统中不包含的数据。
本文所述的通用数据标识是指能够在第一原系统、第二原系统,甚至更多系统中标识数据归属的数据,比如:对于用户而言,用户的身份证号,只要存储有用户身份证号的系统,只要找到相同的身份证号,就可以表明归属于同一个用户,比较而言,第一原系统数据标识是指在第一原系统中标识一个用户的标识,比如第一原系统中的系统编号,第二原系统数据标识是指在第二原系统中标识一个用户的标识,比如第二原系统中的编号,对应于同一个用户的第一原系统数据标识和第二原系统数据标识可以不同,当然,通用数据标识也可以同时作为第一原系统数据标识或第二原系统数据标识。
如果第二差别数据中具有与目标系统数据的通用数据标识相同的数据,那么表明第一原系统中也有具有该通用数据标识的数据,并且已经迁移至目标系统,为此需要将第二差别数据与目标系统数据中具有相同数据标识的数据进行融合。
这样,在将多个原系统数据迁移至同一个目标系统时,通过进行第一差别数据的第一原系统数据标识转换和第二差别数据的第二原系统数据标识转换,还可以避免由于第一原系统数据标识和第二原系统数据标识相同,但是所代表的数据归属不同时所造成的数据混乱;而为了表明直接写入目标系统的数据,在将待写入数据写入目标系统后,也需要在目标系统中为其分配目标系统数据标识;同时,通过数据融合可以保证各个原系统数据的完整性,还可以防止目标系统数据中出现重复数据,保证目标系统数据的清洁性。
在一种具体实施方式中,为了方便进行第一差别数据的数据系统标识转换,并保证方便进行数据来源的确定,本发明实施例所提供的数据迁移方法的进行第一差别数据的数据系统标识转换,获取所述第一差别数据在所述目标系统的目标系统数据标识的步骤,可以包括:
获取所述第一原系统编号和所述第一差别数据在所述第一原系统的第一原系统数据标识;
将所述第一原系统编号与所述第一原系统数据标识依次排列,得到转换后的所述第一差别数据在所述目标系统的目标系统数据标识。
其中第一原系统编号可以表明数据所来源的系统,第一原系统数据标识即为第一差别数据在第一原系统的数据据标识,从而得到目标系统数据标识即可以很方便的实现数据标记,避免重新编码,还可以清楚地指示数据的原系统来源,方便在需要时的查找。
当然,进行第二差别数据的第二原系统数据标识转换,获取所述第二差别数据在所述目标系统的目标系统数据标识的步骤可以与第一差别数据的转换方式相同,在此不再赘述。
在所述目标系统中为所述待写入数据分配目标系统数据标识的步骤,也可以为利用目标系统的系统编号叠加其他编号的形式,在此不再赘述。
在另一种具体实施方式中,为了方便数据融合,本发明实施例所提供的数据迁移方法的所述将具有相同通用数据标识的第二差别数据与所述目标系统数据融合的步骤可以包括:
获取具有相同通用数据标识的第二差别数据和所述目标系统数据;
当具有相同通用数据标识的所述第二差别数据的条目与所述目标系统数据的条目不同时,将具有不同条目的所述第二差别数据与所述目标系统数据融合;
否则,确定所述条目的属性,根据所述属性确定融合规则,根据所述融合规则将相同条目的所述第二差别数据与所述目标系统数据融合,并将所述第二差别数据标记为失效。
本文所述的条目即为数据的含义,比如:班级信息、年龄、成绩等等。
另外,对于具有相同条目的数据,在进行数据融合时,受到其属性的影响,可能会有不同的融合方式,因此,需要基于属性确定融合规则,进而根据融合规则进行融合,保证数据的有效性和真实性。
这样,通过对具有相同通用数据标识的第二差别数据与目标系统数据中具有相同条目和不同条目的融合,即可以很方便地实现数据的融合,并且,在对相同条目的数据融合时,还结合了条目的具体属性,保证融合数据的效果。
具体地,所述根据所述属性确定融合规则,根据所述融合规则将相同条目的所述第二差别数据与所述目标系统数据融合的步骤可以包括:
当所述条目的属性为唯一性属性时,确定相同条目的所述第二差别数据与所述目标系统数据的最新修改时间,将最新修改时间较新的数据作为新的所述目标系统数据;
当所述条目的属性为累加性属性时,确定相同条目的所述第二差别数据与所述目标系统数据的数据内容,将所述第二差别数据的数据内容和所述目标系统数据的数据内容累加,作为新的所述目标系统数据。
对于数据条目属性,常见的包括唯一性和累加性的,累加性的数据,仅需进行数据累加即可,而对于唯一性的,则需要判断哪一个数据是当前时刻的真实数据,为此可以基于数据的最新修改时间进行确定,将最新修改时间较新的数据作为新的目标系统数据。
通过基于数据唯一性和累加性的属性的区分,分别利用不同的方式实现数据的融合,使得数据融合的结果更加合理,也更为准确。
当然,对于第二原系统数据的数据迁移过程的其他方案,可以与对于第一原系统数据的数据迁移过程类似,在不同的数据迁移阶段,根据数据的读写请求,有不同的数据读写操作,在此不再赘述。
另外,当原系统包括第一原系统和第二原系统时,可以在第一原系统数据完全迁移完成后,再进行第二原系统数据的迁移。
下面对本发明实施例提供的数据迁移装置进行介绍,下文描述的数据迁移装置可以分别认为是,电子设备(如:PC)为实现本发明实施例提供的数据迁移方法所需设置的功能模块架构。下文描述的数据迁移装置的内容,可与上文描述的数据迁移方法的内容相互对应参照。
图3为本发明实施例所提供的数据迁移装置的一框图,该数据迁移装置即可应用于客户端,也可应用于服务器端,参考图3,该数据迁移装置可以包括:
数据迁移信号获取单元100,适于获取数据迁移信号,所述数据迁移信号包括第一原系统信息和目标系统信息;
数据迁移单元110,适于根据所述第一原系统信息确定第一原系统,根据所述目标系统信息确定目标系统,按照预定周期根据所述第一原系统的第一原系统数据和所述目标系统的目标系统数据确定第一差别数据和第一差别数据量,将所述第一差别数据迁移至所述目标系统;
数据读写单元120,适于当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数未达到第一预定次数时,响应于数据请求,将待写入数据写入所述第一原系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回;
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数时,响应于数据请求,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
容易理解的是,当数据迁移的目标系统开发完毕上线,第一原系统改造完备后,通过接收数据迁移信号,就可以触发从第一原系统向目标系统的数据迁移。
为了减少数据迁移过程中数据读写的次数,降低数据迁移的难度,可以在数据流量较小的时候,发出数据迁移信号,从而本发明实施例所提供的数据迁移的数据迁移信号获取单元100获取到数据迁移信号,开始数据的迁移。比如:可以人为选择在深夜的时间,开始数据的迁移。
其中,第一原系统信息是指用于确定数据迁移前所在的第一原系统的信息,目标系统信息是指用于确定数据迁移后的系统的信息。
数据迁移单元110基于所获取的第一原系统信息,确定第一原系统基于所获取的目标系统信息,确定目标系统,然后按照预定周期确定第一原系统数据和目标系统数据,以及第一差别数据和第一差别数据量,为数据迁移做好准备。
另外,需要说明的是,第一差别数据是指第一原系统中包含而目标系统中不包含的数据,而不包括目标系统中包含第一原系统中不包含的数据。
可以理解的是,当刚接收到数据迁移信号时,目标系统数据的数据量为0,第一差别数据即为第一原系统数据,并开始将第一原系统数据向目标系统迁移,由于数据迁移受到时间和流量的限制,如果第一差别数据量很大,两次获取第一差别数据的时间间隙内,前一次得到的第一差别数据可能还未迁移完成,则在后一次确定的第一差别数据后,继续进行数据的迁移,并且随着时间的推移,第一差别数据量不断减小。
本文所述的按照预定周期确定第一原系统数据和目标系统数据是指,不论后续的数据迁移是否完成,当距离上一次获取的第一差别数据的时间间隔达到预定周期时,即开始下一次的第一差别数据的获取,以及后续的数据迁移。
具体地,数据迁移时,可以将具有相同数据标识的数据作为一个数据单元进行迁移,比如:可以将同一用户主体的数据作为数据单元,相同的数据标识即为用户标识。
容易理解的是,在数据迁移的过程中,只要存在第一差别数据,就执行将第一差别数据迁移至目标系统的步骤,以保证第一原系统数据中的数据最终全部包含于目标系统中。
每次获取第一差别数据和差别数据量后,除了数据迁移单元110进行第一差别数据的向目标系统的迁移外,数据读写单元120还需要判断第一差别数据量是否小于第一数据量阈值,如果小于,则记录第一差别数据量小于第一数据量阈值的次数加1,并进一步判断第一差别数据量小于第一数据量阈值的次数是否达到第一预定次数,如果是,则说明第一差别数据已经持续一段时间小于第一数据量阈值,目标系统中已经基本具有第一原系统的数据,为了保证数据迁移的完成,可以开启数据双写。
容易理解的是,本文所述的连续次数是指在一段时间内第一差别数据量持续小于第一数据量阈值,以保证目标系统数据与第一原系统数据的相似性。
如果第一差别数据量大于或等于第一数据量阈值,或者第一差别数据量小于第一数据量阈值的次数未达到第一预定次数,那么说明目标系统数据与第一原系统数据的差别还较大,为了保证数据的正确性,响应于数据请求,当接收到数据写入请求时,仍然将待写入数据写入第一原系统,当接收到数据读取请求时,仍然从第一原系统中获取待读取数据,并通过控制第一原系统将待读取数据返回,数据获取或写入的用户不会感知到数据迁移过程。
容易理解的是,本文所述的响应于数据请求,是指在数据迁移过程中,用户仍然访问数据库,向系统发出数据写入(包含数据的改写和新数据的写入)或者数据读取的请求,系统仍然响应于请求,执行数据写入或者数据读取的指令。
如果按照预定周期获取的第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数后,当在接收到数据写入请求时,将待写入数据同时写入第一原系统和目标系统,以实现新写入数据在两系统中的一致性,避免由于待写入数据的写入造成第一原系统和目标系统的差别数据量的增大;而当接收到数据读取请求时,由于此时第一原系统和目标系统的数据仍然可能存在不同,为保证读取数据的准确性,仍然从第一原系统读取待读取数据,并仍然通过第一原系统将待读取数据返回。
可以看出,本发明实施例所提供的数据迁移方法,在数据迁移过程中,当完成数据迁移的数据迁移量较少时,目标系统数据与第一原系统数据的差别较大时,仍按照数据迁移之前的读写流程进行数据的读写,当数据迁移达到预定数量后,数据写入时,通过数据双写,既将待写入数据写入第一原系统,保证数据的完整性,从而可以通过第一差别数据的获取,防止目标系统中数据的遗漏和缺失;还将新写入数据写入目标系统,保证当第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数后,避免由于新写入数据在第一原系统的写入,而在目标系统中不写入,造成第一差别数据量的增大,使得数据迁移朝向目标系统数据和第一原系统数据的第一差别数据量越来越小的方向变化,加快数据迁移过程的完成,当然,数据双写也可以保证数据迁移过程中,待写入数据的正常写入;数据读取时,为了保证数据的读取,在此阶段,仍然从第一原系统中读取待读取数据,则可以保证读取到的数据的准确性,并且通过第一原系统将待读取数据返回,可以保证数据返回的顺畅性,保证在数据迁移过程中数据读取的用户体验。
这样,本发明实施例所提供的数据迁移方法,通过根据数据迁移的进度确定数据写入的系统和数据读取的系统,可以保证在数据迁移过程中的数据写入的完整性和平滑稳定性,数据读取的准确性和顺畅性,降低用户对于数据迁移的感知,从而可以降低由于数据迁移对用户体验造成的影响。
为了进一步保证数据迁移过程中,数据读写的平滑稳定性,在后续阶段,仍然需要对数据读写进行控制,为此,本发明实施例还提供一种数据迁移装置,还包括:
差别数据及差别数据量获取单元130,适于当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到预定次数时,调整所述第一差别数据和所述第一差别数据量的获取方式为当待写入数据写入时获取。
由于当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到预定次数时,第一原系统数据和目标系统数据仍然存在差别数据,为此,还需要获取第一差别数据,而此时,第一差别数据较小,如果仍然按照预定周期进行获取,则会造成运算资源的浪费,为此,可以在待写入数据写入时获取第一差别数据和第一差别数据量,并同时执行将第一差别数据迁移至目标系统。
可以看出,通过调整获取第一差别数据和第一差别数据量的获取方式,可以在减少确定第一差别数据和第一差别数据量的次数,降低运算量的基础上,保证第一差别数据和第一差别数据量的获取,基于获取的准确性,保证数据的迁移以及数据迁移过程中的数据读写。
然而,当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数后,虽然开启了系统双写(即同时将待写入数据写入第一原系统和目标系统),但仍然未完成数据迁移,为此,为了在保证数据迁移过程中数据读取平滑稳定性的基础上,逐渐转向仅利用目标系统实现数据迁移,本发明实施例所提供的数据迁移装置的数据读写单元120,还适于当待写入数据写入时获取的所述第一差别数据量小于第二数据量阈值的连续次数达到第二预定次数时,响应于数据请求,将所述待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统和所述目标系统均读取所述待读取数据,并通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到预定次数,开始被动地进行第一差别数据量的获取,即当待写入数据写入时获取,并且每当获取待写入数据写入时,不仅获取第一差别数据量,还需要确定第一差别数据量是否小于第二数据量阈值,如果小于第二数据量阈值,则记录第一差别数据量小于第二数据量阈值的次数加1,进一步比较第一差别数据量小于第二数据量阈值的连续次数是否达到第二预定次数。
需要说明的是,第二数据量阈值可以大于第一数据量阈值,也可以小于或等于第一数据量阈值,二者之间也没有必然的大小关系;第二预定次数也可以大于第一预定次数或者小于、等于第一预定次数,二者之间也没有必然的大小关系。
如果待写入数据写入时获取的所述第一差别数据量小于第二数据量阈值的连续次数已达到第二预定次数,当接收到数据写入请求后,依然将待写入数据同时写入第一原系统和目标系统,而当接收到数据读取请求后,不仅从第一原系统读取待读取数据,还从目标系统读取待读取数据,从而可以比较从第一原系统读取的待读取数据和从目标系统读取的待读取数据的差别,确定目标系统的数据的准确性,但在此阶段,仍然将从第一原系统获取的待读取数据通过第一原系统返回,从而可以保证反馈给用户的数据的准确性;否则,响应于数据请求,还将待写入数据写入所述第一原系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
这样,本发明实施例所提供的数据迁移方法,当待写入数据写入时获取的所述第一差别数据量小于第二数据量阈值的连续次数达到第二预定次数时,同时读取目标系统和第一原系统的待读取数据,以实现对目标系统数据准确性的判断,同时还兼顾返回数据的准确性,提高数据迁移过程中,数据读写的平滑稳定。
数据迁移的最终目标是实现目标系统数据与第一原系统数据相同,并且数据读写操作均通过目标系统实现,为此,当待写入数据写入时获取的所述第一差别数据量小于第二数据量阈值的连续次数达到第二预定次数持续一段时间后,就需要开启对于目标系统数据的读取和返回,而为了保证此过程的平稳性,本发明实施例所提供的数据迁移装置的数据读写单元120,还适于当待写入数据写入时获取的所述第一差别数据量小于第三数据量阈值的连续次数达到第三预定次数时,调整数据信任度开关,响应于数据请求,根据所述数据请求对应的数据与所述数据信任度开关的开度的对应关系,确定所述待写入数据的写入系统,以及所述待读取数据的读取系统和返回系统。
对于第一差别数据量小于第三数据量阈值的判断可以在第一差别数据量小于第二数据量阈值后就开始执行,也可以在第一差别数据量小于第二数据量阈值一段时间后或者满足某个其他条件后执行,比如:当第一差别数据量小于第二数据量阈值,并且响应于数据读取请求,从目标系统获取的待读取数据与从第一原系统获取的待读取数据的相同次数达到预定次数。
容易理解的是,如果在第一差别数据量小于第二数据量阈值一段时间后,开始进行第一差别数据量与第三数据量阈值的比较,第三数据量阈值可以大于第二数据量阈值,也可以小于或者等于第二数据量阈值,当然,为了进一步保证数据的准确性,提高数据迁移的顺畅性,本实施例中,可以设置第三数据量阈值小于第二数据量阈值。
当待写入数据写入时获取的所述第一差别数据量小于第三数据量阈值,那么记录第一差别数据量小于第三数据量阈值的次数加1,直至待写入数据写入时获取的第一差别数据量小于第三数据量阈值的连续次数达到第三预定次数时,则开始调整数据信任度开关,每当接收到数据请求时,确定与数据请求对应的数据是否落入数据信任度开关的开度范围内,确定待写入数据的写入系统,以及所述待读取数据的读取系统和返回系统。
这样,通过对数据信任度开关的设置,可以通过对数据信任度开关的调整,逐渐增大对于目标系统数据的信任,并逐渐降低对第一原系统的依赖,实现数据读写从第一原系统向目标系统的转移,从而可以提高数据迁移过程中,对数据读写的平滑稳定性。
具体地,在一种具体实施方式中,所述数据读写单元120,适于根据所述数据请求对应的数据与所述数据信任度开关的开度的对应关系,确定所述待写入数据的写入系统,以及所述待读取数据的读取系统和返回系统包括:
当所述数据请求对应的数据在所述数据信任度开关的开度的范围以外时,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统和所述目标系统均读取所述待读取数据,并通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回;
当所述数据请求对应的数据在所述数据信任度开关的开度的范围以内时,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统和所述目标系统均读取所述待读取数据,并通过所述第一原系统将从所述目标系统获取的所述待读取数据返回。
这样,不论数据请求对应的数据是否落入数据信任度开关的开度范围内,如果数据请求为数据写入请求,那么均将待写入数据同时写入第一原系统和目标系统,保证新写入数据的准确性,如果数据请求为数据读取请求,从第一原系统和目标系统中均读取待读取数据,从而可以用于判断通过目标系统所得到的待读取数据是否准确,而当数据请求对应的数据在所述数据信任度开关的开度的范围以外时,信任从第一原系统读取的待读取数据,并利用第一原系统返回,当数据请求对应的数据在数据信任度开关的开度的范围以内时,信任从目标系统读取的待读取数据,并利用第一原系统返回。
这样,在对数据信任度开关的开度进行调整的过程中,数据的写入仍然保持双写状态,从而可以更好地保证数据的完整性,数据的读取仍然保持从两个系统同时读取的状态,从而一方面可以简化数据获取逻辑,另一方面有助于确定从目标系统获取的待读取数据的准确性,而返回数据的调整则可以保证对目标系统数据的信任度的提高,实现对目标系统信任的逐渐过渡。
在一种具体实施方式中,数据信任度开关可以包括第一原系统数据标识范围开关,数据请求对应的数据包括数据标识。
具体地,数据标识可以为数据所对应用户主体的标识,即前述的用户标识,比如:对于不同学生,每个学生为一个用户,那么关于这个学生的所有数据的标识均为同一个用户标识,对应的,数据标识范围即为用户标识范围,通过确定各个用户标识,从而可以确定将所有的用户标识确定在内的用户标识范围。
可以看出,利用数据请求对应的数据的数据标识,以及第一原系统数据标识范围开关,可以方便地实现对数据信任范围的调整,从而可以很方便的实现对于哪些数据信任的调整,进而实现数据信任度开关的作用。
进一步地,由于在数据迁移过程中会不断有新的数据写入,为了保证在数据量不断变化的情况下,仍然能够实现对于数据信任度开关的开度调整要求,第一原系统数据标识范围开关可以包括第一原系统调整标识范围开关,而数据标识包括第一原系统数据一致性哈希标识,所述第一原系统数据一致性哈希标识通过所述第一原系统数据标识和所述调整标识范围的一致性哈希运算获取。
需要说明的是,本文所述的第一原系统调整标识范围开关是指限定了最大值的开关,比如,限定最大值为100,那么调整标识范围即为1-100,第一原系统调整标识范围开关的开度就在1-100之间调整。
为了保证利用第一原系统调整标识范围开关时,对于数据的信任度控制,数据标识也需要进行调整,具体地,为了保证在利用第一原系统调整标识范围开关进行调整时,不会引起已经被列为信任范围的数据重新变为非信任数据,导致数据的读取途径来回跳转,影响数据获取者的体验,第一原系统数据标识可以为第一原系统数据一致性哈希标识,即通过对第一原系统数据标识和调整标识范围的一致性哈希运算获取。
比如:第一原系统数据标识为150,调整标识范围即为1-100,那么第一原系统数据一致性哈希标识即为150与100的取余运算,即为50,此时如果第一原系统调整标识范围开关的开度为30,那么第一原系统数据标识为150的数据就落入第一原系统调整标识范围开关的开度以外,而当第一原系统调整标识范围开关的开度调整为80时,那么第一原系统数据标识为150的数据就落入第一原系统调整标识范围开关的开度以内。
进一步地,为了随着时间的推进,实现数据信任度开关的开度的调整,本发明实施例所提供的数据迁移装置的数据读写单元120,适于调整数据信任度开关可以包括:
每次调整数据信任度开关后,执行:
获取预定评判周期内所述第一差别数据量大于第四数据量阈值的周期次数;
当所述周期次数大于第四预定次数时,调整数据信任度开关减小预定信任度调整步长;
当所述周期次数小于或等于第四预定次数时,调整数据信任度开关增大预定信任度调整步长。
其中,第四数据量阈值可以根据数据迁移进度的要求和在此阶段所允许的第一原系统和目标系统的第一差别数据量的最大值进行确定;周期次数是指在预定评判周期内的次数之和。
从而,为了实现对于数据信任度开关的调整,当待写入数据写入时获取的所述第一差别数据量小于第三数据量阈值的连续次数达到第三预定次数时,进行第一次数据信任度开关的调整,具体调整量可以预先确定,在一种具体实施方式中,可以按照预定信任度调整步长进行调整,即增大预定信任度调整步长,然后获取在预定评判周期内第一差别数据量大于第四数据量阈值的周期次数,如果周期次数小于或等于第四预定次数,那么按照预定信任度调整步长增大数据信任度开关的开度,从而可以让更多的数据的信任度提高,如果周期次数大于第四预定次数,那么按照预定信任度调整步长减小数据信任度开关的开度,从而可以降低数据的信任度,保证读取数据的准确性,保证数据迁移过程中的过渡平滑性。
由于数据迁移的目标是达到对目标系统数据的全面信任,不论是待写入数据的写入,还是待读取数据的读取,都可以直接通过目标系统完成,因此对着数据信任度开关的开度的调整,还需要确定数据信任度开关的开度是否为全开,以即使调整在新阶段的数据写入和读取过程,为此,本发明实施例所提供的数据迁移装置的数据读写单元120,还适于当所述数据信任度开关的开度为全开,且待写入数据写入时获取的所述第一差别数据量小于第五数据量阈值的连续次数达到第五预定次数时,响应于数据请求,将所述待写入数据写入所述目标系统,从所述目标系统读取所述待读取数据,并通过所述第一原系统将从所述目标系统获取的所述待读取数据返回。
容易理解的是,对于所述数据信任度开关的开度是否为全开,且待写入数据写入时获取的所述第一差别数据量小于第五数据量阈值的连续次数是否达到第五预定次数的判断,是经过两个步骤完成的,每次进行数据信任度开关的开度调整后,判断数据信任度开关是否已经达到全开,如果是,那么继续判断待写入数据写入时获取的第一差别数据量是否小于第五数据量阈值,如果是,那么待写入数据写入时获取的第一差别数据量是否小于第五数据量阈值的次数增加1,一直到且待写入数据写入时获取的所述第一差别数据量小于第五数据量阈值的连续次数是否达到第五预定次数。
容易理解的是,第五数据量阈值也可以根据需要进行设定,与其他数据量阈值之间没有必然的大小关系。
当所述数据信任度开关的开度为全开,且待写入数据写入时获取的所述第一差别数据量小于第五数据量阈值的连续次数达到第五预定次数时,如果接收到数据写入请求,仅需要将待写入数据写入目标系统,从而降低运算量;如果接收到数据读取请求,仅从目标系统读取待读取数据,并通过第一原系统将目标系统获取的待读取数据返回。
这样,随着数据迁移的推进,逐渐增大对目标系统的信任,可以在保证在数据迁移过程中的数据写入的完整性和平滑稳定性,以及数据读取的准确性和顺畅性的基础上,减少数据运算量。
在数据迁移过程中,除了需要随着数据迁移量的推进,逐渐增大对于目标数据的信任以外,还需要调整待读取数据的返回路径,逐渐减小对于第一原系统的依赖,为此,本发明实施例所提供的数据迁移装置的数据读写单元120,还适于当响应于数据请求,将所述待写入数据写入所述目标系统,从所述目标系统读取所述待读取数据,并通过所述第一原系统将从所述目标系统获取的所述待读取数据返回后,待写入数据写入时获取的所述第一差别数据量小于第六数据量阈值的连续次数达到第六预定次数时,按照预定时间间隔和预定比例减小通过所述第一原系统所返回所述待读取数据的量,增大通过目标系统所返回所述待读取数据的量,直至通过所述第一原系统所返回所述待读取数据的比例降为0,通过所述目标系统返回所述待读取数据的比例增为100%。
当响应于数据请求,将所述待写入数据写入所述目标系统,从所述目标系统读取所述待读取数据,并通过所述第一原系统将从所述目标系统获取的所述待读取数据返回后,在每次待写入数据写入时,仍然获取第一差别数据量,当第一差别数据量小于第六数据量阈值的连续次数是否达到第六预定次数时,按照预定比例减小通过第一原系统返回待读取数据的量,并增大通过目标系统所返回所述待读取数据的量,然后到达预定周期后,进一步按照预定比例减小通过第一原系统返回待读取数据的量,增大通过目标系统所返回所述待读取数据的量,然后随着时间的推进,再次按照预定比例减小通过第一原系统返回待读取数据的量,增大通过目标系统所返回所述待读取数据的量,直至通过第一原系统所返回所述待读取数据的比例降为0,通过所述目标系统返回所述待读取数据的比例增为100%。
容易理解的是,通过第一原系统所返回所述待读取数据的比例与通过所述目标系统返回所述待读取数据的比例之和始终为100%。
需要说明的是,预定周期可以包括第一预定周期、第二预定周期……,并且各个预定周期的时间长度可以相同也可以不同;另外,预定比例也可以包括第一预定比例、第二预定比例……,并且各个预定比例的大小可以相同也可以不同。
具体地,可以通过减小所述第一原系统通过数据返回网关所传输数据的流量,减小通过所述第一原系统所返回所述待读取数据的量,通过增大所述目标系统通过数据返回网关所传输数据的流量,增大通过目标系统所返回所述待读取数据的量,以简化对于通过第一原系统所返回所述待读取数据的量和通过目标系统所返回所述待读取数据的量的调整控制方式,操作过程简单,实现方便。
可以看出,通过减小通过第一原系统返回的待读取数据的量,可以逐渐进一步地降低对于第一原系统的依赖,当通过所述目标系统返回所述待读取数据的比例增为100%时,可以实现,相应于数据请求,待写入数据写入目标系统,待读取数据从目标系统读取,并通过目标系统返回,从而可以实现数据迁移过程的完成,并且在此过程中,可以提高数据迁移的平滑稳定性。
由于在数据迁移过程中,还会出现从多个原系统向同一个目标系统进行数据迁移的情况,为了避免多个原系统向同一个目标系统进行数据迁移时,造成迁移至同一个目标系统的数据出现混乱的现象,因此,在另一种具体实施方式中,本发明实施例所提供的数据迁移装置,数据迁移单元110,适于将所述第一差别数据迁移至所述目标系统,还包括:
进行第一差别数据的第一原系统数据标识转换,获取所述第一差别数据在所述目标系统的目标系统数据标识;
数据读写单元120,适于将待写入数据同时写入所述目标系统,还包括:
在所述目标系统中为所述待写入数据分配目标系统数据标识;
数据迁移信号获取单元100,所获取的数据迁移信号还可以包括第二原系统信息,数据迁移单元110,还适于:
根据所述第二原系统信息确定第二原系统,按照预定周期根据所述第二原系统的第二原系统数据和所述目标系统数据确定第二差别数据和第二差别数据量,将所述第二差别数据迁移至所述目标系统,进行第二差别数据的第二原系统数据标识转换,获取所述第二差别数据在所述目标系统的目标系统数据标识,并将具有相同通用数据标识的第二差别数据与所述目标系统数据融合,所述通用数据标识至少在所述第一原系统和所述第二原系统中标识同一归属数据。
可以理解的是,第二差别数据是指第二原系统中包含而目标系统中不包含的数据,不包括目标系统中包含而第二原系统中不包含的数据。
本文所述的通用数据标识是指能够在第一原系统、第二原系统,甚至更多系统中标识数据归属的数据,比如:对于用户而言,用户的身份证号,只要存储有用户身份证号的系统,只要找到相同的身份证号,就可以表明归属于同一个用户,比较而言,第一原系统数据标识是指在第一原系统中标识一个用户的标识,比如第一原系统中的系统编号,第二原系统数据标识是指在第二原系统中标识一个用户的标识,比如第二原系统中的编号,对应于同一个用户的第一原系统数据标识和第二原系统数据标识可以不同,当然,通用数据标识也可以同时作为第一原系统数据标识或第二原系统数据标识。
如果第二差别数据中具有与目标系统数据的通用数据标识相同的数据,那么表明第一原系统中也有具有该通用数据标识的数据,并且已经迁移至目标系统,为此需要将第二差别数据与目标系统数据中具有相同数据标识的数据进行融合。
这样,在将多个原系统数据迁移至同一个目标系统时,通过进行第一差别数据的第一原系统数据标识转换和第二差别数据的第二原系统数据标识转换,还可以避免由于第一原系统数据标识和第二原系统数据标识相同,但是所代表的数据归属不同时所造成的数据混乱;而为了表明直接写入目标系统的数据,在将待写入数据写入目标系统后,也需要在目标系统中为其分配目标系统数据标识;同时,通过数据融合可以保证各个原系统数据的完整性,还可以防止目标系统数据中出现重复数据,保证目标系统数据的清洁性。
在一种具体实施方式中,为了方便进行第一差别数据的数据系统标识转换,并保证方便进行数据来源的确定,本发明实施例所提供的数据迁移装置,数据迁移单元110,适于进行第一差别数据的数据系统标识转换,获取所述第一差别数据在所述目标系统的目标系统数据标识,可以包括:
获取所述第一原系统编号和所述第一差别数据在所述第一原系统的第一原系统数据标识;
将所述第一原系统编号与所述第一原系统数据标识依次排列,得到转换后的所述第一差别数据在所述目标系统的目标系统数据标识。
其中第一原系统编号可以表明数据所来源的系统,第一原系统数据标识即为第一差别数据在第一原系统的数据据标识,从而得到目标系统数据标识即可以很方便的实现数据标记,避免重新编码,还可以清楚地指示数据的原系统来源,方便在需要时的查找。
当然,进行第二差别数据的第二原系统数据标识转换,获取所述第二差别数据在所述目标系统的目标系统数据标识的步骤可以与第一差别数据的转换方式相同,在此不再赘述。
在所述目标系统中为所述待写入数据分配目标系统数据标识的步骤,也可以为利用目标系统的系统编号叠加其他编号的形式,在此不再赘述。
在另一种具体实施方式中,为了方便数据融合,本发明实施例所提供的数据迁移装置的数据迁移单元110,适于将具有相同通用数据标识的第二差别数据与所述目标系统数据融合可以包括:
获取具有相同通用数据标识的第二差别数据和所述目标系统数据;
当具有相同通用数据标识的所述第二差别数据的条目与所述目标系统数据的条目不同时,将具有不同条目的所述第二差别数据与所述目标系统数据融合;
否则,确定所述条目的属性,根据所述属性确定融合规则,根据所述融合规则将相同条目的所述第二差别数据与所述目标系统数据融合,并将所述第二差别数据标记为失效。
本文所述的条目即为数据的含义,比如:班级信息、年龄、成绩等等。
另外,对于具有相同条目的数据,在进行数据融合时,受到其属性的影响,可能会有不同的融合方式,因此,需要基于属性确定融合规则,进而根据融合规则进行融合,保证数据的有效性和真实性。
这样,通过对具有相同通用数据标识的第二差别数据与目标系统数据中具有相同条目和不同条目的融合,即可以很方便地实现数据的融合,并且,在对相同条目的数据融合时,还结合了条目的具体属性,保证融合数据的效果。
具体地,数据迁移单元110,适于根据所述属性确定融合规则,根据所述融合规则将相同条目的所述第二差别数据与所述目标系统数据融合,可以包括:
当所述条目的属性为唯一性属性时,确定相同条目的所述第二差别数据与所述目标系统数据的最新修改时间,将最新修改时间较新的数据作为新的所述目标系统数据;
当所述条目的属性为累加性属性时,确定相同条目的所述第二差别数据与所述目标系统数据的数据内容,将所述第二差别数据的数据内容和所述目标系统数据的数据内容累加,作为新的所述目标系统数据。
对于数据条目属性,常见的包括唯一性和累加性的,累加性的数据,仅需进行数据累加即可,而对于唯一性的,则需要判断哪一个数据是当前时刻的真实数据,为此可以基于数据的最新修改时间进行确定,将最新修改时间较新的数据作为新的目标系统数据。
通过基于数据唯一性和累加性的属性的区分,分别利用不同的方式实现数据的融合,使得数据融合的结果更加合理,也更为准确。
当然,对于第二原系统数据的数据迁移过程的其他方案,可以与对于第一原系统数据的数据迁移过程类似,在不同的数据迁移阶段,根据数据的读写请求,有不同的数据读写操作,在此不再赘述。
另外,当原系统包括第一原系统和第二原系统时,可以在第一原系统数据完全迁移完成后,再进行第二原系统数据的迁移。
本发明实施例还提供一种电子设备,本发明实施例提供的电子设备可以通过程序形式装载上述所述的程序模块架构,以实现本发明实施例提供的数据迁移方法;该硬件电子设备可以应用于具体数据处理能力的电子设备,该电子设备可以为:例如终端设备或者服务器设备。
可选的,图4示出了本发明实施例提供的电子设备一种可选硬件设备架构,可以包括:至少一个存储器3和至少一个处理器1;所述存储器存储有程序,所述处理器调用所述程序,以执行前述的数据迁移方法,另外,至少一个通信接口2和至少一个通信总线4;处理器1和存储器3可以位于同一电子设备,例如处理器1和存储器3可以位于服务器设备或者终端设备;处理器1和存储器3也可以位于不同的电子设备。
作为本发明实施例公开内容的一种可选实现,存储器3可以存储程序,处理器1可调用所述程序,以执行本发明上述实施例提供的数据迁移方法。
本发明实施例中,电子设备可以是能够进行数据迁移的平板电脑、笔记本电脑等设备。
在本发明实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;显然,图4所示的处理器1、通信接口2、存储器3和通信总线4的通信连接示意仅是可选的一种方式;
可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;
处理器1可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
需要说明的是,上述的电子设备还可以包括与本发明实施例公开内容可能并不是必需的其他器件(未示出);鉴于这些其他器件对于理解本发明实施例公开内容可能并不是必需,本发明实施例对此不进行逐一介绍。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,当该指令被处理器执行时可以实现如上所述数据迁移方法。
本发明实施例所提供的存储介质所存储的计算机可执行指令,在接收到数据迁移信号后,根据第一原系统信息确定第一原系统数据,并根据目标系统信息确定目标系统数据,并基于第一原系统数据和目标系统数据确定第一差别数据和第一差别数据量,不断将第一差别数据迁移至目标系统,在此过程中,响应于数据请求,将待写入数据写入第一原系统,从第一原系统读取待读取数据,通过第一原系统将获取的待读取数据返回;直至所获取的第一差别数据量小于第一数据量阈值,并且第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数时,响应于数据请求,开启数据双写,将待写入数据不仅写入第一原系统还同时写入目标系统,但在数据读取时,仅从第一原系统获取待读取数据,并通过第一原系统获取的待读取数据返回。这样,本发明实施例所提供的数据迁移方法,在数据迁移过程中,当数据迁移量较少时,仍按照数据迁移之前的读写流程进行数据的读写,当数据迁移达到一定数量后,数据写入时,通过数据双写,既将待写入数据写入第一原系统,保证数据的完整性,从而可以通过第一差别数据的获取,防止目标系统中数据的遗漏和缺失;还将新写入数据写入目标系统,保证当第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数后,避免由于新写入数据在第一原系统的写入,而在目标系统中不写入,造成第一差别数据量的增大,使得数据迁移朝向目标系统数据和第一原系统数据的第一差别数据量越来越小的方向变化,加快数据迁移过程的完成,当然,数据双写也可以保证数据迁移过程中,待写入数据的正常写入;数据读取时,为了保证数据的读取,在此阶段,仍然从第一原系统中读取待读取数据,则可以保证读取到的数据的准确性,并且通过第一原系统将待读取数据返回,可以保证数据返回的顺畅性,保证在数据迁移过程中数据读取的用户体验。可以看出,本发明实施例所提供的数据迁移方法,通过根据数据迁移的进度确定数据写入的系统和数据读取的系统,可以保证在数据迁移过程中的数据写入的完整性和平滑稳定性,数据读取的准确性和顺畅性,降低用户对于数据迁移的感知,从而可以降低由于数据迁移对用户体验造成的影响。
上述本发明的实施方式是本发明的元件和特征的组合。除非另外提及,否则所述元件或特征可被视为选择性的。各个元件或特征可在不与其它元件或特征组合的情况下实践。另外,本发明的实施方式可通过组合部分元件和/或特征来构造。本发明的实施方式中所描述的操作顺序可重新排列。任一实施方式的一些构造可被包括在另一实施方式中,并且可用另一实施方式的对应构造代替。对于本领域技术人员而言明显的是,所附权利要求中彼此没有明确引用关系的权利要求可组合成本发明的实施方式,或者可在提交本申请之后的修改中作为新的权利要求包括。
本发明的实施方式可通过例如硬件、固件、软件或其组合的各种手段来实现。在硬件配置方式中,根据本发明示例性实施方式的方法可通过一个或更多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器等来实现。
在固件或软件配置方式中,本发明的实施方式可以模块、过程、功能等形式实现。软件代码可存储在存储器单元中并由处理器执行。存储器单元位于处理器的内部或外部,并可经由各种己知手段向处理器发送数据以及从处理器接收数据。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是符合与本文所公开的原理和新颖特点相一致的最宽的范围。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种变动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (18)
1.一种数据迁移方法,其特征在于,包括:
获取数据迁移信号,所述数据迁移信号包括第一原系统信息和目标系统信息;
根据所述第一原系统信息确定第一原系统,根据所述目标系统信息确定目标系统,按照预定周期根据所述第一原系统的第一原系统数据和所述目标系统的目标系统数据确定第一差别数据和第一差别数据量,将所述第一差别数据迁移至所述目标系统;
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数未达到第一预定次数时,响应于数据请求,将待写入数据写入所述第一原系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回;
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数时,响应于数据请求,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
2.如权利要求1所述的数据迁移方法,其特征在于,还包括:
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到预定次数时,调整所述第一差别数据和所述第一差别数据量的获取方式为待写入数据写入时获取。
3.如权利要求2所述的数据迁移方法,其特征在于,还包括:
当待写入数据写入时获取的所述第一差别数据量小于第二数据量阈值的连续次数达到第二预定次数时,响应于数据请求,将所述待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统和所述目标系统均读取所述待读取数据,并通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
4.如权利要求3所述的数据迁移方法,其特征在于,还包括:
当待写入数据写入时获取的所述第一差别数据量小于第三数据量阈值的连续次数达到第三预定次数时,调整数据信任度开关,响应于数据请求,根据所述数据请求对应的数据与所述数据信任度开关的开度的对应关系,确定所述待写入数据的写入系统,以及所述待读取数据的读取系统和返回系统,通过对所述数据信任度开关的调整,适于逐渐增大对于目标系统数据的信任,逐渐降低对第一原系统的依赖。
5.如权利要求4所述的数据迁移方法,其特征在于,所述根据所述数据请求对应的数据与所述数据信任度开关的开度的对应关系,确定所述待写入数据的写入系统,以及所述待读取数据的读取系统和返回系统的步骤包括:
当所述数据请求对应的数据在所述数据信任度开关的开度的范围以外时,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统和所述目标系统均读取所述待读取数据,并通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回;
当所述数据请求对应的数据在所述数据信任度开关的开度的范围以内时,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统和所述目标系统均读取所述待读取数据,并通过所述第一原系统将从所述目标系统获取的所述待读取数据返回。
6.如权利要求4所述的数据迁移方法,其特征在于,所述数据信任度开关包括第一原系统数据标识范围开关,所述数据请求对应的数据包括第一原系统数据标识。
7.如权利要求6所述的数据迁移方法,其特征在于,所述第一原系统数据标识范围开关包括第一原系统调整标识范围开关,所述第一原系统数据标识包括第一原系统数据一致性哈希标识,所述第一原系统数据一致性哈希标识通过所述第一原系统数据标识和所述第一原系统调整标识范围的一致性哈希运算获取,其中,所述第一原系统调整标识范围开关是指限定了开关中的第一原系统数据标识的最大值的开关。
8.如权利要求4所述的数据迁移方法,其特征在于,所述调整数据信任度开关的步骤包括:
每次调整数据信任度开关后,执行:
获取预定评判周期内所述第一差别数据量大于第四数据量阈值的周期次数;
当所述周期次数大于第四预定次数时,调整数据信任度开关减小预定信任度调整步长;
当所述周期次数小于或等于第四预定次数时,调整数据信任度开关增大预定信任度调整步长。
9.如权利要求4所述的数据迁移方法,其特征在于,还包括:
当所述数据信任度开关的开度为全开,且待写入数据写入时获取的所述第一差别数据量小于第五数据量阈值的连续次数达到第五预定次数时,响应于数据请求,将所述待写入数据写入所述目标系统,从所述目标系统读取所述待读取数据,并通过所述第一原系统将从所述目标系统获取的所述待读取数据返回。
10.如权利要求7所述的数据迁移方法,其特征在于,还包括:
当响应于数据请求,将所述待写入数据写入所述目标系统,从所述目标系统读取所述待读取数据,并通过所述第一原系统将从所述目标系统获取的所述待读取数据返回后,待写入数据写入时获取的所述第一差别数据量小于第六数据量阈值的连续次数达到第六预定次数时,按照预定时间间隔和预定比例减小通过所述第一原系统所返回所述待读取数据的量,增大通过目标系统所返回所述待读取数据的量,直至通过所述第一原系统所返回所述待读取数据的比例降为0,通过所述目标系统返回所述待读取数据的比例增为100%。
11.如权利要求10所述的数据迁移方法,其特征在于,所述减小通过所述第一原系统所返回所述待读取数据的量,增大通过目标系统所返回所述待读取数据的量的步骤包括:
通过减小所述第一原系统通过数据返回网关所传输数据的流量,减小通过所述第一原系统所返回所述待读取数据的量,通过增大所述目标系统通过数据返回网关所传输数据的流量,增大通过目标系统所返回所述待读取数据的量。
12.如权利要求1-11任一项所述的数据迁移方法,其特征在于,所述将所述第一差别数据迁移至所述目标系统步骤后,还包括:
进行第一差别数据的第一原系统数据标识转换,获取所述第一差别数据在所述目标系统的目标系统数据标识;
所述将待写入数据同时写入所述目标系统的步骤后,还包括:
在所述目标系统中为所述待写入数据分配目标系统数据标识;
数据迁移信号还包括第二原系统信息,所述数据迁移方法还包括:
根据所述第二原系统信息确定第二原系统,按照预定周期根据所述第二原系统的第二原系统数据和所述目标系统数据确定第二差别数据和第二差别数据量,将所述第二差别数据迁移至所述目标系统,进行第二差别数据的第二原系统数据标识转换,获取所述第二差别数据在所述目标系统的目标系统数据标识,并将具有相同通用数据标识的第二差别数据与所述目标系统数据融合,所述通用数据标识至少在所述第一原系统和所述第二原系统中标识同一归属数据。
13.如权利要求12所述的数据迁移方法,其特征在于,所述进行第一差别数据的第一原系统数据标识转换,获取所述第一差别数据在所述目标系统的目标系统数据标识的步骤包括:
获取所述第一原系统编号和所述第一差别数据在所述第一原系统的第一原系统数据标识;
将所述第一原系统编号与所述第一原系统数据标识依次排列,得到转换后的所述第一差别数据在所述目标系统的目标系统数据标识。
14.如权利要求12所述的数据迁移方法,其特征在于,所述将具有相同通用数据标识的第二差别数据与所述目标系统数据融合的步骤包括:
获取具有相同通用数据标识的第二差别数据和所述目标系统数据;
当具有相同通用数据标识的所述第二差别数据的条目与所述目标系统数据的条目不同时,将具有不同条目的所述第二差别数据与所述目标系统数据融合;
否则,确定所述条目的属性,根据所述属性确定融合规则,根据所述融合规则将相同条目的所述第二差别数据与所述目标系统数据融合,并将所述第二差别数据标记为失效。
15.如权利要求14所述的数据迁移方法,其特征在于,所述根据所述属性确定融合规则,根据所述融合规则将相同条目的所述第二差别数据与所述目标系统数据融合的步骤包括:
当所述条目的属性为唯一性属性时,确定相同条目的所述第二差别数据与所述目标系统数据的最新修改时间,将最新修改时间较新的数据作为新的所述目标系统数据;
当所述条目的属性为累加性属性时,确定相同条目的所述第二差别数据与所述目标系统数据的数据内容,将所述第二差别数据的数据内容和所述目标系统数据的数据内容累加,作为新的所述目标系统数据。
16.一种数据迁移装置,其特征在于,包括:
数据迁移信号获取单元,适于获取数据迁移信号,所述数据迁移信号包括第一原系统信息和目标系统信息;
数据迁移单元,适于根据所述第一原系统信息确定第一原系统,根据所述目标系统信息确定目标系统,按照预定周期根据所述第一原系统的第一原系统数据和所述目标系统的目标系统数据确定第一差别数据和第一差别数据量,将所述第一差别数据迁移至所述目标系统;
数据读写单元,适于当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数未达到第一预定次数时,响应于数据请求,将待写入数据写入所述第一原系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回;
当按照所述预定周期获取的所述第一差别数据量小于第一数据量阈值的连续次数达到第一预定次数时,响应于数据请求,将待写入数据同时写入所述第一原系统和所述目标系统,从所述第一原系统读取待读取数据,通过所述第一原系统将从所述第一原系统获取的所述待读取数据返回。
17.一种存储介质,其特征在于,所述存储介质存储有适于数据迁移的程序,以实现如权利要求1-15任一项所述的数据迁移方法。
18.一种电子设备,其特征在于,包括至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述程序,以执行如权利要求1-15任一项所述的数据迁移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011115102.XA CN112015351B (zh) | 2020-10-19 | 2020-10-19 | 数据迁移方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011115102.XA CN112015351B (zh) | 2020-10-19 | 2020-10-19 | 数据迁移方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015351A CN112015351A (zh) | 2020-12-01 |
CN112015351B true CN112015351B (zh) | 2021-01-29 |
Family
ID=73528314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011115102.XA Active CN112015351B (zh) | 2020-10-19 | 2020-10-19 | 数据迁移方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015351B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816839A (zh) * | 2021-01-21 | 2022-07-29 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105528368B (zh) * | 2014-09-30 | 2019-03-12 | 北京金山云网络技术有限公司 | 一种数据库迁移方法及装置 |
JP2018106462A (ja) * | 2016-12-27 | 2018-07-05 | 富士通株式会社 | 情報処理装置、ストレージ制御プログラムおよびストレージ制御方法 |
US11593315B2 (en) * | 2018-06-26 | 2023-02-28 | Hulu, LLC | Data cluster migration using an incremental synchronization |
CN110688254B (zh) * | 2019-09-06 | 2022-06-03 | 北京达佳互联信息技术有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN111221800B (zh) * | 2019-12-19 | 2024-09-13 | 中国平安人寿保险股份有限公司 | 数据库迁移方法、装置、电子设备及存储介质 |
-
2020
- 2020-10-19 CN CN202011115102.XA patent/CN112015351B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112015351A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2863310B1 (en) | Data processing method and apparatus, and shared storage device | |
CN108460045B (zh) | 一种快照的处理方法及分布式块存储系统 | |
CN106302829A (zh) | 一种信息访问方法、装置及服务器 | |
US20230128946A1 (en) | Subtitle generation method and apparatus, and device and storage medium | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
CN111880909B (zh) | 一种基于分布式的发布数据的方法及装置 | |
CN113568582A (zh) | 数据管理方法、装置和存储设备 | |
CN110442307A (zh) | 一种Linux系统中磁盘的绑定方法、设备以及存储介质 | |
CN112015351B (zh) | 数据迁移方法、装置、存储介质及电子设备 | |
CN113204530B (zh) | 分布式文件系统的数据写入方法、装置、设备以及介质 | |
CN114840562B (zh) | 业务数据的分布式缓存方法、装置、电子设备及存储介质 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN107148612A (zh) | 一种扩展用户分区的方法和装置 | |
JP2016009225A (ja) | データベース管理装置、データベース管理方法、プログラムおよび記録媒体 | |
CN114089924B (zh) | 区块链账本数据存储系统及方法 | |
CN111638938A (zh) | 虚拟机的迁移方法、装置、电子设备及存储介质 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
CN111966845B (zh) | 图片管理方法、装置、存储节点及存储介质 | |
US20240406077A1 (en) | Virtual resource information synchronization method, orchestrator, electronic device, and readable storage medium | |
WO2024217224A1 (zh) | 一种基于区块链的通信方法及装置 | |
CN103678008A (zh) | 数据读取方法及相应的数据读取装置 | |
CN110990360A (zh) | 基于网络存储设备的文件同步方法及相关组件 | |
US20200104391A1 (en) | Ensuring integrity of records in a not only structured query language database | |
US20220069978A1 (en) | Method and apparatus for storing evidence collection process video segment | |
US20240256163A1 (en) | Data Processing Method and Apparatus for Shared Memory, and Device and Medium |
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 |