数据迁移校正方法及系统与流程

文档序号:11582051阅读:418来源:国知局
数据迁移校正方法及系统与流程

本申请涉及数据迁移,特别涉及大型数据和特大型数据迁移和校正方法。



背景技术:

随着大数据的时代的到来,企业各信息化系统不断产生海量的数据,在对存储基础设施提出要求的同时,也对数据迁移技术及其实施提出高要求。另一方面,根据数据的形态及特点不同,通常可以将企业中的数据分为结构化数据和非结构化数据。结构化数据是指存储在关系型数据库中,可以用二维表结构来表达的数据类型,通常由各信息化系统产生,以文本格式存储在关系数据库中的数据;非结构化数据,是指与结构化数据相比,不方便采用二维表结构来表达的数据类型即称为非结构化数据,可包括各种主流格式的办公文档、图片、xml、html、各类报表、图像和音频,通常以文件的形式存储。根据gather的调查报告,企业中非结构化数据占比超过80%。所以,针对非结构化数据的数据迁移是企业实施数据迁移的重要方面。

所谓数据迁移,是指一个依靠软件支持的、从源程序将数据迁移到目标应用程序的过程,其核心包括三个环节,分别是:原数据清洗、数据转换、数据完整性检测。作为数据迁移核心环节之一的原数据清洗环节主要负责将原数据中出现二义性性、重复、不完整、违反业务或逻辑规则等问题的数据进行相应的清洗操作,获得符合业务规则的数据;数据转换环节是将原数据结构(格式)转换为目标数据结构(格式);而数据完整性检测阶段,是确保数据迁移完成后,数据仍然保持完整性,避免在迁移过程中造成数据损坏、丢失。在上述针对数据迁移的三个环节中,原数据清洗、数据转换通常适用于结构化数据,对非结构化数据不适用;而但数据迁移过程的完整性检测,则是实施非结构化数据迁移的重要保障,也是影响非结构化数据迁移性能、质量的重要方面。

数据完整性检测,可以是避免数据迁移过程中数据丢失、数据损坏、数据语义改变、人为篡改等数据完整性遭到破坏的情况的手段发生,由于数据完整性遭到破坏会给整个数据迁移项目带着致命的危害,所以一直都是数据迁移实施的重点。现有的数据迁移完整性检测方法,存在性能较低或完整性检测不完备等情况。

现有数据迁移校正方法由于迁移前后文件位于不同的服务器或存储,无法再对两个文件进行逐一比对。所以,在实际数据迁移应用中,通常为:通过采用比对原文件和迁移后的文件大小是否一致,判断迁移是否是完整的,如图1所示,或通过比对原文件和迁移后的文件的crc或md5校验值和迁移后的文件的crc或md5校验值是否一致等方式,判断迁移是否是完整的。

然而,比对原文件和迁移后的文件大小的方式不能完全保证数据丢失、数据损坏、数据语义改变、人为篡改等各类数据不完整情况的发生。以文件长度为例,即使文件大小相同,也有可能因为部分字节的错位导致文件无法正常打开、使用。

同样比对原文件的crc或md5校验值和迁移后的文件的crc或md5校验值等方式((即数据迁移过程包括3个过程:数据传输的过程、数据传输完成后计算迁移文件的md5值的过程和比对前后md5值是否相同的过程),导致数据迁移过程的耗时过长,迁移效率低,不适用于大规模的非结构化数据迁移项目。



技术实现要素:

以下给出对一个或更多个方面的简化概述以力图提供对此类方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或更多个方面的一些概念以作为稍后给出的更加具体的说明之序。

本申请提出数据迁移校正方法及系统,能够兼顾完整性比较及执行效率两方面的因素,从而适用于大规模非结构化数据迁移过程中。解决大数据迁移校验效率耗时长的问题。

其中数据迁移校正方法,应用于具有控制器的系统中,控制器连接源数据服务器、目标数据服务器,

源数据服务器存储有迁出文件,目标数据服务器具有未使用的存储空间,用于存放迁出文件;按源数据服务器的处理器核的个数的整数倍,将迁出文件划分为多个数据块,源数据服务器计算获得每个数据块分别对应的数字摘要a;

将数据摘要a保存于控制器中;并将迁出文件发送至目标数据服务器;

在目标数据服务器中,在迁出文件转移的过程中平行计算经过数据迁移后的迁出文件中的数据块的数据摘要b;

比较数据摘要a和数据摘要b是否相同;

若该迁出文件的所有数据块对应的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若该迁出文件的任一的数据块对应的数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

进一步,在步骤“按源数据服务器的处理器核的个数的整数倍,将迁出文件划分为多个数据块”之前,还包括步骤:判断迁出文件的大小是否大于设定定值,若大于则执行按源数据服务器的处理器核的个数的整数倍,将迁出文件划分为多个数据块的步骤,若小于等于,则计算迁出文件的数字摘要a;并将迁出文件发送至目标数据服务器,在目标数据服务器中,在迁出文件转移的过程中计算经过数据迁移后的迁出文件的数据摘要b;比较数据摘要a和数据摘要b是否相同;

若该迁出文件对应的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若该迁出文件对应的数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

进一步,所述步骤“获得每个数据块分别对应的数字摘要a”为分别获得每个数据块分别对应的md5值;

所述步骤“计算经过数据迁移后的数据块的数据摘要b”为并行计算经过数据迁移后的各数据块的md5值。

进一步,所述步骤“获得每个数据块分别对应的数字摘要a”为:

根据源数据服务器的处理器核的数量产生相应倍数的线程;

每个线程对应计算该迁出文件的一或多个的数据块;

每个线程每次顺序的从对应数据块中读取设定长度的数据,并计算该次读取数据对应的md5值;将某一数据块对应的所有md5值进行顺序合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该数据块的数据摘要a;

所述步骤“计算经过数据迁移后的数据块的数据摘要b”为:

根据源数据服务器的处理器核的数量产生相应倍数的线程;

每个线程对应计算经过数据迁移后的一或多个的数据块;

每个线程每次顺序的从对应数据块中读取设定长度的数据,并计算该次读取数据对应的md5值;将某一数据块对应的所有md5值进行顺序合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该数据块的数据摘要b。

本文提供另一种数据迁移校正方法,应用于具有控制器的系统中,控制器连接源数据服务器、目标数据服务器。

源数据服务器存储有迁出文件,目标数据服务器为具有未使用的存储空间,用于存放迁出文件;

在源数据服务器中,按源数据服务器的处理器核的个数的整数倍,将迁出文件平均划分为多个数据块;根据源数据服务器的处理器核的数量产生相应倍数的线程;每个线程对应计算经过数据迁移后的一或多个的数据块,该计算为计算数据块的md5值;将每个数据块对应的md5值按数据块的存储顺序进行合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该迁出文件的数据摘要a;

将数据摘要a保存于控制器中;并将迁出文件发送至目标数据服务器;

在目标数据服务器中;根据源数据服务器的处理器核的数量产生相应倍数的线程;每个线程对应计算经过数据迁移后的一或多个的数据块,该计算在接收完数据块时开始,该计算为计算数据块的md5值;将每个数据块对应的md5值按数据块的存储顺序进行合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该迁出文件的数据摘要b;

比较数据摘要a和数据摘要b是否相同;

若该迁出文件的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

本文还提供一种用于数据迁移校正的系统,包括源数据存储模块、源数据迁移模块、控制器、目标数据迁移模块、目标数据存储模块;

源数据存储模块用于存储迁出文件;目标数据存储模块未使用的存储空间,用于存放迁出文件;

源数据迁移模块用于按源数据服务器的处理器核的个数的整数倍,将迁出文件划分为多个数据块,源数据服务器计算获得每个数据块分别对应的数字摘要a;将数据摘要a发送至控制器中;

目标数据迁移模块用于在迁出文件转移的过程中平行计算经过数据迁移后的迁出文件中的数据块的数据摘要b;

控制器用于存储数字摘要a;并比较数据摘要a和数据摘要b是否相同;

若该迁出文件的所有数据块对应的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若该迁出文件的任一的数据块对应的数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

进一步,源数据迁移模块还用于判断迁出文件的大小是否大于设定定值,若大于则执行按源数据服务器的处理器核的个数的整数倍,将迁出文件划分为多个数据块的步骤,若小于等于,则计算迁出文件的数字摘要a;并将迁出文件发送至目标数据服务器,在目标数据服务器中,在迁出文件转移的过程中计算经过数据迁移后的迁出文件的数据摘要b;比较数据摘要a和数据摘要b是否相同;

若该迁出文件对应的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若该迁出文件对应的数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

进一步,源数据存储模块用于根据源数据服务器的cpu处理器核的数量生产产生相应倍数的线程;每个线程对应计算该迁出文件的一或多个的数据块;每个线程每次顺序的从对应数据块中读取设定长度的数据,并计算该次读取数据对应的md5值;将某一数据块对应的所有md5值进行顺序合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该数据块的数据摘要a;

目标数据迁移模块用于根据源数据服务器的处理器核的数量产生相应倍数的线程;每个线程对应计算经过数据迁移后的一或多个的数据块;每个线程每次顺序的从对应数据块中读取设定长度的数据,并计算该次读取数据对应的md5值;将某一数据块对应的所有md5值进行顺序合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该数据块的数据摘要b。

本文还提供另一种用于数据迁移校正的系统,包括源数据存储模块、源数据迁移模块、控制器、目标数据迁移模块、目标数据存储模块;

源数据存储模块用于存储迁出文件;目标数据存储模块具有未使用的存储空间,用于存放迁出文件;

源数据迁移模块用于按源数据服务器的处理器核的个数的整数倍,将迁出文件平均划分为多个数据块;根据源数据服务器的处理器核的数量产生相应倍数的线程;每个线程对应计算经过数据迁移后的一或多个的数据块,该计算为计算数据块的md5值;将每个数据块对应的md5值按数据块的存储顺序进行合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该迁出文件的数据摘要a;发送数据摘要a至控制器中;

目标数据迁移模块根据源数据服务器的处理器核的数量产生相应倍数的线程;每个线程对应计算经过数据迁移后的一或多个的数据块,该计算在接收完数据块时开始,该计算为计算数据块的md5值;将每个数据块对应的md5值按数据块的存储顺序进行合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该迁出文件的数据摘要b;控制器用于接收数据摘要a;比较数据摘要a和数据摘要b是否相同;

若该迁出文件的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

本申请的技术方案中,将网络数据发送至目标数据服务器和在目标数据服务器中的数据校验是平行进行的,从而极大的缩短了文件迁移和校验一起执行时耗费的时间。

为能达成前述及相关目的,这一个或更多个方面包括在下文中充分描述并在所附权利要求中特别指出的特征。以下描述和附图详细阐述了这一个或更多个方面的某些说明性特征。但是,这些特征仅仅是指示了可采用各种方面的原理的各种方式中的若干种,并且本描述旨在涵盖所有此类方面及其等效方面。

附图说明

以下将结合附图来描述所公开的方面,提供附图是为了说明而非限定所公开的方面,附图中相似的标号标示相似要素,并且在其中:

图1为背景技术所述一种数据迁移的校验方法;

图2为本申请数据摘要的一种计算方式;

图3为本申请所述数据迁移校验方法和系统结构图。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。在以下描述中,出于解释目的阐述了众多的具体细节以提供对一个或更多个方面的透彻理解。但是显而易见的是,没有这些具体细节也可实践此类方面。

本申请提出数据迁移校正方法和系统,在兼顾完整性比较及执行效率两方面的因素,从而适用于大规模非结构化数据迁移过程中,解决大数据迁移校验效率耗时长的问题。

本文中所指的非结构化数据,指的是以二进制存储于存储器中的数据,例如加密后的数据库、视频、音频、图片、图像、文档、文本等形式;在具体的实施例中,可以是医疗影像系统、教育视频点播、视频监控、国土gis、设计院、文件服务器(pdm/ftp)、媒体资源管理等具体应用中涉及的数据,这些行业对于存储需求包括数据存储、数据备份以及数据共享等。

而本文中所指的大数据,指迁移数据在1t以上,且大多数单个迁移文件的大小在1g以上。

本申请中提供的数据迁移方法,应用于具有控制器的系统中,控制器连接源数据服务器、目标数据服务器,即在数据迁移或备份过程中。其方法包括如下步骤(参照图3):

源数据服务器存储有迁出文件,目标数据服务器具有未使用的存储空间,用于存放迁出文件;

在源数据服务器中:

s101按源数据服务器的处理器核的个数的整数倍,将迁出文件划分为多个数据块,按数据块读取迁出文件;

s102源数据服务器计算,获得每个数据块分别对应的数字摘要a,

s103将数据摘要a保存于控制器中;

s104并将迁出文件发送至目标数据服务器;

在目标数据服务器中:

s105接收迁出文件并存储于目标服务器中,

s106根据迁出文件的数据块划分,读取数据块,

s107在迁出文件转移的过程中平行计算经过数据迁移后的数据块的数据摘要b;

在控制器中:

s108比较数据摘要a和数据摘要b是否相同;

若相同则迁移成功,若不相同则迁移失败。

参考如下具体实施例,理解上述技术方案:

源数据服务器中的某一大文件为待迁出文件,按源数据服务器的cpu核心的数量(如16核cpu对应16个线程)将该文件平均划分为相应数量的数据块,本文中的划分,并非物理上的划分,而是相对于文件读取时的划分,即每个线程具有读指针,读指针分别指向对应数据块的起始位置,各线程分别的并行读取数据。可以理解的是,数据摘要a的计算可以是在数据迁移之前的任何时候进行。原则上,每个线程计算对应数据块的数据摘要值。将在源数据服务器中数据摘要值,存储于控制器中。

本文中的控制器,可以是源数据服务器,也可以是目标数据服务器,也可以是区别于源数据服务器和目标数据服务器的电子设备,该电子设备具有处理器和存储器。

源数据服务器将待迁出文件发送至目标数据服务器,在数据块迁移成功后计算目标数据服务器中的数据摘要。在目标服务器中计算数据摘要的方式为,将接收后的文件按源数据服务器的cpu核心的数量平均划分为相应数量的数据块,分别并行计算这些数据块的数据摘要值;将这些目标服务器中计算出的数据摘要值分别与控制器中存储的数据摘要值做比较;例如将目标服务器中计算出的数据摘要值b与控制器中存储的数据摘要值a做比较,数据摘要b和数据摘要a对应同一数据块,即数据摘要b为迁移后该数据块的数据摘要值,数据摘要a为迁移前该数据块的数据摘要值。若这些数据摘要值均相等,则数据迁移成功,若数据摘要值不相等,则迁移失败。

从上述实施例和上述步骤描述中可知,步骤s104数据从源数据服务器迁出到目标数据服务器和步骤s102源数据服务器并行计算,获得每个数据块分别对应的数字摘要a,是可以平行实施的;即步骤s101->s102->s103与步骤s104是不需要顺序进行的;步骤s104与步骤s107->s108也是可以平行实施的。对于现有技术,本申请的技术方案中,将网络数据发送和数据校验平行进行(即以数据块为单位,数据块到达目标数据服务器时,即刻计算该数据块的数据摘要),从而极大的缩短了整个项目迁移所耗费的时间。另外步骤s102和步骤s107的处理过程为并行处理,其极大的缩短了数据摘要的计算时间(在多核cpu的情况下,数字摘要的计算效率可以得到接近线性的提升),从而在整体上将数据校验的所耗费的时间控制在网络数据发送所耗费的时间之内,从而不会造成迁移任务堆积。

以典型的数据迁移环境为例,网络为千兆以太网,存储为san存储(文件顺序读性能约为250mb/s),源数据服务器和目标数据服务器为目前主流服务器(intel至强e5-2600v38核cpu,16gb内存),迁移1gb的文件。那么:

数据传输流程花费时间为:步骤s101耗费时间4秒,步骤s105耗费时间为4秒,步骤s104网络传输耗费时间=1000mb*8/1000=8秒。数据迁移流程总共为16秒。

数据校验流程耗费时间为:步骤s103、s108耗费时间可以忽略不计。步骤s102、s107各耗费3.5秒。步骤s106耗时4秒。数据校验流程总耗时为3.5+3.5+4=11秒。

即本申请的数据迁移的时间约为16秒多一点。

在现有技术中上述文件迁移耗时为(数据读取4s+摘要计算33.5s)+数据传输8s+(数据存储4s+数据读取4s+摘要计算3.5)=27秒。而本申请的技术方案里,在一个连续的数据迁移过程中,数据迁移耗时约等于数据传输流程的耗时。

优选的,在步骤“按源数据服务器的处理器核的个数的整数倍,将迁出文件划分为多个数据块”之前,还包括步骤:判断迁出文件的大小是否大于设定定值,若大于则执行按源数据服务器的处理器核的个数的整数倍,将迁出文件划分为多个数据块的步骤,若小于等于,则计算迁出文件的数字摘要a;并将迁出文件发送至目标数据服务器,在目标数据服务器中,在迁出文件转移的过程中计算经过数据迁移后的迁出文件的数据摘要b;比较数据摘要a和数据摘要b是否相同;

若该迁出文件对应的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若该迁出文件对应的数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

在优选的实施例中,数据摘要指md5值,即所述步骤“源数据服务器计算获得每个数据块分别对应的数字摘要a”为分别获得每个数据块分别对应的md5值;

所述步骤“计算经过数据迁移后的数据块的数据摘要b”为分别并行计算经过数据迁移后的各数据块的md5值。

为了进一步检索计算数据摘要时的内存占用,优选的实施例中,将所述步骤“源数据服务器计算获得每个数据块分别对应的数字摘要a”实施为:

根据源数据服务器的cpu的数量产生相应倍数的线程;

每个线程对应计算该迁出文件的一或多个的数据块;

每个线程每次顺序的从对应数据块中读取设定长度的数据,并计算该次读取数据对应的md5值;将某一数据块对应的所有md5值进行顺序合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该数据块的md5值。

将所述步骤“计算经过数据迁移后的数据块的数据摘要b”实施为与上述计算数字摘要a对应的步骤。上述方法在具体实施例中可以是:在计算大文件的数字摘要时,首先通过并行化的程序(多线程)分别连续读取固定长度为1mb的文件块(1mb的文件块即上述所述的设定长度的数据,多个顺序排列的文件块组成数据块),其中线程数取等于cpu核心的数量(如16核cpu对应16个线程)。而后,每个线程都分别计算所读取的文件块的md5值。所以每一个文件块对应的数字摘要长度均为128bit;最后,将所有文件块的数字摘要本身进行顺序合并,对合并后的数据再用md5算法计算数字摘要,获得该数据块的最终128bit数字摘要。

根据迁移完整性检测的需求,严格的完整性比较,需要确保文件有任何变动(包括内容、顺序、长度,等)都会导致最终的数字摘要发生变化。由于本方法计算数据块仍采用成熟的md5算法,可以针对每一个数据块达成该目标,当任何一个数据块发生变动,会导致本数据块的数字摘要结果发生变化,即本申请中的技术方案满足严格完整性检查的需求。

本申请的另一种数据迁移校正方法的实施方式如下:

源数据服务器存储有迁出文件,目标数据服务器为具有未使用的存储空间,用于存放迁出文件;

在源数据服务器中,按源数据服务器的处理器核的个数的整数倍,将迁出文件平均划分为多个数据块;根据源数据服务器的处理器核的数量产生相应倍数的线程;每个线程对应计算经过数据迁移后的一或多个的数据块(对应图2步骤s201、s202等),该计算为计算数据块的md5值(对应图2步骤s211、s212等);将每个数据块对应的md5值按数据块的存储顺序进行合并(对应图2步骤s222等),合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该迁出文件的数据摘要a;数据摘要a的计算步骤可参照图2。

将数据摘要a保存于控制器中;并将迁出文件发送至目标数据服务器;

在目标数据服务器中,根据源数据服务器对迁出文件的划分方式将获得的迁出文件划分为多个数据块;根据源数据服务器的处理器核的数量产生相应倍数的线程;每个线程对应计算经过数据迁移后的一或多个的数据块,该计算在接收完数据块时开始,该计算为计算数据块的md5值;将每个数据块对应的md5值按数据块的存储顺序进行合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该迁出文件的数据摘要b;

比较数据摘要a和数据摘要b是否相同;

若该迁出文件的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

本文还公开一种用于数据迁移校正的系统,包括源数据存储模块、源数据迁移模块、控制器、目标数据迁移模块、目标数据存储模块;

源数据存储模块用于存储迁出文件;目标数据存储模块未使用的存储空间,用于存放迁出文件;

源数据迁移模块用于按源数据服务器的处理器核的个数的整数倍,将迁出文件划分为多个数据块,源数据服务器计算,获得每个数据块分别对应的数字摘要a;将数据摘要a发送至控制器中;

目标数据迁移模块用于在迁出文件转移的过程中平行计算经过数据迁移后的迁出文件中的数据块的数据摘要b;

控制器用于存储数字摘要a;并比较数据摘要a和数据摘要b是否相同;

若该迁出文件的所有数据块对应的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若该迁出文件的任一的数据块对应的数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

优选的,源数据迁移模块还用于判断迁出文件的大小是否大于设定定值,若大于则执行按源数据服务器的处理器核的个数的整数倍,将迁出文件划分为多个数据块的步骤,若小于等于,则计算迁出文件的数字摘要a;并将迁出文件发送至目标数据服务器,在目标数据服务器中,在迁出文件转移的过程中计算经过数据迁移后的迁出文件的数据摘要b;比较数据摘要a和数据摘要b是否相同;

若该迁出文件对应的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若该迁出文件对应的数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

优选的,源数据存储模块用于根据源数据服务器的cpu处理器核的数量生产产生相应倍数的线程;每个线程对应计算该迁出文件的一或多个的数据块;每个线程每次顺序的从对应数据块中读取设定长度的数据,并计算该次读取数据对应的md5值;将某一数据块对应的所有md5值进行顺序合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该数据块的数据摘要a;

目标数据迁移模块用于根据源数据服务器的处理器核的数量产生相应倍数的线程;每个线程对应计算经过数据迁移后的一或多个的数据块;每个线程每次顺序的从对应数据块中读取设定长度的数据,并计算该次读取数据对应的md5值;将某一数据块对应的所有md5值进行顺序合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该数据块的数据摘要b。

本文的另一种数据迁移校正的系统中包括源数据存储模块、源数据迁移模块、控制器、目标数据迁移模块、目标数据存储模块;

源数据存储模块用于存储迁出文件;目标数据存储模块未使用的存储空间,用于存放迁出文件;

源数据迁移模块用于按源数据服务器的处理器核的个数的整数倍,将迁出文件平均划分为多个数据块;根据源数据服务器的处理器核的数量产生相应倍数的线程;每个线程对应计算经过数据迁移后的一或多个的数据块,该计算为计算数据块的md5值;将每个数据块对应的md5值按数据块的存储顺序进行合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该迁出文件的数据摘要a;发送数据摘要a至控制器中。

目标数据迁移模块根据源数据服务器的处理器核的数量产生相应倍数的线程;每个线程对应计算经过数据迁移后的一或多个的数据块,该计算在接收完数据块时开始,该计算为计算数据块的md5值;将每个数据块对应的md5值按数据块的存储顺序进行合并,合并后得到一拼接数据,计算该拼接数据的md5值,该md5值作为该迁出文件的数据摘要b;控制器用于接收数据摘要a;比较数据摘要a和数据摘要b是否相同;

若该迁出文件的数据摘要a和数据摘要b都相同,则该迁出文件迁移成功;若该迁出文件的任一的数据块对应的数据摘要a和数据摘要b不相同则该迁出文件迁移失败。

可以理解的是,本文的系统具有迁移管理用户界面,和相应的数据库用于完成触发上述方法和管理系统中批量的大型的非结构化数据的迁移。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。

本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:ram、rom、磁碟、磁带、光盘、闪存、u盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1