CN111064789A - 数据迁移的方法和系统 - Google Patents
数据迁移的方法和系统 Download PDFInfo
- Publication number
- CN111064789A CN111064789A CN201911312925.9A CN201911312925A CN111064789A CN 111064789 A CN111064789 A CN 111064789A CN 201911312925 A CN201911312925 A CN 201911312925A CN 111064789 A CN111064789 A CN 111064789A
- Authority
- CN
- China
- Prior art keywords
- data
- migration
- cluster
- data block
- migrated
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Abstract
本申请公开了一种数据迁移的方法和系统,属于数据处理技术领域。所述方法应用于数据迁移系统中,所述数据迁移系统包括管理节点和多个处理节点,所述方法包括:所述管理节点确定数据迁移的源集群和目标集群;所述管理节点将所述源集群存储的待迁移数据切分为多个数据块,确定每个数据块对应的处理节点;每个处理节点从所述源集群获取对应的数据块;每个处理节点将获取到的数据块发送给所述目标集群。采用本申请,可以有效解决相关技术中数据迁移的速度较慢的技术问题。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据迁移的方法和系统。
背景技术
在很多存储场景中,均需要进行数据迁移。例如,目前针对实时数据计算,大部分都采用ElasticSearch作为存储引擎。但是,随着数据量的直线增长,在同一个集群中有可能多个索引达到TB级别数据,并且,这些索引占据着非常重要的业务场景。此时,就需要对这些索引进行迁移,来减少对目前集群的压力。
相关技术中数据迁移的方法,将源集群存储的数据直接迁移到目标集群中,数据迁移的速度比较慢。
发明内容
本申请实施例提供了一种数据迁移的方法和系统,可以解决相关技术中存在的技术问题。所述数据迁移的方法和系统的技术方案如下:
第一方面,提供了一种数据迁移的方法,所述方法应用于数据迁移系统中,所述数据迁移系统包括管理节点和多个处理节点,所述方法包括:
所述管理节点确定数据迁移的源集群和目标集群;
所述管理节点将所述源集群存储的待迁移数据切分为多个数据块,确定每个数据块对应的处理节点;
每个处理节点从所述源集群获取对应的数据块;
每个处理节点将获取到的数据块发送给所述目标集群。
在一种可能的实现方式中,所述管理节点确定数据迁移的源集群和目标集群,包括:
接收迁移客户端发送的数据迁移消息,其中,所述数据迁移消息中携带有所述源集群的标识和所述目标集群的标识;
基于所述数据迁移消息,确定所述源集群和所述目标集群。
在一种可能的实现方式中,所述数据迁移消息中还携带有所述待迁移数据的标识,所述基于所述数据迁移消息,确定所述源集群和所述目标集群,包括:
基于所述数据迁移消息,确定所述源集群、所述目标集群和所述待迁移的数据。
在一种可能的实现方式中,所述管理节点将所述源集群存储的待迁移数据切分为多个数据块,包括:
基于二分法,将所述待迁移数据切分为多个数据块,其中,每个数据块的数据量小于第一设定阈值。
在一种可能的实现方式中,所述管理节点将所述源集群存储的待迁移数据切分为多个数据块,包括:
基于Dinkelbach算法,将所述待迁移数据切分为多个数据块,其中,每个数据块的数据量小于第一设定阈值。
在一种可能的实现方式中,所述每个处理节点将获取到的数据块发送给所述目标集群,包括:
对于每个处理节点,当所述处理节点从所述源集群获取到的一个或多个数据块的总数据量大于第二设定阈值时,将所述一个或多个数据块发送给所述目标集群;或者,
对于每个处理节点,当所述处理节点此次从所述源集群获取数据块的获取时长达到设定时长时,将此次获取到的一个或多个数据块发送给所述目标集群。
在一种可能的实现方式中,所述方法还包括:
对于每个发送的数据块,当所述管理节点接收到所述目标集群发送的对应所述数据块的迁移成功消息时,确定所述数据块迁移成功,当所述管理节点接收到所述目标集群发送的对应所述数据块的迁移失败消息,或,在设定时长内未接收到所述目标集群发送的对应所述数据块的迁移成功消息时,确定所述数据块迁移失败,并控制对应的处理节点重新发送所述数据块。
在一种可能的实现方式中,所述方法还包括:
所述管理节点记录每个数据块的迁移状态,以及迁移成功的数据块的总数据量,其中,所述迁移状态包括迁移成功、迁移失败和未进行迁移。
在一种可能的实现方式中,所述每个处理节点将获取到的数据块发送给所述目标集群,包括:
对获取到的数据块进行处理,将处理后的数据块发送给所述目标集群。
第二方面,提供了一种数据迁移系统,所述数据迁移系统包括管理节点和多个处理节点,其中,
所述管理节点,用于确定数据迁移的源集群和目标集群;
所述管理节点,还用于将所述源集群存储的待迁移数据切分为多个数据块,确定每个数据块对应的处理节点;
每个处理节点,用于从所述源集群获取对应的数据块;
每个处理节点,用于将获取到的数据块发送给所述目标集群。
在一种可能的实现方式中,所述管理节点,用于:
接收迁移客户端发送的数据迁移消息,其中,所述数据迁移消息中携带有所述源集群的标识和所述目标集群的标识;
基于所述数据迁移消息,确定所述源集群和所述目标集群。
在一种可能的实现方式中,所述数据迁移消息中还携带有所述待迁移数据的标识,所述管理节点,还用于:
基于所述数据迁移消息,确定所述源集群、所述目标集群和所述待迁移的数据。
在一种可能的实现方式中,所述管理节点,用于:
基于二分法,将所述待迁移数据切分为多个数据块,其中,每个数据块的数据量小于第一设定阈值。
在一种可能的实现方式中,所述管理节点,用于:
基于Dinkelbach算法,将所述待迁移数据切分为多个数据块,其中,每个数据块的数据量小于第一设定阈值。
在一种可能的实现方式中,每个处理节点,用于:
当从所述源集群获取到的一个或多个数据块的总数据量大于第二设定阈值时,将所述一个或多个数据块发送给所述目标集群;或者,
当此次从所述源集群获取数据块的获取时长达到设定时长时,将此次获取到的一个或多个数据块发送给所述目标集群。
在一种可能的实现方式中,所述管理节点,还用于:
对于每个发送的数据块,当接收到所述目标集群发送的对应所述数据块的迁移成功消息时,确定所述数据块迁移成功,当接收到所述目标集群发送的对应所述数据块的迁移失败消息,或,在设定时长内未接收到所述目标集群发送的对应所述数据块的迁移成功消息时,确定所述数据块迁移失败,并控制对应的处理节点重新发送所述数据块。
在一种可能的实现方式中,所述管理节点,还用于:
记录每个数据块的迁移状态,以及迁移成功的数据块的总数据量,其中,所述迁移状态包括迁移成功、迁移失败和未进行迁移。
在一种可能的实现方式中,每个处理节点,还用于:
对获取到的数据块进行处理,将处理后的数据块发送给所述目标集群。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供了一种数据迁移的方法,该方法应用在数据迁移系统中。数据迁移系统包括管理节点和多个处理节点,在进行数据迁移时,管理节点先确定数据迁移的源集群和目标集群,然后,将源集群存储的待迁移数据切分为多个数据块,确定每个数据块对应的处理节点。每个处理节点从源集群获取对应的数据块,并将获取到的数据块发送给目标集群。因此,本申请实施例提供的数据迁移的方法,在进行数据迁移时,先将待迁移数据迁移到数据迁移系统中,然后再迁移至目标集群,由于在迁移过程中,由多个处理节点并行的获取和发送数据块,所以提升了数据迁移的速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据迁移的方法的流程图;
图2是本申请实施例提供的一种数据迁移系统的示意图;
图3是本申请实施例提供的一种数据迁移的实施环境的示意图;
图4是本申请实施例提供的一种服务器的结构示意图;
图5是本申请实施例提供的一种数据迁移的方法的架构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供了一种数据迁移的方法,该方法可以由数据迁移系统实现。其中,该系统可以为一个服务器集群,该服务器集群中可以包括管理节点和多个处理节点,管理节点也可以称为管理服务器,处理节点也可以称为处理服务器。管理节点和处理节点的结构可以参照图4所示。
本申请实施例提供的数据迁移的方法,可以应用于ElasticSearch的数据自动化迁移,也可以用于MySQL迁移和Hbase迁移等。
如图3所示,本申请实施例提供了一种数据迁移的方法的实施环境图。在进行数据迁移时,源集群中的待迁移数据首先迁移到数据迁移系统中,然后,再从数据迁移系统中迁移至目标集群。数据迁移系统相当于源集群和目标集群之间的中间件,具体的相当于一个消息队列装置。
如图1所示,数据迁移的方法的处理流程可以包括如下步骤:
在步骤101中,管理节点确定数据迁移的源集群和目标集群。
在实施中,数据迁移系统可以包含对应的迁移客户端,当需要进行数据迁移时,技术人员可以在迁移客户端上操作,选定源集群和目标集群,并向迁移系统发送迁移消息,则迁移系统的管理节点接收迁移客户端发送的数据迁移消息,然后,基于数据迁移消息,确定源集群和目标集群。其中,数据迁移消息中携带有源集群的标识和目标集群的标识。
另外,在某一迁移任务开始后,迁移客户端还可以显示有该任务的开启/暂停选项,以便于工作人员控制数据迁移的过程。迁移客户端中还可以显示有该任务的进度。
待迁移数据可以为源集群中存储的所有数据,也可以为源集群中的部分数据。
当待迁移数据为源集群中的部分数据时,数据迁移消息中还携带有待迁移数据的标识,则管理节点可以基于数据迁移消息,确定源集群、目标集群和待迁移的数据。其中,待迁移数据的标识可以是时间标识,例如,待迁移数据的标识为第一时刻,代表在第一时刻之后存储的所有数据均为待迁移数据。
需要说明的是,数据迁移消息可以是由类SQL语言编写的,从而,便于所有开发成员快速上手。
在步骤102中,管理节点将源集群存储的待迁移数据切分为多个数据块,确定每个数据块对应的处理节点。
其中,数据块对应的处理节点,是指控制该数据块的迁移的处理节点。
在实施中,为了使得处理节点可以并行的进行待迁移数据的迁移,需要将待迁移数据切分为多个数据块,并确定每个数据块对应的处理节点。在对待迁移数据进行切分时,可以采用二分法,也可以采用Dinkelbach算法,或者其余方法进行切分。
在一种可能的实现方式中,基于二分法,将待迁移数据切分为多个数据块。
其中,每个数据块的数据量小于第一设定阈值。数据量的单位可以为条,也可以为比特、位、字节和字等。
在实施中,如果待迁移数据的数据量大于第一设定阈值,则将该待迁移数据切分为两个数据块。对于每个切分出的数据块,如果该数据块的数据量大于第一设定阈值,则再次将该数据块切分为两个数据块,直至该数据块的数据量小于第一设定阈值。
在将数据块或待迁移数据切分为两个数据块时,应尽可能将其切分为两个数据量相等的数据块。例如,当某一数据块包含偶数条数据时,将其切分时,切分出的两个数据块的数据量应当相等,即两个数据块包含的数据的条数相等。再例如,当某一数据块包含奇数条数据时,将其切分时,切分出的两个数据块包含的数据的条数相差1。
在另一种可能的实现方式中,基于Dinkelbach算法,将待迁移数据切分为多个数据块。
其中,每个数据块的数据量小于第一设定阈值。数据量的单位可以为条,也可以为比特、位、字节和字等。
在实施中,首先根据数据区间范围取出最小值可以为0,然后根据中间值去判断max{f(r)}对应的正负,如果发现最接近500万的值在右侧,让中间值为左侧基准,就移动与中间值相应的横截距,进行数据切割,最终最优解即为切割任务的方案。
需要的说明的是,上述对待迁移数据进行切分的过程,是指将待迁移数据进行标记,标记为不同的数据块。
在对待迁移数据进行切分之后,还需确定每个数据块对应的处理节点。具体的,可以为每个切分出的数据块分配一个标识,并将标识发送给对应的处理节点,以使处理节点确定所对应的数据块。另外,为了方便处理节点获取对应的数据块,还需将每个处理节点对应的数据块的存储位置发送给处理节点。
在步骤103中,每个处理节点从源集群获取对应的数据块。
在实施中,处理节点可以根据获取到的对应的数据块在源集群的存储位置,从源集群获取对应的数据块。
在步骤104中,每个处理节点将获取到的数据块发送给目标集群。
在实施中,处理节点将获取到的数据块发送给目标集群之后,目标集群将接收到的数据块存储下来,从而,完成了该数据块的迁移。可选的,在目标集群在接收到数据块之后,还可以向管理节点发送确认消息,以提示该数据块迁移成功。
在一种可能的实现方式中,为了提高迁移效率,步骤104相应的处理过程可以如下所述,对于每个处理节点,当该处理节点从源集群获取到的一个或多个数据块的总数据量大于第二设定阈值时,将该一个或多个数据块发送给目标集群。
其中,第二设定阈值应当大于第一设定阈值。
在实施中,处理节点从源集群获取到数据块之后,不会立即向目标集群发送,而是继续获取数据块,直至此次获取的数据块的总数据量大于第二设定阈值,然后,再将此次获取的所有数据块发送给目标集群。这一设置使得处理节点每次发送的数据块的数据量均比较大,提高了待迁移数据的迁移效率。
在另一种可能的实现方式中,为了提高迁移效率,步骤104相应的处理过程还可以如下所述,对于每个处理节点,当该处理节点此次从源集群获取数据块的获取时长达到设定时长时,将此次获取到的一个或多个数据块发送给目标集群。
其中,设定时长可以由工作人员根据实际情况进行设置。
在实施中,处理节点可以通过设置设定时长来积攒一批数据块,然后,再发送给目标集群。即每次在设定时长内获取一批数据块,然后,一次发送给目标集群。这一设置也使得处理节点每个发送的数据块的数量量比较大,也提高了待迁移数据的迁移效率。
需要说明的是,还可以是处理节点每获取到一个数据块,即将该数据块发送给目标集群,本申请对此不做限定。
在一种可能的实现方式中,为了保证数据迁移的可靠性,防止数据块迁移时丢失,对于每个发送的数据块,当管理节点接收到目标集群发送的对应数据块的迁移成功消息时,确定该数据块迁移成功,当管理节点接收到目标集群发送的对应数据块的迁移失败消息,或,在设定时长内未接收到目标集群发送的对应数据块的迁移成功消息时,确定该数据块迁移失败,并控制对应的处理节点重新发送该数据块。
在实施中,在数据迁移过程中,处理节点向目标集群发送数据块之后,可能会因为某些原因导致目标集群接收失败,如果此时默认迁移成功,则会导致最后迁移的数据不完整,缺少某些数据块。而通过上述设置,只有当接收到目标集群发送的迁移成功消息时,才确定数据块迁移成功,否则,确定数据块迁移失败,并控制处理节点重新发送该数据块,从而,提高了数据迁移的可靠性,保证了迁移的数据的完整性。
需要说明的是,上述保证数据迁移可靠性的设置,也可以称为ACK机制。
在一种可能的实现方式中,为了实现待迁移数据的断点续传,管理节点记录每个数据块的迁移状态,以及迁移成功的数据块的总数据量。
其中,迁移状态包括迁移成功、迁移失败和未进行迁移。迁移成功的数据块是指已经存储到的目标集群的数据块,迁移失败的数据块是指进行过迁移但未迁移成功的数据块,未进行迁移的数据块是指未进行过迁移的数据块。
在实施中,在数据迁移过程中,可能会因某些情况,例如,数据迁移系统断电停机,导致数据迁移过程中断。此时,通过管理节点记录每个数据块的迁移状态,在重新开始数据迁移时,不必将待迁移数据全部重新迁移,而只需将迁移状态为未进行迁移和迁移失败的数据块进行迁移,从而,提高了数据迁移的效率。
另外,通过记录迁移成功的数据块的总数据量,也便于向技术人员实时展示已迁移的总数据量,例如,已迁移的待迁移数据的总数据量为多少。并且,还可以基于迁移成功的数据块的总数据量,和整个待迁移数据的总数据量,计算得到当前的迁移进度,例如,已完成百分之多少的迁移。
在一种可能的实现方式中,处理节点还可以对获取到的数据块处理后,再发送给目标集群,则步骤104相应的处理过程可以如下所述,多个处理节点中的一个或多个处理节点,对获取到的数据块进行处理,将处理后的数据块发送给目标集群。
在实施中,通过设置数据迁移系统这一中间件,在向目标集群迁移数据的过程中,还可以将从源集群中获取的待迁移数据中的部分或全部加工后,再迁移至目标集群。
本申请实施例提供了一种数据迁移的方法,该方法应用在数据迁移系统中。数据迁移系统包括管理节点和多个处理节点,在进行数据迁移时,管理节点先确定数据迁移的源集群和目标集群,然后,将源集群存储的待迁移数据切分为多个数据块,确定每个数据块对应的处理节点。每个处理节点从源集群获取对应的数据块,并将获取到的数据块发送给目标集群。因此,本申请实施例提供的数据迁移的方法,在进行数据迁移时,先将待迁移数据迁移到数据迁移系统中,然后再迁移至目标集群,由于在迁移过程中,由多个处理节点并行的获取和发送数据块,所以提升了数据迁移的速度。
另外,通过设置数据迁移系统,在目标集群的接收速度较低,且源集群的发送速度较快时,源集群可以以自身较快的发送速度将待迁移数据发送给数据迁移系统,然后,源集群即可进行其它处理。而后,目标集群可以从数据迁移系统获取待迁移数据。从而,避免了源集群直接向目标集群发送时,必须降速以匹配目标集群的接收速度,避免了浪费源集群的处理资源。
下面,如图5所示,结合具体的工具,对本申请实施例提供的数据迁移的方法进行详细论述。
1)数据迁移的前置工作:
Web接口:采用类SQL方式进行定义,从而便于所有开发人员上手。例如:selectcolumn[迁移字段],ROUND(column)[对改字段的处理函数为二次加工数据使用]fromtable(格式:集群.index)to table(格式:集群.index)where column。
2)确定数据迁移的源集群和目标集群:
索引处理器会对传入的迁移消息结构进行解析,根据from table中的集群和index在to集群中建立相对应的index信息。(说明:集群的基本配置,比如网关地址,名字,连接串信息需要事先在客户端中维护好)。
3)将源集群存储的待迁移数据切分为多个数据块:
本步骤通过位于管理节点的数据切分计算引擎完成。
数据切分计算引擎:通过定时扫描MySQL数据库将未进行的任务切分为多个子任务(也可以理解为将待迁移数据切分为多个数据块,每个任务对应一个或多个数据块),数据切分引擎的设计原则就是在拆分次数尽可能少的情况下,让切分的数据尽可能的均匀。该引擎可根据数据区间唯一字段值(例如:数据创建时间create_time)加Recursivedichotomy(二分法)或Dinkelbach算法来解决此问题。
a、基于Recursive dichotomy的实现:通过对数据区间值作为基准,先将整个索引的Document数量做一个判断。当大于500万时,采用Recursive dichotomy算法取出中间值分为左右两端分别递归判断,最终求出相应的解即为切割任务。
b、基于Dinkelbach的实现:首先根据数据区间范围取出最小值可以为0,然后根据中间值去判断max{f(r)}对应的正负,如果发现最接近500万的值在右侧,让中间值为左侧基准,就移动与中间值相应的横截距,进行数据切割,最终最优解即为切割任务的方案。
4)确定每个数据块对应的处理节点:
分布式任务处理器:当上游切分好子任务后会拉取出一批子任务,每个子任务由一个Docker实例运行,根据docker实例的总数量进行hash取模,将各个docker实例分配给具体的处理节点执行。同时将分配的子任务的状态保存到Redis集群当中,实时的检测Redis集群中存储的任务完成状态(也即数据块的迁移状态),以判断是否进行添加新的任务或者更新数据库中的任务状态。
另外,当docker实例运行后会注册到zk节点上,作为临时数据节点。
5)记录每个数据块的迁移状态:
各个Docker实例循环调用ElasticSearch集群的Scroll方法发送数据给Kafka,同时,通过对记录在Redis集群中各个子任务的状态判断是否继续执行,或者挂起,来实现数据的断点续传的功能。其中,Redis集群主要保存了各个docker实例的迁移任务状态,起到了实时监听的作用。
6)从源集群获取数据块:
Kafka它会实时的接收ElasticSearch集群(源集群)通过Scroll接口传输过来的数据块,并且存储到处理节点中。Kafka的特点是大容量,高效率,能快速响应实时拉取模块,不丢数据。并且它作为分布式消息队列,既有非常优秀的吞吐量,又有较高的可靠性和扩展性。在这里采用Kafka作为数据传输的中间件,通过大量的数据流到Strom集群中,结合Consumer端的压力,可以无限横向扩展提高读写速度。
7)将获取到的数据块发送给目标集群:
Storm集群会把来自Kafka的数据流tuple进行解析,拆分为两个bolt处理。第一个bolt作为数据消费(即将获取到的数据块发送给目标集群),可以通过设置tick定时大小来积攒一批数据块,到达时间后通过ElasticSearch集群的bulk方法实时的插入。如果该字段需要进行二次加工处理,则将加工后的值bulk到该字段值中。
另外,第二个bolt作为数据的合并,将上一个bolt中的数据量进行汇总后,做一个暂存到Redis集群中。下一批次数据过来后与Redis集群中的数据进行merge操作,从而实现实时上报任务消费进度,便于工作人员了解迁移进度。同时,当数据在处理过程中发生异常后,可以通过Strom集群的ACK机制来保证数据的可靠性问题。
另外,本数据迁移系统的客户端的管理界面主要有三方面内容:
1)各个集群的基本连接信息,以便索引处理器读取其中的配置信息,通过ES-API连接集群。
2)Redis集群中各个任务的状态列表,主要有暂停和开始两块内容。
3)维护切割子任务与父任务列表关系。
基于相同的技术构思,本申请实施例还提供了一种数据迁移系统,如图2所示,该系统包括管理节点201和多个处理节点202,其中,
管理节点201,用于确定数据迁移的源集群和目标集群;
管理节点201,还用于将源集群存储的待迁移数据切分为多个数据块,确定每个数据块对应的处理节点;
每个处理节点202,用于从源集群获取对应的数据块;
每个处理节点202,用于将获取到的数据块发送给目标集群。
在一种可能的实现方式中,管理节点201,用于:
接收迁移客户端发送的数据迁移消息,其中,数据迁移消息中携带有源集群的标识和目标集群的标识;
基于数据迁移消息,确定源集群和目标集群。
在一种可能的实现方式中,数据迁移消息中还携带有待迁移数据的标识,管理节点201,还用于:
基于数据迁移消息,确定源集群、目标集群和待迁移的数据。
在一种可能的实现方式中,管理节点201,用于:
基于二分法,将待迁移数据切分为多个数据块,其中,每个数据块的数据量小于第一设定阈值。
在一种可能的实现方式中,管理节点201,用于:
基于Dinkelbach算法,将待迁移数据切分为多个数据块,其中,每个数据块的数据量小于第一设定阈值。
在一种可能的实现方式中,每个处理节点202,用于:
当从源集群获取到的一个或多个数据块的总数据量大于第二设定阈值时,将一个或多个数据块发送给目标集群;或者,
当此次从所述源集群获取数据块的获取时长达到设定时长时,将此次获取到的一个或多个数据块发送给所述目标集群。
在一种可能的实现方式中,管理节点201,还用于:
对于每个发送的数据块,当接收到目标集群发送的对应数据块的迁移成功消息时,确定数据块迁移成功,当接收到目标集群发送的对应数据块的迁移失败消息,或,在设定时长内未接收到目标集群发送的对应数据块的迁移成功消息时,确定数据块迁移失败,并控制对应的处理节点重新发送数据块。
在一种可能的实现方式中,管理节点201,用于:
记录每个数据块的迁移状态,以及迁移成功的数据块的总数据量,其中,迁移状态包括迁移成功、迁移失败和未进行迁移。
在一种可能的实现方式中,每个处理节点202,还用于:
对获取到的数据块进行处理,将处理后的数据块发送给目标集群。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据迁移的方法,其特征在于,所述方法应用于数据迁移系统中,所述数据迁移系统包括管理节点和多个处理节点,所述方法包括:
所述管理节点确定数据迁移的源集群和目标集群;
所述管理节点将所述源集群存储的待迁移数据切分为多个数据块,确定每个数据块对应的处理节点;
每个处理节点从所述源集群获取对应的数据块;
每个处理节点将获取到的数据块发送给所述目标集群。
2.根据权利要求1所述的方法,其特征在于,所述管理节点确定数据迁移的源集群和目标集群,包括:
接收迁移客户端发送的数据迁移消息,其中,所述数据迁移消息中携带有所述源集群的标识和所述目标集群的标识;
基于所述数据迁移消息,确定所述源集群和所述目标集群。
3.根据权利要求2所述的方法,其特征在于,所述数据迁移消息中还携带有所述待迁移数据的标识,所述基于所述数据迁移消息,确定所述源集群和所述目标集群,包括:
基于所述数据迁移消息,确定所述源集群、所述目标集群和所述待迁移数据。
4.根据权利要求1所述的方法,其特征在于,所述管理节点将所述源集群存储的待迁移数据切分为多个数据块,包括:
基于二分法,将所述待迁移数据切分为多个数据块,其中,每个数据块的数据量小于第一设定阈值。
5.根据权利要求1所述的方法,其特征在于,所述管理节点将所述源集群存储的待迁移数据切分为多个数据块,包括:
基于Dinkelbach算法,将所述待迁移数据切分为多个数据块,其中,每个数据块的数据量小于第一设定阈值。
6.根据权利要求1所述的方法,其特征在于,所述每个处理节点将获取到的数据块发送给所述目标集群,包括:
对于每个处理节点,当所述处理节点从所述源集群获取到的一个或多个数据块的总数据量大于第二设定阈值时,将所述一个或多个数据块发送给所述目标集群;或者,
对于每个处理节点,当所述处理节点此次从所述源集群获取数据块的获取时长达到设定时长时,将此次获取到的一个或多个数据块发送给所述目标集群。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
对于每个发送的数据块,当所述管理节点接收到所述目标集群发送的对应所述数据块的迁移成功消息时,确定所述数据块迁移成功,当所述管理节点接收到所述目标集群发送的对应所述数据块的迁移失败消息,或,在设定时长内未接收到所述目标集群发送的对应所述数据块的迁移成功消息时,确定所述数据块迁移失败,并控制对应的处理节点重新发送所述数据块。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述管理节点记录每个数据块的迁移状态,以及迁移成功的数据块的总数据量,其中,所述迁移状态包括迁移成功、迁移失败和未进行迁移。
9.根据权利要求1-6任一项所述的方法,其特征在于,所述每个处理节点将获取到的数据块发送给所述目标集群,包括:
所述多个处理节点中的一个或多个处理节点,对获取到的数据块进行处理,将处理后的数据块发送给所述目标集群。
10.一种数据迁移系统,其特征在于,所述数据迁移系统包括管理节点和多个处理节点,其中,
所述管理节点,用于确定数据迁移的源集群和目标集群;
所述管理节点,还用于将所述源集群存储的待迁移数据切分为多个数据块,确定每个数据块对应的处理节点;
每个处理节点,用于从所述源集群获取对应的数据块;
每个处理节点,用于将获取到的数据块发送给所述目标集群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911312925.9A CN111064789B (zh) | 2019-12-18 | 2019-12-18 | 数据迁移的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911312925.9A CN111064789B (zh) | 2019-12-18 | 2019-12-18 | 数据迁移的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111064789A true CN111064789A (zh) | 2020-04-24 |
CN111064789B CN111064789B (zh) | 2022-09-20 |
Family
ID=70301129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911312925.9A Active CN111064789B (zh) | 2019-12-18 | 2019-12-18 | 数据迁移的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064789B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112051968A (zh) * | 2020-08-07 | 2020-12-08 | 东北大学 | 基于Kafka的分布式数据流分级缓存自动迁移算法 |
CN112632033A (zh) * | 2020-12-16 | 2021-04-09 | 深圳前海微众银行股份有限公司 | 集群数据迁移方法、装置及电子设备 |
CN112699080A (zh) * | 2021-01-11 | 2021-04-23 | 成都深思科技有限公司 | 一种高速多路网络数据迁移方法 |
CN113821176A (zh) * | 2021-09-29 | 2021-12-21 | 重庆紫光华山智安科技有限公司 | 一种数据迁移的处理方法、装置及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239493A (zh) * | 2014-09-09 | 2014-12-24 | 北京京东尚科信息技术有限公司 | 跨集群数据迁移方法和系统 |
CN105227601A (zh) * | 2014-06-17 | 2016-01-06 | 华为技术有限公司 | 流处理系统中的数据处理方法、装置和系统 |
US20160048340A1 (en) * | 2010-12-16 | 2016-02-18 | International Business Machines Corporation | Synchronous extent migration protocol for paired storage |
CN105573815A (zh) * | 2015-12-10 | 2016-05-11 | 中国联合网络通信集团有限公司 | 一种虚拟机迁移的方法及装置 |
US20160300281A1 (en) * | 2003-05-28 | 2016-10-13 | Electronic Communication Technologies Llc | Secure messaging with user option to communicate with delivery or pickup representative |
CN106777164A (zh) * | 2016-12-20 | 2017-05-31 | 东软集团股份有限公司 | 一种数据迁移集群及数据迁移方法 |
CN106855871A (zh) * | 2015-12-09 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 一种数据迁移的方法和装置 |
US20180088807A1 (en) * | 2016-09-23 | 2018-03-29 | EMC IP Holding Company LLC | Method and device for migrating data |
CN108108438A (zh) * | 2017-12-20 | 2018-06-01 | 深圳市恒腾网络有限公司 | 行为数据的识别方法及装置 |
CN109299072A (zh) * | 2018-10-16 | 2019-02-01 | 郑州云海信息技术有限公司 | 一种数据库在线迁移的方法及装置 |
-
2019
- 2019-12-18 CN CN201911312925.9A patent/CN111064789B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160300281A1 (en) * | 2003-05-28 | 2016-10-13 | Electronic Communication Technologies Llc | Secure messaging with user option to communicate with delivery or pickup representative |
US20160048340A1 (en) * | 2010-12-16 | 2016-02-18 | International Business Machines Corporation | Synchronous extent migration protocol for paired storage |
CN105227601A (zh) * | 2014-06-17 | 2016-01-06 | 华为技术有限公司 | 流处理系统中的数据处理方法、装置和系统 |
CN104239493A (zh) * | 2014-09-09 | 2014-12-24 | 北京京东尚科信息技术有限公司 | 跨集群数据迁移方法和系统 |
CN106855871A (zh) * | 2015-12-09 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 一种数据迁移的方法和装置 |
CN105573815A (zh) * | 2015-12-10 | 2016-05-11 | 中国联合网络通信集团有限公司 | 一种虚拟机迁移的方法及装置 |
US20180088807A1 (en) * | 2016-09-23 | 2018-03-29 | EMC IP Holding Company LLC | Method and device for migrating data |
CN106777164A (zh) * | 2016-12-20 | 2017-05-31 | 东软集团股份有限公司 | 一种数据迁移集群及数据迁移方法 |
CN108108438A (zh) * | 2017-12-20 | 2018-06-01 | 深圳市恒腾网络有限公司 | 行为数据的识别方法及装置 |
CN109299072A (zh) * | 2018-10-16 | 2019-02-01 | 郑州云海信息技术有限公司 | 一种数据库在线迁移的方法及装置 |
Non-Patent Citations (2)
Title |
---|
ZHENG LI等: ""Timing Prediction for Dynamic Application Migration on Multi-core Embedded Systems"", 《2018 IEEE 4TH INTERNATIONAL CONFERENCE ON BIG DATA SECURITY ON CLOUD (BIGDATASECURITY)》 * |
杨宇晨: ""大数据管理与查询关键技术研究"", 《中国优秀博硕士学位论文全文数据库(博士)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112051968A (zh) * | 2020-08-07 | 2020-12-08 | 东北大学 | 基于Kafka的分布式数据流分级缓存自动迁移算法 |
CN112632033A (zh) * | 2020-12-16 | 2021-04-09 | 深圳前海微众银行股份有限公司 | 集群数据迁移方法、装置及电子设备 |
CN112699080A (zh) * | 2021-01-11 | 2021-04-23 | 成都深思科技有限公司 | 一种高速多路网络数据迁移方法 |
CN113821176A (zh) * | 2021-09-29 | 2021-12-21 | 重庆紫光华山智安科技有限公司 | 一种数据迁移的处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111064789B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111064789B (zh) | 数据迁移的方法和系统 | |
CN108664496B (zh) | 数据迁移方法及装置 | |
CN110895488B (zh) | 任务调度方法及装置 | |
US20160359940A1 (en) | Using anchors for reliable stream processing | |
CN112968815B (zh) | 一种断网续传的实现方法 | |
CN110895487B (zh) | 分布式任务调度系统 | |
CN109684130B (zh) | 一种机房间数据备份的方法及装置 | |
CN112612850A (zh) | 数据同步方法及装置 | |
CN113010289A (zh) | 一种任务调度方法、装置和系统 | |
CN109144787A (zh) | 一种数据恢复方法、装置、设备及可读存储介质 | |
CN110377664B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN110895486B (zh) | 分布式任务调度系统 | |
CN112311902B (zh) | 基于微服务的文件发送方法及装置 | |
CN112965839A (zh) | 消息传输方法、装置、设备及存储介质 | |
CN111880947A (zh) | 一种数据传输方法及装置 | |
CN111897626A (zh) | 一种面向云计算场景的虚拟机高可靠系统和实现方法 | |
CN111680106A (zh) | 一种多应用系统数据同步的方法及装置 | |
US11216352B2 (en) | Method for automatically analyzing bottleneck in real time and an apparatus for performing the method | |
CN111290767A (zh) | 具有业务快速恢复功能的容器组更新方法及系统 | |
CN114816866A (zh) | 故障处理方法、装置、电子设备和存储介质 | |
US20230396673A1 (en) | Checking State Consistency in a Log Replication Configuration | |
CN115185787A (zh) | 处理事务日志的方法及装置 | |
CN109144788B (zh) | 一种重建osd的方法、装置及系统 | |
CN111857538A (zh) | 数据处理方法、装置及存储介质 | |
CN111405313A (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 |