掌桥专利:专业的专利平台
掌桥专利
首页

基于单元化架构的数据迁移方法、装置及电子设备

文献发布时间:2024-01-17 01:24:51


基于单元化架构的数据迁移方法、装置及电子设备

技术领域

本申请涉及分布式领域,尤其涉及一种基于单元化架构的数据迁移方法、装置及电子设备。

背景技术

单元化架构是指把单元作为部署的基本单位,在全站所有机房中部署数个单元,其中,任意一个单元都是一个能完成所有业务操作的自包含集合,每个单元能操作全量数据中的一部分数据,以进行业务处理。在单元化架构下,单元进行业务处理的过程中,随着时间的增长,数据越来越多或者越来越少时,需要对该单元化架构下机房中的单元数量作出调整,并进行数据迁移。

现有技术中,当数据增多或减少时,需新增或者减少单元数量,对现有的全部数据进行重新分片,再将数据分片和单元进行重新分配,再将数据分片对应的数据进行迁移处理。

但是上述方式中,对数据分片和单元进行重新分配时,整体数据迁移量增多,导致业务系统升级较慢,停业时间较长,进而增大业务系统业务处理压力。

发明内容

本申请提供一种基于单元化架构的数据迁移方法、装置及电子设备,用以解决因整体数据迁移量增多导致业务系统升级较慢的问题。

第一方面,本申请提供一种基于单元化架构的数据迁移方法,所述方法包括:

基于单元化架构,在单元进行业务处理的过程中,监测第一机房中每一所述单元的数据量和流量;其中,所述第一机房包括至少一个所述单元;所述数据量为当前时刻下每一所述单元所连接的数据库中的业务数据量;所述流量为当前时刻下每一所述单元所部署的业务系统的访问总量;

根据所述数据量和所述流量,将所述第一机房增加至少一个单元;

获取每一所述单元中的每一数据分片的序号;其中,每一所述数据分片为对所述数据库中的业务数据进行分片处理后得到的;并根据每一所述单元中的每一所述数据分片的序号,确定目标数据分片;其中,所述目标数据分片为需要进行迁移的数据分片;

将所述目标数据分片所对应的业务数据迁移至所述第一机房所增加的单元中。

一个示例中,根据所述数据量和所述流量,将所述第一机房增加至少一个单元,包括:

针对所述第一机房中每一所述单元,若监测到该单元的数据量大于或等于第一预设数据量,则为所述第一机房增加N个单元;其中,N为大于或者等于1的正整数;被增加了所述N个单元的第一机房中的单元总数小于或者等于第一参数所表征的数值;所述第一参数用于指示所述第一机房可包括的单元的最大数量。

一个示例中,根据所述数据量和所述流量,将所述第一机房增加至少一个单元,还包括:

若确定监测到每一所述单元的流量大于或者等于第一预设流量,则为所述第一机房增加M个单元;其中,M为大于或者等于1的正整数;被增加了所述M个单元的第一机房中的单元总数小于或者等于所述第一参数所表征的数值。

一个示例中,所述单元中包括至少一个数据集合,所述数据集合中包括P个数据分片,P为大于1的正整数;根据每一所述单元中的每一所述数据分片的序号,确定目标数据分片,包括:

针对每一所述单元,确定所述单元中的数据集合中的第P个数据分片和第P-1个数据分片,为目标数据分片;

或者,针对每一所述单元,确定所述单元中的数据集合中的第P个数据分片、第P-1个数据分片以及第P-2个数据分片,为目标数据分片。

一个示例中,所述单元中的数据分片具有优先级;所述优先级为基于数据分片的业务类型、用户信息、以及数据分片的时间信息所确定的;根据每一所述单元中的每一所述数据分片的序号,确定目标数据分片,包括:

针对每一所述单元,根据所述单元中的数据分片的优先级,确定优先级最高的数据分片为目标数据分片。

一个示例中,将所述目标数据分片所对应的数据迁移至所述第一机房所增加的单元中,包括:

根据所述第一机房所增加的单元数量,将所述目标数据分片平均划分至所述第一机房所增加的单元中;

针对每一所述目标数据分片,将该目标数据分片所对应的业务数据迁移至该目标数据分片所在单元对应的数据库中。

一个示例中,还包括:

根据所述数据量和所述流量,将所述第一机房删除至少一个单元;

将所述第一机房中被删除的单元所对应的所有数据分片,确定为所述目标数据分片;

将所述目标数据分片迁移至所述第一机房中剩余的单元中;并将每一所述数据迁移分片所对应的业务数据,迁移至每一所述目标数据分片所在单元对应的数据库中。

一个示例中,根据所述数据量和所述流量,将所述第一机房删除至少一个单元,包括:

针对所述第一机房中每一所述单元,若监测到该单元的数据量小于或者等于第二预设流量,则为所述第一机房删除K个新单元;其中,K为大于或者等于1的正整数;所述第一机房中剩余的单元的总数小于或者等于第二参数所表征的数值;所述第二参数用于指示所述第一机房可包括的单元的最小数量。

一个示例中,根据所述数据量和所述流量,将所述第一机房删除至少一个单元,还包括:

针对所述第一机房中每一所述单元,若监测到该单元的流量小于或者等于第二预设流量,则为所述第一机房删除L个新单元;其中,L为大于或者等于1的正整数;所述第一机房中剩余的单元的总数小于或者等于所述第二参数所表征的数值。

一个示例中,所述单元化架构还包括第二机房;其中,所述第二机房为所述第一机房的灾备机房;所述第二机房中的所有单元与所述第一机房中的所有单元一一对应;所述方法还包括:

基于所述单元化架构,更新所述第一机房的配置信息;并更新所述第二机房的配置信息;其中,所述配置信息包括第一信息和第二信息;所述第一信息为每一所述单元与每一所述数据分片之间的对应信息;所述第二信息为每一所述数据分片与每一所述数据库之间的对应信息。

第二方面,本申请提供一种基于单元化架构的数据迁移装置,所述装置包括:

监测单元,用于基于单元化架构,在单元进行业务处理的过程中,监测第一机房中每一所述单元的数据量和流量;其中,所述第一机房包括至少一个所述单元;所述数据量为当前时刻下每一所述单元所连接的数据库中的业务数据量;所述流量为当前时刻下每一所述单元所部署的业务系统的访问总量;

增加单元,用于根据所述数据量和所述流量,将所述第一机房增加至少一个单元;

获取单元,用于获取每一所述单元中的每一数据分片的序号;其中,每一所述数据分片为对所述数据库中的业务数据进行分片处理后得到的;

第一确定单元,用于根据每一所述单元中的每一所述数据分片的序号,确定目标数据分片;其中,所述目标数据分片为需要进行迁移的数据分片;

第一迁移单元,用于将所述目标数据分片所对应的业务数据迁移至所述第一机房所增加的单元中。

一个示例中,所述增加单元,包括:

第一增加模块,用于针对所述第一机房中每一所述单元,若监测到该单元的数据量大于或等于第一预设数据量,则为所述第一机房增加N个单元;其中,N为大于或者等于1的正整数;被增加了所述N个单元的第一机房中的单元总数小于或者等于第一参数所表征的数值;所述第一参数用于指示所述第一机房可包括的单元的最大数量。

一个示例中,所述增加单元,还包括:

第二增加模块,用于若确定监测到每一所述单元的流量大于或者等于第一预设流量,则为所述第一机房增加M个单元;其中,M为大于或者等于1的正整数;被增加了所述M个单元的第一机房中的单元总数小于或者等于所述第一参数所表征的数值。

一个示例中,所述单元中包括至少一个数据集合,所述数据集合中包括P个数据分片,P为大于1的正整数;所述第一确定单元,包括:

第一确定模块,用于针对每一所述单元,确定所述单元中的数据集合中的第P个数据分片和第P-1个数据分片,为目标数据分片;

第二确定模块,用于针对每一所述单元,确定所述单元中的数据集合中的第P个数据分片、第P-1个数据分片以及第P-2个数据分片,为目标数据分片。

一个示例中,所述单元中的数据分片具有优先级;所述优先级为基于数据分片的业务类型、用户信息、以及数据分片的时间信息所确定的;所述第一确定单元,还包括:

第三确定模块,用于针对每一所述单元,根据所述单元中的数据分片的优先级,确定优先级最高的数据分片为目标数据分片。

一个示例中,所述第一迁移单元,包括:

划分模块,用于根据所述第一机房所增加的单元数量,将所述目标数据分片平均划分至所述第一机房所增加的单元中;

迁移模块,用于针对每一所述目标数据分片,将该目标数据分片所对应的业务数据迁移至该目标数据分片所在单元对应的数据库中。

一个示例中,所述装置还包括:

删除单元,用于根据所述数据量和所述流量,将所述第一机房删除至少一个单元;

第二确定单元,用于将所述第一机房中被删除的单元所对应的所有数据分片,确定为所述目标数据分片;

第二迁移单元,用于将所述目标数据分片迁移至所述第一机房中剩余的单元中;并将每一所述数据迁移分片所对应的业务数据,迁移至每一所述目标数据分片所在单元对应的数据库中。

一个示例中,所述删除单元,包括:

第一删除模块,用于针对所述第一机房中每一所述单元,若监测到该单元的数据量小于或者等于第二预设流量,则为所述第一机房删除K个新单元;其中,K为大于或者等于1的正整数;所述第一机房中剩余的单元的总数小于或者等于第二参数所表征的数值;所述第二参数用于指示所述第一机房可包括的单元的最小数量。

一个示例中,所述删除单元,还包括:

第二删除模块,用于针对所述第一机房中每一所述单元,若监测到该单元的流量小于或者等于第二预设流量,则为所述第一机房删除L个新单元;其中,L为大于或者等于1的正整数;所述第一机房中剩余的单元的总数小于或者等于所述第二参数所表征的数值。

一个示例中,所述单元化架构还包括第二机房;其中,所述第二机房为所述第一机房的灾备机房;所述第二机房中的所有单元与所述第一机房中的所有单元一一对应;所述装置还包括:

更新单元,用于基于所述单元化架构,更新所述第一机房的配置信息;并更新所述第二机房的配置信息;其中,所述配置信息包括第一信息和第二信息;所述第一信息为每一所述单元与每一所述数据分片之间的对应信息;所述第二信息为每一所述数据分片与每一所述数据库之间的对应信息。

第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;

所述存储器存储计算机执行指令;

所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面所述的方法。

第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面所述的方法。

第五方面,本申请提供一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序,使得电子设备执行第一方面所述的方法。

本申请提供的基于单元化架构的数据迁移方法、装置及电子设备,首先,在单元化架构下机房设置多个单元,针对机房中每一单元,通过实时监测每一单元对应的数据量和应用访问量,来为机房中增加新单元;然后将每一单元预先排序的数据分片中的末位数据分片划分出去,作为新的单元中的数据分片,把新单元中数据分片对应的数据进行迁移;进而,通过只迁移序号为末位的数据分片对应的数据,使得单元化架构下的整体数据迁移量减少,进而该单元化架构下减少应用系统的停业时间,提高业务处理效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请提供的一种应用场景示意图;

图2为本申请提供的一种单元化架构的示意图;

图3为本申请实施例提供的一种基于单元化架构的数据迁移方法的流程示意图;

图4为本申请实施例提供的另一种基于单元化架构的数据迁移方法的流程示意图;

图5为本申请实施例提供的一种单元化架构中数据分片的分布示意图;

图6为本申请实施例提供的一种单元化架构中单元扩容后的数据分片的分布示意图;

图7为本申请实施例提供的一种基于单元化架构的数据迁移装置的结构示意图;

图8为本申请实施例提供的另一种基于单元化架构的数据迁移装置的结构示意图;

图9为本申请实施例提供的一种电子设备的结构示意图;

图10为根据一示例性实施例示出的一种电子设备的框图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

首先对本申请所涉及的名词进行解释:

单元化:是把单元作为部署的基本单位,在全站所有机房中部署数个单元,每个机房里的单元数目不定,任意一个单元都部署了系统所需的所有应用,每个单元的数据则是全量数据按照某种维度划分后的一部分。

机房:可实际部署应用的数据中心,一个地域有一个或多个机房。

单元:是指一个能完成所有业务操作的自包含集合,在这个集合中包含了所有业务所需的所有服务,以及分配给这个单元的数据。

数据分片:应用系统的全量数据按照某种算法进行切割成若干部分,每一部分称为一个分片,每个单元包含若干个分片。

图1为本申请提供的一种应用场景示意图。如图1所示,该场景中包括终端设备101、机房102以及灾备机房103。客户可以通过终端设备101,向机房102部署的业务系统发送访问请求,服务器102在接收到访问请求后,会进行处理,并返回访问处理结果至终端设备101。当机房发生故障时,则客户在终端设备101发起的访问请求会发送至灾备机房103部署的业务系统进行处理,并返回访问处理结果至终端设备101。

单元化架构是指把单元作为部署的基本单位,在全站所有机房中部署数个单元,每个机房里的单元数目不定,其中,任意一个单元都部署了系统所需的所有应用,能完成所有业务操作的自包含集合,每个单元中的数据则是全量数据按照某种维度划分后的一部分。在单元化架构下单元进行业务处理的过程中,随着时间的增长,数据越来越多或者越来越少时,需要对该单元化架构下机房中的单元数量作出调整,并进行数据迁移。

一个示例中,图2为本申请提供的一种单元化架构的示意图,如图2所示,企业级单元化架构旨在针对大型企业众多应用系统作出统一架构,比如,事先决策的应用系统使用4个单元,包括单元1、单元2、单元3以及单元4,每个单元对应着10个数据分片,也对应着数据库,每一数据分片一次带有序号;但是随着时间的增长,在该单元化架构下,当每一单元需要操作的数据增多时,需新增机房中的单元,然后对现有的全部数据进行重新分片,再将数据分片和单元进行重新分配,进而,将数据分片对应的数据进行迁移处理。

另一个示例中,在单元化架构下,当每一单元需要操作的数据减少时,需减少机房中的单元,然后对现有的全部数据进行重新分片,再将数据分片和单元进行重新分配,进而,将数据分片对应的数据迁移至剩余的单元中。

但是上述方式中,对数据分片和单元进行重新分配时,整体数据迁移量增多,导致单元化架构下的应用系统升级较慢,且应用系统的停业时间较长,进而增大应用系统的业务处理压力。

本申请提供的基于单元化架构的数据迁移方法、装置及电子设备,旨在解决现有技术的如上技术问题。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

需要说明的是,本申请的基于单元化架构的数据迁移方法、装置及电子设备可用于分布式领域,也可用于除分布式领域之外的任意领域,本申请的基于单元化架构的数据迁移方法、装置及电子设备的应用领域不做限定。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图3为本申请实施例提供的一种基于单元化架构的数据迁移方法的流程示意图,如图3所示,该方法包括:

S301、基于单元化架构,在单元进行业务处理的过程中,监测第一机房中每一单元的数据量和流量;其中,第一机房包括至少一个单元;数据量为当前时刻下每一单元所连接的数据库中的业务数据量;流量为当前时刻下每一单元所部署的业务系统的访问总量。

示例性地,本实施例的执行主体可以是电子设备。

示例性地,在预先设置的企业级的单元化架构下,把单元作为部署的基本单位,机房中部署数个单元,任意一个单元都部署了系统所需的所有应用系统。在该单元化架构下,针对每一单元,都包含4个模块,分别是上下文模块、分片模块、转发模块以及单元模块,上下文模块用于保存交易报文信息和每一报文信息被转发至下一分片的分片号;转发模块用于决定交易转发至哪个单元;分片模块用于决定此笔交易对应的数据用哪个数据库;单元模块用于存有分片与单元的对应关系、存有整体单元的信息。在该单元进行业务操作和业务处理的过程中,该单元会操作该单元所对应数据库中的数据,也会接收该单元所部署的业务系统所对应的业务访问请求,以完成对应的业务操作。为了适应实时变化的业务场景,基于电子设备,针对每一单元,上下文模块需要实时或者周期性的监测当前时刻下该单元所连接的数据库中的业务数据量,以及当前时刻下每一单元所部署的业务系统的访问总量,以获知当前时刻下每一单元的工作情况。

S302、根据数据量和流量,将第一机房增加至少一个单元。

示例性地,为了及时对已有的单元数量作出调整,在获取到当前时刻下每一单元对应的数据量和应用访问的流量后,针对每一单元,可以对该单元对应的数据量和应用访问的流量进行判断和分析,确认当前该单元所对应操作的数据或者流量过多,对应的在已有单元的基础上,给该单元所在机房进行单元扩容操作,即单元模块给该机房增加至少一个单元。或者,可以获取当前的业务需求,根据机房的具体物理设备性能和具体的业务量,比如当前业务需求量较大,远远超于机房的设备可承载业务量,此时在该机房增加多个单元。

S303、获取每一单元中的每一数据分片的序号;其中,每一数据分片为对数据库中的业务数据进行分片处理后得到的;并根据每一单元中的每一数据分片的序号,确定目标数据分片;其中,目标数据分片为需要进行迁移的数据分片。

示例性地,在单元化架构下机房中部署的应用系统,针对应用系统的全量数据,在数据存储时分片模块会预先按照某种算法进行切割成若干部分,每一部分称为一个数据分片,每个单元包含若干个数据分片,所有数据分片预先进行排序,每一数据分片都有对应的序号,数据存储在数据库中,分片模块会将每一数据分片与数据库中的数据一一对应。在给机房进行单元扩容之后,需要获取每一单元中的所有数据分片的序号。在获取到每一数据分片的序号后,可以根据每一数据分片的序号,比如随机抽取的方式,抽取到对应的序号,再选定抽取到的序号所对应的数据分片,将选定的数据分片确定为目标数据分片,即为待迁移的数据分片来确定待迁移的数据分片。

一个示例中,针对单元化架构下应用系统的全量数据,一共有1000条数据,部署两个单元,拆成10个数据分片,即每个单元含有5个数据分片,每个数据分片对应100个数据,所有数据分片预先进行排序,每一数据分片都有对应的序号,即1~10号,可以随机抽取预设个数的序号,比如抽取3个序号为2号、3号以及8号,则选定抽取到的序号所对应的数据分片,将选定的数据分片确定为目标数据分片,即为待迁移的数据分片。

S304、将目标数据分片所对应的业务数据迁移至第一机房所增加的单元中。

示例性地,在确定需要迁移的数据分片之后,基于电子设备,将会需要迁移的数据分片先划分至新增加的单元中,在根据数据分片与数据库中的业务数据一一对应的关系,将数据分片所对应的数据库中的业务数据,迁移至新增加的单元所对应的数据库中,及时地完成较少数据量地迁移,提高业务处理能力。

本实施例中,提供了一种基于单元化架构的数据迁移方法,在单元化架构下机房设置多个单元,针对机房中每一单元,通过实时监测每一单元对应的数据量和应用访问量,来为机房中增加新单元;然后将每一单元预先排序的数据分片选取待迁移的数据分片划分出去,作为新的单元中的数据分片,把新单元中数据分片对应的数据进行迁移;进而,通过只迁移预设分数范围内的数据分片对应的数据,使得单元化架构下的整体数据迁移量减少,进而该单元化架构下减少应用系统的停业时间,提高业务处理效率。

图4为本申请实施例提供的另一种基于单元化架构的数据迁移方法的流程示意图,如图4所示,该方法包括:

S401、基于单元化架构,在单元进行业务处理的过程中,监测第一机房中每一单元的数据量和流量;其中,第一机房包括至少一个单元;数据量为当前时刻下每一单元所连接的数据库中的业务数据量;流量为当前时刻下每一单元所部署的业务系统的访问总量。

示例性地,本步骤可以参见步骤301,不再赘述。

S402、针对第一机房中每一单元,若监测到该单元的数据量大于或等于第一预设数据量,则为第一机房增加N个单元;其中,N为大于或者等于1的正整数;被增加了N个单元的第一机房中的单元总数小于或者等于第一参数所表征的数值;第一参数用于指示第一机房可包括的单元的最大数量。

示例性地,为了及时对机房中已有的单元数量作出调整,在获取到当前时刻下每一单元对应的数据量后,针对每一单元,电子设备可以对该单元对应的数据量进行判断和分析,根据预先设置的预设数据量,即第一预设数据量,将当前获取到该单元对应的数据量与第一预设数据量进行对比,若当前获取到的该单元数据量大于或等于预设数据量,则说明当前机房中存在单元处于数据量过多的情况,则需要为该机房进行单元扩容,即为该机房增加至少一个单元。

若当前业务需求量较大,远远超于机房的设备可承载业务量,此时在该机房增加N个单元;其中,N为大于或者等于1的正整数;为了不让机房的单元数量无限制增加,电子设备在该机房预先设置了第一参数,用于指示该机房可包括的单元的最大数量,因此,在增加N个新的单元时,被增加了N个单元的机房中的单元总数应该小于或者等于该机房可包括的单元的最大数量。

S403、若确定监测到每一单元的流量大于或者等于第一预设流量,则为第一机房增加M个单元;其中,M为大于或者等于1的正整数;被增加了M个单元的第一机房中的单元总数小于或者等于第一参数所表征的数值。

示例性地,为了及时对机房中已有的单元数量作出调整,在获取到当前时刻下每一单元对应的应用访问的流量后,针对每一单元,电子设备可以对该单元对应的流量进行判断和分析,根据预先设置的预设流量,即第一预设流量,将当前获取到该单元对应的流量与预设流量进行对比,若当前获取到的该单元的流量大于或等于预设流量,则说明当前机房中存在单元处于应用访问过多的情况,则需要为该机房进行单元扩容,即为该机房增加至少一个单元。

若当前业务需求量较大,远远超于机房的设备可承载业务量,此时在该机房增加M个单元;其中,M为大于或者等于1的正整数;为了不让机房的单元数量无限制增加,电子设备在该机房预先设置了第一参数,用于指示该机房可包括的单元的最大数量,因此,在增加M个新的单元时,被增加了M个单元的机房中的单元总数应该小于或者等于该机房可包括的单元的最大数量。

S404、获取每一单元中的每一数据分片的序号;其中,每一数据分片为对数据库中的业务数据进行分片处理后得到的。

示例性地,图5为为本申请实施例提供的一种单元化架构中数据分片的分布示意图,如图5所示,在该单元化架构下,当前包括单元1、单元2、单元3以及单元4,针对每一单元,都包含4个模块,分别是上下文模块、分片模块、转发模块以及单元模块,上下文模块用于保存交易报文信息和每一报文信息被转发至下一分片的分片号;转发模块用于决定交易转发至哪个单元;分片模块用于决定此笔交易对应的数据用哪个数据库;单元模块用于存有分片与单元的对应关系、存有整体单元的信息。在该单元化架构下机房中部署的应用系统,针对应用系统的全量数据,在数据存储时会预先按照某种算法进行切割成若干部分,每一部分称为一个数据分片,每个单元包含若干个数据分片,比如,每个单元包含十个分片,即整个企业的全量数据按照某种算法切分到80个分片中再对应到某个具体的单元,数据存储在数据库中,每一数据分片与数据库中的数据一一对应,所有数据分片预先进行排序,每个数据分片都有对应的序号,并保存在单元中,获取每一单元中的数据分片所对应的序号。

在步骤S404之后,可以执行步骤S405、步骤406以及步骤S407中的任一步骤。

S405、针对每一单元,确定单元中的数据集合中的第P个数据分片和第P-1个数据分片,为目标数据分片。

一个示例中,单元中包括至少一个数据集合,数据集合中包括P个数据分片,P为大于1的正整数。

示例性地,在步骤S404之后,每一单元对应连接着数据库,这些数据库包括对应的至少一个数据集合,每一数据集合又包含着P个数据分片,其中,P为大于1的正整数。在获取到每一数据分片的序号后,可以根据每一数据分片的序号,将这些数据分片的序号对应的取值按照从小到大排列,即为1、2、3、…、P,则根据预设个数为2个,可以选取该排列中末位排列的第P个和第P-1个序号对应的取值,再根据序号与数据分片一一对应的关系,将选取的序号所对应的数据分片,确定为待迁移的目标数据分片。

一个示例中,在获取到每一数据分片的序号后,可以根据每一数据分片的序号,将这些数据分片的序号对应的取值按照从小到大排列,即为1、2、3、…、40,则根据预设个数为2个,可以选取该排列中末位排列的第40个和第39个序号对应的取值,将选取的序号所对应的数据分片,确定为待迁移的目标数据分片。

另一个示例中,在获取到每一数据分片的序号后,可以根据每一数据分片的序号,将这些数据分片的序号对应的取值按照从小到大排列,即为1、2、3、…、80,则根据预设个数为2个,可以将这些数据分片预先分为两批排列,即为1、2、3、…、40和41、42、43、…、80,继而根据预设的选取个数2个,可以选取该两排列中末位排列的第40个序号对应的取值、以及第80个对应的取值,将选取的序号所对应的数据分片,确定为待迁移的目标数据分片。

S406、针对每一单元,确定单元中的数据集合中的第P个数据分片、第P-1个数据分片以及第P-2个数据分片,为目标数据分片。

一个示例中,单元中包括至少一个数据集合,数据集合中包括P个数据分片,P为大于1的正整数。

示例性地,在步骤S404之后,每一单元对应连接着数据库,这些数据库包括对应的至少一个数据集合,每一数据集合又包含着P个数据分片,其中,P为大于1的正整数。在获取到每一数据分片的序号后,可以根据每一数据分片的序号,将这些数据分片的序号对应的取值按照从小到大排列,即为1、2、3、…、P,则根据预设个数为3个,可以选取该排列中末位排列的第P个、第P-1个以及第P-2个序号对应的取值,再根据序号与数据分片一一对应的关系,将选取的序号所对应的数据分片,确定为待迁移的目标数据分片。

一个示例中,在获取到每一数据分片的序号后,可以根据每一数据分片的序号,将这些数据分片的序号对应的取值按照从小到大排列,即为1、2、3、…、40,则根据预设个数为3个,可以选取该排列中末位排列的第40个、第39个以及第38个序号对应的取值,将选取的序号所对应的数据分片,确定为待迁移的目标数据分片。

另一个示例中,在获取到每一数据分片的序号后,可以根据每一数据分片的序号,将这些数据分片的序号对应的取值按照从小到大排列,即为1、2、3、…、90,则根据预设个数为3个,可以将这些数据分片预先分为三批排列,即为1、2、3、…、30,31、32、33、…、60,以及61、62、63、…、90继而根据预设的选取个数3个,可以选取该三排列中末位排列的第30个、第60个序号、以及第90个对应的取值,将选取的序号所对应的数据分片,确定为待迁移的目标数据分片。

S407、针对每一单元,根据单元中的数据分片的优先级,确定优先级最高的数据分片为目标数据分片。

一个示例中,优先级为基于数据分片的业务类型、用户信息、以及数据分片的时间信息所确定的。

示例性地,在对系统全量数据进行数据分片后,为了在多个单元中的每一数据分片中确定待迁移的数据分片,可以基于数据分片的业务类型、用户信息、以及数据分片的时间信息,预先确定每一数据分片的优先级。可选的,可以根据数据分片对应的数据所处的业务类型的优先程度,对数据分片也会进行一个优先级的划分,针对每一数据分片,若该数据分片对应的数据所处的业务类型的处理优先程度高,则该数据分片的优先级也高;否则,该数据分片的优先级也低。可选的,可以根据数据分片对应的数据所对应的客户信息,来确定数据分片之间的优先级,针对每一数据分片,若该数据分片对应的数据所对应的客户等级高,则该数据分片的优先级也高;否则,该数据分片的优先级也低。可选的,还可以根据若每一数据分片的产生时间来划分每一数据分片的优先级,针对每一数据分片,若该数据分片的产生时间在前,则该数据分片的优先级也高;否则,该数据分片的优先级也低。

示例性地,在步骤S404之后,可以获取到预先划分好的每一数据分片的优先级,根据选取预设个数的数据分片,选取优先级最高的数据分片的多个数据分片;比如,待迁移的数据分片为2个,则从确定好优先级的多个数据分片中,确定2个优先级最高的数据分片的数据分片,即为待迁移的目标数据分片。

S408、根据第一机房所增加的单元数量,将目标数据分片平均划分至第一机房所增加的单元中。

示例性地,基于当前机房的设备性能以及当前业务的需求量,确定增加了至少一个单元后,根据确定增加的单元数量以及待迁移的目标数据分片,可以将多个目标数据分片的数量按照单元数量进行平均划分,将平均划分后的目标数据分片迁移至每一新增的单元中。

一个示例中,图6为本申请实施例提供的一种单元化架构中单元扩容后的数据分片的分布示意图,如图6所示,在基于当前机房的设备性能以及当前业务的需求量,当前包括单元1、单元2、单元3以及单元4,确定增加了1个单元后,包括单元1、单元2、单元3、单元4以及单元5,根据确定增加的单元数量1个以及待迁移的目标数据分片2个,将2个的待迁移的目标数据分片全部迁移至该单元中。

另一个示例中,在基于当前机房的设备性能以及当前业务的需求量,确定增加了2个单元后,根据确定增加的单元数量为2、以及待迁移的目标数据分片为4个,可以将多个目标数据分片的数量按照单元数量进行平均划分,每个单元被分配到2个数据分片,将平均划分后的目标数据分片迁移至每一新增的单元中。

S409、针对每一目标数据分片,将该目标数据分片所对应的业务数据迁移至该目标数据分片所在单元对应的数据库中。

示例性地,每一新增的单元对应连接着不同的数据库,在将待迁移的目标数据分片划分到每一新增的单元中后,针对每一目标数据分片,基于每一已有单元中预存的数据和数据分片的对应关系,将该目标数据分片对应的数据,迁移至该目标数据分片所在的新增单元对应的数据库中。

S410、根据数据量和流量,将第一机房删除至少一个单元。

一个示例中,步骤S410包括:针对第一机房中每一单元,若监测到该单元的数据量小于或者等于第二预设流量,则为第一机房删除K个新单元;其中,K为大于或者等于1的正整数;第一机房中剩余的单元的总数小于或者等于第二参数所表征的数值;第二参数用于指示第一机房可包括的单元的最小数量。

或者,步骤S410包括:针对第一机房中每一单元,若监测到该单元的流量小于或者等于第二预设流量,则为第一机房删除L个新单元;其中,L为大于或者等于1的正整数;第一机房中剩余的单元的总数小于或者等于第二参数所表征的数值。

示例性地,为了及时对已有的单元数量作出调整,在获取到当前时刻下每一单元对应的数据量和应用访问的流量后,针对每一单元,可以对该单元对应的数据量和应用访问的流量进行判断和分析,确认当前该单元所对应操作的数据或者流量过少,对应的在已有单元的基础上,给该单元所在机房进行单元缩容操作,即单元模块给该机房删除至少一个单元。或者,可以获取当前的业务需求,根据机房的具体物理设备性能和具体的业务量,比如当前业务需求量不高,此时在该机房删除多个单元。

具体地,为了及时对机房中已有的单元数量作出调整,在获取到当前时刻下每一单元对应的数据量后,针对每一单元,电子设备可以对该单元对应的数据量进行判断和分析,根据预先设置的预设数据量,即第二预设数据量,将当前获取到该单元对应的数据量与第二预设数据量进行对比,若当前获取到的该单元数据量小于或等于预设数据量,则说明当前机房中存在单元处于数据量过少的情况,则需要为该机房进行单元缩容,即为该机房删除至少一个单元。若当前业务需求量较小,此时在该机房删除K个单元;其中,K为大于或者等于1的正整数;为了不让机房的单元数量无限制删除,电子设备在该机房预先设置了第二参数,用于指示该机房可包括的单元的最小数量,因此,在删除K个新的单元时,被删除了K个单元的机房中的单元总数应该大于或者等于该机房可包括的单元的最小数量。

具体地,为了及时对机房中已有的单元数量作出调整,在获取到当前时刻下每一单元对应的应用访问的流量后,针对每一单元,电子设备可以对该单元对应的流量量进行判断和分析,根据预先设置的预设流量,即第二预设流量,将当前获取到该单元对应的流量与第二预设流量进行对比,若当前获取到的该单元数据量小于或等于预设流量,则说明当前机房中存在单元所部署的应用系统访问过少的情况,则需要为该机房进行单元缩容,即为该机房删除至少一个单元。若当前业务需求量较小,此时在该机房删除L个单元;其中,L为大于或者等于1的正整数;为了不让机房的单元数量无限制删除,电子设备在该机房预先设置了第二参数,用于指示该机房可包括的单元的最小数量,因此,在删除L个新的单元时,被删除了L个单元的机房中的单元总数应该大于或者等于该机房可包括的单元的最小数量。

S411、将第一机房中被删除的单元所对应的所有数据分片,确定为目标数据分片。

示例性地,在确定该机房中需要删除的单元后,根据每一单元与每一数据分片的对应关系,将需要删除的单元所对应的数据分片,确定为待迁移的数据分片。

S412、将目标数据分片迁移至第一机房中剩余的单元中;并将每一数据迁移分片所对应的业务数据,迁移至每一目标数据分片所在单元对应的数据库中。

示例性地,在确定待迁移的数据分片后,即可将每一数据分片分配至剩余的单元中,可选的,可以进行随机分配,也可以预先根据其他剩余的单元所对应的数据量或者流量的多少,相应的去将待迁移的目标数据分片,迁移至剩余的数据量较低或者流量较低的剩余的单元中;可选的,也可以根据每一目标数据分片的序号,将目标数据分片迁移至,与目标数据分片序号相邻的数据分片所在的剩余单元中,以保证数据分片的序号的连续性。

S413、基于单元化架构,更新第一机房的配置信息;并更新第二机房的配置信息;其中,配置信息包括第一信息和第二信息;第一信息为每一单元与每一数据分片之间的对应信息;第二信息为每一数据分片与每一数据库之间的对应信息。

一个示例中,单元化架构还包括第二机房;其中,第二机房为第一机房的灾备机房;第二机房中的所有单元与第一机房中的所有单元一一对应。

示例性地,在机房出现故障的情况下,为了保证业务的连续性,在该单元化架构下,还包括第二机房,与上述中的机房护卫灾备关系,即该机房为上述机房的灾备机房,即两个机房都是对方的灾备角色。并且,这两个互为灾备的机房中得每一单元,也互为灾备单元,比如,一共有两个单元,单元1和单元2,单元1是单元2的灾备单元,单元2是单元1的灾备单元,当单元1出现故障时,单元1的流量可以直接切换到单元2;单元2出现故障时,流量可以直接切换到单元1。

示例性地,在完成单元扩容或者缩容所对应的数据迁移之后,需要及时更新各个对应的配置信息,包括重新配置业务组件单元模块中单元和分片的对应信息,以及重新配置业务组件分片模块中分片和数据库对应的信息。

本实施例中,在上述实施例的基础上,实时获取每一单元的数据量和流量,将获取到的每一单元的数据量和流量分别与预设量相比,来进行单元伸缩容;单元缩扩容后,再根据数据分片预设的数据分片序号,可以选取数据分片序号为末位的数据分片为待迁移的数据分片,也可以选取优先级高的数据分片为待迁移数据分片,以完成数据迁移;进而,一方面,通过根据每一单元的数据量和流量,来动态调整单元的数量,可以最大化资源使用率;另一方面,通过把最后几位数据分片序号的数据分片进行拆分和回收,或者把优先级高的数据分片对应的数据进行迁移;进而,通过只迁移预设个数范围内的数据分片对应的数据,使得单元化架构下的整体数据迁移量减少,进而该单元化架构下减少应用系统的停业时间,提高业务处理效率。

图7为本申请实施例提供的一种基于单元化架构的数据迁移装置的结构示意图,如图7所示,该装置500包括:

监测单元501,用于基于单元化架构,在单元进行业务处理的过程中,监测第一机房中每一单元的数据量和流量;其中,第一机房包括至少一个单元;数据量为当前时刻下每一单元所连接的数据库中的业务数据量;流量为当前时刻下每一单元所部署的业务系统的访问总量。

增加单元502,用于根据数据量和流量,将第一机房增加至少一个单元。

获取单元503,用于获取每一单元中的每一数据分片的序号;其中,每一数据分片为对数据库中的业务数据进行分片处理后得到的。

第一确定单元504,用于根据每一单元中的每一数据分片的序号,确定目标数据分片;其中,目标数据分片为需要进行迁移的数据分片。

第一迁移单元505,用于将目标数据分片所对应的业务数据迁移至第一机房所增加的单元中。

本实施例的装置,可以执行上述方法中的技术方案,其具体实现过程和技术原理相同,此处不再赘述。

图8为本申请实施例提供的另一种基于单元化架构的数据迁移装置的结构示意图,如图8所示,该装置600包括:

监测单元601,用于基于单元化架构,在单元进行业务处理的过程中,监测第一机房中每一单元的数据量和流量;其中,第一机房包括至少一个单元;数据量为当前时刻下每一单元所连接的数据库中的业务数据量;流量为当前时刻下每一单元所部署的业务系统的访问总量。

增加单元602,用于根据数据量和流量,将第一机房增加至少一个单元。

获取单元603,用于获取每一单元中的每一数据分片的序号;其中,每一数据分片为对数据库中的业务数据进行分片处理后得到的。

第一确定单元604,用于根据每一单元中的每一数据分片的序号,确定目标数据分片;其中,目标数据分片为需要进行迁移的数据分片。

第一迁移单元605,用于将目标数据分片所对应的业务数据迁移至第一机房所增加的单元中。

一个示例中,增加单元602,包括:

第一增加模块6021,用于针对第一机房中每一单元,若监测到该单元的数据量大于或等于第一预设数据量,则为第一机房增加N个单元;其中,N为大于或者等于1的正整数;被增加了N个单元的第一机房中的单元总数小于或者等于第一参数所表征的数值;第一参数用于指示第一机房可包括的单元的最大数量。

一个示例中,增加单元602,还包括:

第二增加模块6022,用于若确定监测到每一单元的流量大于或者等于第一预设流量,则为第一机房增加M个单元;其中,M为大于或者等于1的正整数;被增加了M个单元的第一机房中的单元总数小于或者等于第一参数所表征的数值。

一个示例中,单元中包括至少一个数据集合,数据集合中包括P个数据分片,P为大于1的正整数;第一确定单元604,包括:

第一确定模块6041,用于针对每一单元,确定单元中的数据集合中的第P个数据分片和第P-1个数据分片,为目标数据分片。

第二确定模块6042,用于针对每一单元,确定单元中的数据集合中的第P个数据分片、第P-1个数据分片以及第P-2个数据分片,为目标数据分片。

一个示例中,单元中的数据分片具有优先级;优先级为基于数据分片的业务类型、用户信息、以及数据分片的时间信息所确定的;第一确定单元604,还包括:

第三确定模块6043,用于针对每一单元,根据单元中的数据分片的优先级,确定优先级最高的数据分片为目标数据分片。

一个示例中,第一迁移单元605,包括:

划分模块6051,用于根据第一机房所增加的单元数量,将目标数据分片平均划分至第一机房所增加的单元中。

迁移模块6052,用于针对每一目标数据分片,将该目标数据分片所对应的业务数据迁移至该目标数据分片所在单元对应的数据库中。

一个示例中,装置600还包括:

删除单元606,用于根据数据量和流量,将第一机房删除至少一个单元;

第二确定单元607,用于将第一机房中被删除的单元所对应的所有数据分片,确定为目标数据分片。

第二迁移单元608,用于将目标数据分片迁移至第一机房中剩余的单元中;并将每一数据迁移分片所对应的业务数据,迁移至每一目标数据分片所在单元对应的数据库中。

一个示例中,删除单元606,包括:

第一删除模块6061,用于针对第一机房中每一单元,若监测到该单元的数据量小于或者等于第二预设流量,则为第一机房删除K个新单元;其中,K为大于或者等于1的正整数;第一机房中剩余的单元的总数小于或者等于第二参数所表征的数值;第二参数用于指示第一机房可包括的单元的最小数量。

一个示例中,删除单元606,还包括:

第二删除模块6062,用于针对第一机房中每一单元,若监测到该单元的流量小于或者等于第二预设流量,则为第一机房删除L个新单元;其中,L为大于或者等于1的正整数;第一机房中剩余的单元的总数小于或者等于第二参数所表征的数值。

一个示例中,单元化架构还包括第二机房;其中,第二机房为第一机房的灾备机房;第二机房中的所有单元与第一机房中的所有单元一一对应;装置600还包括:

更新单元609,用于基于单元化架构,更新第一机房的配置信息;并更新第二机房的配置信息;其中,配置信息包括第一信息和第二信息;第一信息为每一单元与每一数据分片之间的对应信息;第二信息为每一数据分片与每一数据库之间的对应信息。

本实施例的装置,可以执行上述方法中的技术方案,其具体实现过程和技术原理相同,此处不再赘述。

图9为本申请实施例提供的一种电子设备的结构示意图,如图9所示,电子设备700包括:存储器701,处理器702;存储器701;用于存储处理器702可执行指令的存储器。

其中,处理器702被配置为执行如上述实施例提供的方法。

电子设备700还包括接收器703和发送器704。接收器703用于接收其他设备发送的指令和数据,发送器704用于向外部设备发送指令和数据。

图10是根据一示例性实施例示出的一种电子设备的框图,该电子设备800可以是可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出接口812,传感器组件814,以及通信组件816。

处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。

存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器,电可擦除可编程只读存储器,可擦除可编程只读存储器,可编程只读存储器,只读存储器,磁存储器,快闪存储器,磁盘或光盘。

电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。

多媒体组件808包括在电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器和触摸面板。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风,当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件88还包括一个扬声器,用于输出音频信号。

输入/输出接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态确认信息。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件816还包括近场通信模块,以促进短程通信。例如,在近场通信模块可基于射频识别技术,红外数据协会技术,超宽带技术,蓝牙技术和其他技术来实现。

在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路、数字信号处理器、数字信号处理设备、可编程逻辑器件、现场可编程门阵列、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由电子设备800的处理器820执行以完成上述方法。例如,非临时性计算机可读存储介质可以是随机存取存储器、磁带、软盘和光数据存储设备等。

本申请实施例还提供了一种非临时性计算机可读存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述方法。

根据本申请的实施例,本申请还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

相关技术
  • 数据迁移方法、装置、介质及电子设备
  • 一种合并单元格的方法、装置、电子设备及可读存储介质
  • 一种基于合并单元的数字化测控装置离线检测系统及方法
  • 生产策划与排产一体化的方法、装置和电子设备
  • 单元化部署架构下的单元间服务发现方法、装置及系统
  • 单元化架构下的应用单元切换方法及装置
技术分类

06120116195596