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

数据处理方法、装置、系统、电子设备及存储介质

文献发布时间:2023-06-19 12:19:35


数据处理方法、装置、系统、电子设备及存储介质

技术领域

本发明实施例涉及计算机技术领域,尤其涉及一种数据处理方法、装置、系统、电子设备及存储介质。

背景技术

在使用数据库系统时,会通过数据库(DB,Database)向用户提供服务。随着用户进行数据库操作,数据库可能存在热点数据。热点数据可以为在短时间内被用户频繁访问的数据,热点数据被频繁访问,导致处理热点数据占用了数据库中的大量资源,从而导致除热点数据之外的其他数据被分配到的资源较少,进而导致数据库出现热点问题。

处理热点问题的方法一般包括:升级数据库的配置、将数据库中的数据进行散列分拆。

然而,随着用户继续进行数据库操作,升级后的数据库或者散列分拆得到的数据库,仍会再次出现热点问题,即上述两种方法并不能有效解决热点问题。

发明内容

有鉴于此,本发明实施例提供一种数据处理方法、装置、系统、电子设备及存储介质,以至少部分解决上述问题。

根据本发明实施例的第一方面,提供了一种数据处理方法,包括:获取数据分拆指令;根据所述数据分拆指令,确定热点数据当前所在的源数据库;将所述热点数据从所述源数据库同步至热点数据库中;将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库。

根据本发明实施例的第二方面,提供了一种数据库装置,包括:指令获取模块,用于获取数据分拆指令;源数据库确定模块,用于根据所述数据分拆指令,确定热点数据当前所在的源数据库;热点数据同步模块,用于将所述热点数据从所述源数据库同步至热点数据库中;变更模块,用于将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库。

根据本发明实施例的第三方面,提供了一种数据处理系统,包括:源数据库、热点数据库以及服务集群,所述服务集群用于获取数据分拆指令;根据所述数据分拆指令,确定热点数据当前所在的所述源数据库;将所述热点数据从所述源数据库同步至所述热点数据库中;将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库。

根据本发明实施例的第四方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的数据处理方法对应的操作。

根据本发明实施例的第五方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据处理方法。

根据本发明实施例提供的数据处理方案,通过获取数据分拆指令;根据所述数据分拆指令,确定热点数据当前所在的源数据库;将所述热点数据从所述源数据库同步至热点数据库;将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库,从而可以实现热点数据与除热点数据之外的其他数据在物理上的分离,由此,热点数据与除热点数据之外的其他数据所占用的资源在物理上相互独立,从而尽量避免热点数据与除热点数据之外的数据竞争数据库资源,进而可以从根本上尽量避免数据库出现热点问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1a为本发明实施例一的一种数据处理方法的步骤流程图;

图1b为图1a所示实施例中的一种场景示例的示意图;

图2a为本发明实施例二的一种数据处理方法的步骤流程图;

图2b为图2a所示实施例中的一种数据同步过程的步骤流程图;

图2c为图2a所示实施例中的一种场景示例的示意图;

图3a为本发明实施例三的一种数据处理系统的示意图;

图3b为本发明实施例三的一种示例性的数据处理方法的步骤流程图;

图4为根据本发明实施例四的一种数据处理装置的结构框图;

图5为根据本发明实施例五的一种电子设备的结构示意图。

具体实施方式

为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。

下面结合本发明实施例附图进一步说明本发明实施例具体实现。

实施例一

图1a为本发明实施例一的一种数据处理方法的步骤流程图,如图1a所示,本发明实施例一提供的数据处理方法,包括:

S101、获取数据分拆指令。

本实施例中,数据分拆指令可以用于指示将热点数据从源数据库中的分拆出去。

数据分拆指令可以由用户输入,也可以通过其他方式确定,例如,通过对数据库中的数据进行分析确定等,本实施例对此不进行限定。

S102、根据所述数据分拆指令,确定热点数据当前所在的源数据库。

本实施例中,数据库(DB,Database)可以为一种用于存储数据的计算机硬件。本步骤中的源数据库以及热点数据库为两个不同的数据库。

热点数据,可以为数据库中在短时间内被频繁访问的数据。热点数据可以根据数据被访问的频率确定,也可以由技术人员预先确定。例如,数据库中存储有n个产品的数据,其中的某些产品对应的数据被频繁访问,则可以确定这些产品对应的数据为热点数据;或者,数据库中存储有n个产品的数据,其中的某些产品是将要举办的活动中的爆款产品,这些产品对应的数据可能被频繁访问,技术人员可以预先确定这些产品对应的数据为热点数据。可以理解的是,上述仅为举例说明,并不作为本申请的限定。

由于热点数据被频繁访问,导致热点数据占用源数据库的资源较多,例如数据库的IO资源等,而数据库的资源有限,导致除热点数据之外的其他数据能够使用的数据库资源较少,致使除热点数据之外的其他数据不能被及时有效地处理,即数据库出现热点问题。

S103、将所述热点数据从所述源数据库同步至热点数据库。

热点数据库可以为用于存储热点数据的数据库,其中可以仅存储有热点数据,以避免出现热点问题;或者,热点数据库中也可以存储有除热点数据之外的其他数据,但其所需的数据库资源较少。

源数据库和热点数据库为步骤S103中同步热点数据的两端。

本实施例中,热点数据库可以通过多种方式确定,例如,可以根据数据分拆指令确定、可以根据用户的默认设置确定、可以对已有的数据库进行数据分析确定,本实施例对此不进行限定。

通过将热点数据从所述源数据库同步至所述热点数据库,实现热点数据与除热点数据之外的其他数据在物理上的分离,从而可以从根本上尽量避免数据库再次出现热点问题。

另外,步骤S103执行完成后,即表示源数据库中的热点数据与热点数据库中的热点数据是一致的。

具体同步数据的过程可参考相关技术,本实施例不再赘述。

S104、将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库。

本实施例中,访问数据库,可以为获取数据处理请求后,执行请求对应的响应操作时所访问的数据库。响应操作具体可以包括对数据库中的数据进行增、删、改、查等操作。

热点数据的访问数据库即获取针对热点数据的数据处理请求后,执行请求对应的响应操作所访问的数据库。

将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库,从而在物理上将热点数据与除热点数据之外的其他数据分离,由此,热点数据与除热点数据之外的其他数据所占用的资源在物理上相互独立,从而尽量避免热点数据与除热点数据之外的数据竞争数据库资源,进而可以从根本上尽量避免数据库出现热点问题。

参考图1b,对本申请的使用场景进行具体说明。

如图1b所示,面向某一个用户的数据库系统中可以包括四个分片,分别为G0、G1、G2、G3,其中,分片G0对应有数据库DB0、分片G1对应有数据库DB1,分片G2对应有数据库DB2、分片G3对应有DB3。根据用户的指示,可以确定热点数据对应的源数据库为数据库DB3,然后可以将数据库DB3中的热点数据同步至热点数据库中,热点数据库可以为数据库HDB中,数据库HDB对应的分片标识可以为G0_HOT。

热点数据同步完成后,可以将所述热点数据的访问数据库由数据库DB3变更为数据库HDB,除热点数据之外的其他数据的访问数据库仍然可以为数据库DB3,从而将热点数据与除热点数据之外的其他数据在物理上分离,热点数据与除热点数据之外的其他数据所占用的资源在物理上相互独立,从而尽量避免热点数据与除热点数据之外的数据竞争数据库资源,进而可以从根本上尽量避免数据库出现热点问题。

本实施例提供的方案,通过获取数据分拆指令;根据所述数据分拆指令,确定热点数据当前所在的源数据库;将所述热点数据从所述源数据库同步至热点数据库;将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库,从而可以实现热点数据与除热点数据之外的其他数据在物理上的分离,由此,热点数据与除热点数据之外的其他数据所占用的资源在物理上相互独立,从而尽量避免热点数据与除热点数据之外的数据竞争数据库资源,进而可以从根本上尽量避免数据库出现热点问题。

本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。

实施例二

图2a为本发明实施例二的一种数据处理方法的步骤流程图,如图2a所示,本发明实施例二提供的数据处理方法,包括:

S201、获取用户输入的数据分拆请求。

所述数据分拆请求中携带有所述源数据库的标识,或者携带有所述源数据库中源数据表的标识。

若数据分拆请求中携带有源数据库的标识,具体可以为分库键,则在后续步骤中,可以将源数据库中的所有热点数据同步至热点数据库中;若携带有源数据库中待分拆数据表的标识,具体可以为分库键及分表键,且源数据库中包括多个数据表,则在后续步骤中,可以仅将多个数据表中的待分拆数据表中的热点数据同步至热点数据库中。

此外,数据分拆请求中还可以携带有热点数据库的标识,从而可以直接根据数据分拆请求确定热点数据库。当然,这并不作为本申请的限定。

S202、根据数据分拆请求,确定源数据库。

本实施例中,获取到数据分拆请求后,可以通过数据分拆请求触发数据分拆操作的执行,并根据数据分拆请求确定源数据库。

另外,数据库(Database)一般对应有数据库实例(instance),数据库实例用于处理数据库中存储的数据,例如可以实现针对数据库中数据的增、删、改、查等操作。

数据库实例的状态可以分为服务状态和非服务状态;数据库实例处于服务状态是指数据库实例正在向用户提供服务,即数据库实例根据用户的数据处理请求对数据库执行对应的响应操作;数据库实例处于非服务状态是指数据库实例并未向用户提供任何服务,即数据库实例不根据用户的数据处理请求执行对应的响应操作。

若数据库对应有数据库实例,则在本实施例的一种可选方案中,可以确定处于非服务状态的第一数据库实例;通过所述第一数据库实例,创建所述热点数据库。由此,通过处于非服务状态的第一数据库实例创建热点数据库,可以尽量保证正常地向用户提供服务,降低用户对热点数据库创建过程的感知,以提高用户体验。

在本实施例的另一种可选方案中,可以确定处于服务状态的第二数据库实例;通过所述第二数据库实例,确定所述热点数据库。由此,可以最大限度地利用数据库实例的资源。

具体地,本实施例中,可以将所述第二数据库实例对应的已有数据库复用为所述热点数据库,以充分利用已有的数据库资源。

另外,第二数据库实例对应的已有数据库可以为用于存储热点数据的数据库;第二数据库实例也可以为用于处理热点数据的数据库实例。

或者,也可以通过所述第二数据库实例,创建所述热点数据库,以最大限度地利用数据库实例的资源。

具体地,本实施例中,在确定第二数据库实例时,可以根据至少两个数据库实例分别对应的数据访问频度,从所述至少两个数据库实例中确定出所述第二数据库实例。由于热点数据的访问频度较高,因此,优选使用访问频度较低的数据库实例作为第二数据库实例。

另外,为了方便管理,尽量将热点数据同步至同一个数据库实例中。

针对非热点数据库,同样可以确定处于非服务状态的第三数据库实例;通过所述第三数据库实例,创建所述非热点数据库;或者,可以确定处于服务状态的第四数据库实例;通过所述第四数据库实例,创建非热点数据库,或将第四数据库实例对应的已有数据库作为非热点数据库。

在确定第四数据库实例时,同样可以根据至少两个数据库实例分别对应的数据访问频度,从所述至少两个数据库实例中确定出所述第四数据库实例。

S203、将所述热点数据从所述源数据库同步至所述热点数据库中,将所述非热点数据从所述源数据库同步至所述非热点数据库中,并在数据同步过程中,针对用户的数据处理请求,基于所述源数据库执行请求对应的响应操作。

本实施例中,通过将所述热点数据从所述源数据库同步至所述热点数据库中,将所述非热点数据从所述源数据库同步至所述非热点数据库中,可以将源数据库中的热点数据和非热点数据分拆至热点数据库和非热点数据库中,使得热点数据与非热点数据在物理上分离。

在数据同步过程中,针对用户的数据处理请求,基于所述源数据库执行请求对应的响应操作,使得在数据同步过程不会影响向用户提供的服务,即用户不会感知到同步过程。

如图2b所示,本实施例中,步骤S203具体可以包括:

S2031、确定所述源数据库中包含约束的源数据表。

数据库中一般将数据存储为数据表,约束用于表示数据表中数据的正确性、有效性、完整性,约束具体可以包括数据表对应的主键约束(Primay Key Constraint)、数据表中的数据的唯一约束(Unique Counstraint)等,例如,数据表中的每一行对应有一个ID值,这个ID值即为该行数据的唯一约束。源数据表以及后续步骤中的热点数据表和镜像表中均可包含唯一约束。通过唯一约束,可以准确地定位源数据表中的数据。

S2032、在所述热点数据库中建立与所述源数据表对应的热点数据表,并在所述非热点数据库中建立与所述源数据表对应的镜像表。

具体地,当包括唯一约束时,唯一约束一般仅在一个数据表内适用,两个不同的数据表中包括的唯一约束可能相同。例如,两个并不相同的数据,可以分别数据两张数据表,且在数据表中对应同一个ID值。当这两个数据分属于两个数据表时,可以通过表的主键约束进行区分;但是,若将这两个数据同步至一张热点数据表或者镜像表中,会存在两个数据的唯一约束相同的情况,即产生唯一约束冲突。

为了避免唯一约束冲突,也为了保证数据的准确性,当源数据表的数量为至少两张时,在热点数据库中建立的热点数据表与源数据表一一对应,在非热点数据库中建立的镜像表与源数据表一一对应。

即不将两个或多个源数据表中的数据同步至一张热点数据表或者一张镜像表中;且,基于同样的理由,若源数据表已经被分拆过,再次进行分拆时,需要重新建立热点数据表和/或镜像表。

可以理解的是,上述仅为避免唯一约束冲突的一种示例性说明,并不作为本实施例的限定,其他方案也在和本申请的保护范围内。

S2033、根据所述源数据表包含的约束,将所述源数据表中的所述热点数据同步至对应的所述热点数据表中。

具体地,当包括主键约束时,可以根据主键约束,将所述源数据表中的所述热点数据同步至对应的所述热点数据表中。具体地,当包括唯一约束时,可以直接将源数据表中的热点数据以及热点数据对应的唯一约束全部同步至热点数据表中。

同步完成后,即表示热点数据表中的热点数据与源数据表中的热点数据一致。

S2034、根据所述源数据表包含的约束,将所述源数据表中的所述非热点数据同步至对应的所述镜像表中。

具体地,当包括主键约束时,可以根据主键约束,将所述源数据表中的所述非热点数据同步至对应的所述镜像表中。

具体地,当包括唯一约束时,可以直接将源数据表中的非热点数据以及非热点数据对应的唯一约束全部同步至镜像表中。同步完成后,即表示镜像表中的非热点数据与源数据表中的非热点数据一致。

S2035、针对用户的数据处理请求,基于所述源数据库执行请求对应的响应操作。

步骤S2035与步骤S2031-S2034并行执行。

进一步地,由于在数据同步过程中,针对用户的数据处理请求,基于所述源数据库执行请求对应的响应操作,因此,在数据同步过程中,源数据库中的数据可能会被进行增、删、改、查等操作,即源数据库中的热点数据和/或非热点数据可能会发生变化。

则对应的,热点数据和/或非热点数据可以通过下述方法进行同步:

通过全量同步任务,将所述全量同步任务的开始时间之前存在于所述源数据库中的待同步数据全量同步至目标数据库中;

通过增量同步任务,将在所述全量同步任务的开始时间之后在所述源数据库中增加的待同步数据增量同步至目标数据库中。

当待同步数据为热点数据时,目标数据库为热点数据库,当待同步数据为非热点数据时,目标数据库为非热点数据库。

具体地,源数据库中包括源数据表、热点数据库中包括热点数据表时,热点数据表为包含主键约束的数据表,以保证增量同步任务可以根据主键约束准确定位到与源数据表对应的热点数据表;同理,若非热点数据库中包括镜像表,则镜像表也为包含主键约束的数据表。

具体地,通过增量同步任务,将在所述全量同步任务的开始时间之后在所述源数据库中增加的待同步数据增量同步至目标数据库中具体可以包括:

订阅源数据库的日志信息,并根据全量同步任务的开始时间确定日志信息中的增量同步起点;

通过增量同步任务,从确定的增量同步起点开始,在目标数据库中执行日志信息中记录的响应操作,以将在所述全量同步任务的开始时间之后在所述源数据库中增加的待同步数据增量同步至目标数据库中。

若目标数据库为热点数据库,且热点数据库中包括热点数据表时,可以通过热点数据表的主键约束保证准确地在热点数据表中执行日志信息对应的响应操作;同理,若目标数据库为非热点数据库,且非热点数据库中包括镜像表时,可以通过镜像表的主键约束保证准确地在镜像表执行日志信息对应的响应操作。

日志信息具体可以为二进制日志信息(binlog)。

S204、对所述源数据库进行写锁定操作,以锁定对所述源数据库的写访问。

通过步骤S204,可以禁止对源数据库中的热点数据以及非热点数据进行写访问,以保证在后续步骤S205执行的过程中,源数据库中的热点数据和非热点数据不会发生变化,既保证了更新过程中数据的准确性,又可以实现更新前与更新后的数据库的无缝衔接,使得用户对后续步骤S205无感知。

当然,上述仅为举例说明,其他能够保证数据准确性的方案也在本申请的保护范围内。

S205、将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库,并将所述非热点数据的访问数据库由所述源数据库变更为所述非热点数据库。

具体地,可以通过更新路由规则,实现上述步骤S205。路由规则用于定位用户的数据处理请求对应的数据库,更新路由规则后,即可将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库,并将所述非热点数据的访问数据库由所述源数据库变更为所述非热点数据库,即用热点数据库、和非热点数据库替换源数据库。

如图2c所示,面向某一个用户的数据库系统中可以包括四个分片,分别为G0、G1、G2、G3,其中,分片G0对应有数据库DB0、分片G1对应有数据库DB1,分片G2对应有数据库DB2、分片G3对应有DB3。

根据用户的指示,可以确定热点数据对应的源数据库为数据库DB3,然后可以将数据库DB3中的热点数据同步至热点数据库中,热点数据库可以为数据库HDB中,数据库HDB对应的分片标识可以为G0_HOT;以及,可以将数据库DB3中的非热点数据同步至非热点数据库中,非热点数据库可以为数据库EDB中。在数据同步过程中,针对用户的数据处理请求,可以基于数据库DB3执行请求对应的响应操作。

数据同步完成后,可以对数据库DB3进行写锁定操作,然后更新路由规则,以将所述热点数据的访问数据库由数据库DB3变更为数据库HDB,并将非热点数据的访问数据库由数据库DB3变更为数据库EDB,数据库EDB的分片标识可以沿用G3。由此可以将源数据库中的热点数据分拆至数据库HDB中,将非热点数据分拆至数据库EDB中,从而将热点数据与非热点数据在物理上分离,热点数据以及非热点数据对应的数据库不同,所占用的资源相互独立,从而尽量避免了热点问题的出现。

另外需要说明的是,本实施例仅以将源数据库中的热点数据拆分至热点数据库、将非热点数据拆分至非热点数据库进行示例性说明,在其他实现方式中,也可以仅将源数据库中的热点数据拆分至热点数据库,或者将源数据库中的部分非热点数据拆分至非热点数据库中等,这些方案也在本申请的保护范围内;另外,还可以对拆分得到的热点数据库或者非热点数据库再次进行拆分,这也在本申请的保护范围内。

本实施例提供的方案,通过获取数据分拆指令;根据所述数据分拆请求,确定热点数据当前所在的源数据库;将所述热点数据从所述源数据库同步至所述热点数据库,将非热点数据从源数据库同步至非热点数据库;将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库,并将非热点数据的访问数据库由源数据库变更为非热点数据库,从而可以实现热点数据与非热点数据在物理上的分离,由此,热点数据与非热点数据所占用的资源在物理上相互独立,从而尽量避免热点数据与非热点数据竞争数据库资源,进而可以从根本上尽量避免数据库出现热点问题;并且,通过在数据同步过程中针对用户的数据处理请求,基于所述源数据库执行请求对应的响应操作,使得同步过程中可以继续处理用户的数据处理请求,并在同步完成后对源数据库进行写锁定操作,以变更访问数据库,变更所需的时间较短,使得用户对变更过程无感知,进而使得用户对整个分拆过程无感知。

本实施例的数据处理方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。

实施例三

图3a为本发明实施例三的一种数据处理系统的示意图,如图3a所示,应用场景中可以包括多个用户端100、网络200、服务集群300、数据库集群400,多个客户端100可经由网络200与服务集群300进行通信,服务集群300可以根据与客户端100的通信,从客户端100获取数据处理请求,对数据库集群400中存储的数据执行请求对应的响应操作,并可以把响应操作的结果返回至客户端100。

具体地,客户端100可以包括任意适当的具有数据处理能力的电子设备,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。

网络200可以包括互联网、内部网、外部网、广域网(WAN)、局域网(LAN)、有线网、无线网或其它合适的网络等。

服务集群300中可以包括多个数据处理节点,数据处理节点可以根据数据处理请求,对数据库集群400中存储的数据执行对应的响应操作,响应操作可以包括增、删、改、查等操作。

服务集群300可以用于获取数据分拆指令;根据所述数据分拆指令,确定热点数据当前所在的所述源数据库;将所述热点数据从所述源数据库同步至所述热点数据库中;将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库。

数据库集群400中可以包括多个数据库,例如图中的DB1-DBN,多个数据库中可以包括上述实施例中的源数据库、热点数据库和非热点数据库等。数据库集群400可以为分布式数据库,本申请实施例对数据库集群400的类型不进行限定。

下面基于图3a示出的数据处理系统,示例性示出一种数据处理方法,如图3b所示,数据处理方法可以包括以下步骤:

S301、用户端生成数据分拆请求,并发送至数据库管理进程。

数据库管理进程可以部署在服务集群300中,用于对数据库和\或数据库实例进行管理。

数据分拆请求中可以包括热点key,以及作为热点数据库的数据库B。

具体地,用户端可以向用户展示管理页面,用户可以触发管理页面的“数据分拆”选项,并选择源数据库以及热点数据库等,客户端可以根据用户的触发操作生成数据分拆请求。

S302、通过数据库管理进程根据数据分拆请求,确定作为源数据库的数据库A。

数据分拆请求中包括的热点key具体可以为分库键,或者为分库键及分表键。

数据管理进程具体可以基于路由规则,根据热点key确定作为源数据库的数据库A。

S303、通过数据管理进程拉取数据库A(源数据库)中的数据。

S304、通过数据管理进程将数据库A中的热点数据写入数据库B(热点数据库)中。

在步骤S304之前,可以通过数据管理进程调用实例创建进程,以创建一个数据库实例,并通过创建的数据库实例创建热点数据库。当然,也可以不进行数据库实例或者热点数据库的创建,而直接选择已有的数据库作为热点数据库,本实施例不对此进行限定。

S305、通过数据管理进程将数据库A中的非热点数据写入数据库C(非热点数据库)中。

在步骤S304之前,可以通过数据管理进程调用实例创建进程,以创建一个数据库实例,并通过创建的数据库实例创建非热点数据库。当然,也可以不进行数据库实例或者热点数据库,而直接选择已有的数据库作为热点数据库,本实施例不对此进行限定。

通过步骤S303-S305,可以将热点数据从数据库A(源数据库)同步至数据库B(热点数据库),将非热点数据从数据库A(源数据库)同步至数据库C(非热点数据库)。

上述步骤S304和S305可以并行执行,也可以按照先后顺序执行,本实施例对此不进行限定。

另外,具体可以通过数据管理进程调用数据同步进程,来实现步骤S303、S304和S305,即通过数据同步进行实现数据的拉取和写入。

另外,在步骤S301-S305执行过程中,若数据管理进程接收到数据处理请求,则基于数据库A(源数据库)执行请求对应的响应操作。响应操作具体可以包括对数据库A(源数据库)中的数据进行增、删、改、查等操作。

S306、通过数据管理进程向用户端发送同步完成信息,以提示用户同步完成。

S307、通过数据管理进程获取用户端发送的切换操作指令。

S308、通过数据管理进程,进行写锁定并进行切换。

具体地,可以对用户对应的所有数据库进行写锁定操作,以锁定响应操作对所有数据库的写访问。

例如上述图1b或者图2c所示,一个用户可能对应有多个数据库,则此时,可以对用户对应的所有的数据库进行写锁定操作,即从获取到用户的切换操作指令后,禁止根据用户的数据处理请求,对用户对应的所有数据库中的数据进行写访问,即开始处于禁写状态。

进行切换时,通过数据管理进程,将数据库A(源数据库)切换为数据库B(热点数据库)以及数据库C(非热点数据库)。

通过步骤S309,可以将所述热点数据的访问数据库由数据库A(源数据库)变更为数据库B(热点数据库),将非热点数据的访问数据库由数据库A(源数据库)变更为数据库C(非热点数据库)。

由于上述步骤中,将数据库A(源数据库)中的热点数据同步至了数据库B(热点数据库),将数据库A(源数据库)中的非热点数据同步至了数据库C(非热点数据库)中,因此,可以直接使用数据库B(热点数据库)以及数据库C(非热点数据库)替换数据库A(源数据库),而不会发生数据错误的情况,即切换前后可以无缝衔接。

切换完成后,可以通过数据管理进程释放对用户对应的所有数据库的写锁定。即解除禁写状态。

由于进行切换所需的时间较短,即禁写状态的维持时间较短,且切换前后可以无缝衔接,因此,可以使得用户对切换过程无感知。

在用户使用一段时间后,若确定本次操作符合用户的需求,则用户可以触发用户端展示的管理界面,提交清理任务。

对应的,所述方法还可以包括:

S309、通过数据管理进程,获取用户端发送的数据清理请求。

用户端可以根据清理任务生成数据清理请求,并发送至数据管理进程。

S310、通过数据管理进程,清理数据库A(源数据库)中的数据。

另外需要说明的是,数据库B(热点数据库)可以复用,例如若获取到用户针对数据库D的数据分拆请求,则可以将数据库D中的热点数据也同步至数据库B(热点数据库)中。

切换后,热点数据的访问数据库为数据库B(热点数据库),非热点数据的访问数据库为数据库C(非热点数据库),从而通过上述过程实现了热点数据与非热点数据在物理上的分离,由此,热点数据与非热点数据所占用的资源在物理上相互独立,从而尽量避免热点数据与非热点数据竞争数据库资源,进而可以从根本上尽量避免数据库出现热点问题。

当然,上述实施例仅为示例性进行说明,并不作为本申请的限定。

本实施例提供的方案,可以实现热点数据与其他非热点数据在物理上的分离,通过物理上的分离,由此,热点数据与非热点数据所占用的资源在物理上相互独立,从而尽量避免热点数据与非热点数据竞争数据库资源,进而可以从根本上尽量避免数据库出现热点问题,并且可以使得用户对整个分拆过程无感知。

实施例四

图4为本发明实施例四的一种数据处理装置的结构示意图,如图4所示,本发明实施例四提供的数据处理装置,包括:指令获取模块401、源数据库确定模块402、热点数据同步模块403、变更模块404。

指令获取模块401,用于获取数据分拆指令;

源数据库确定模块402,用于根据所述数据分拆指令,确定热点数据当前所在的源数据库;

热点数据同步模块403,用于将所述热点数据从所述源数据库同步至热点数据库中;

变更模块404,用于将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库。

可选地,本申请任意实施例中,所述热点数据同步模块403包括:热点数据表建立模块,用于确定所述源数据库中包含约束的源数据表,并在所述热点数据库中建立与所述源数据表对应的热点数据表;热点数据表同步模块,用于根据所述源数据表包含的约束,将所述源数据表中的所述热点数据同步至对应的所述热点数据表中。

可选地,本申请任意实施例中,所述源数据库包括非热点数据,所述装置还包括:非热点数据同步模块,用于将所述非热点数据从所述源数据库同步至所述非热点数据库中;所述变更模块404,还用于将所述非热点数据的访问数据库由所述源数据库变更为所述非热点数据库。

可选地,本申请任意实施例中,所述非热点数据同步模块包括:镜像表建立模块,用于确定所述源数据库中包含约束的源数据表,并在所述非热点数据库中建立与所述源数据表对应的镜像表;非热点数据表同步模块,用于根据所述源数据表包含的约束,将所述源数据表中的所述非热点数据同步至对应的所述镜像表中。

可选地,本申请任意实施例中,在数据同步过程中,针对用户的数据处理请求,基于所述源数据库执行请求对应的响应操作。

可选地,本申请任意实施例中,所述变更模块404包括:写锁定模块,用于对所述源数据库进行写锁定操作,以锁定对所述源数据库的写访问;访问数据库变更模块,用于将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库。

可选地,本申请任意实施例中,所述装置还包括:热点数据库确定模块,用于确定处于非服务状态的第一数据库实例;通过所述第一数据库实例,创建所述热点数据库。

可选地,本申请任意实施例中,所述装置还包括:热点数据库确定模块,用于确定处于服务状态的第二数据库实例;通过所述第二数据库实例,确定所述热点数据库。

可选地,本申请任意实施例中,将所述第二数据库实例对应的已有数据库复用为所述热点数据库;或者,通过所述第二数据库实例,创建所述热点数据库。

可选地,本申请任意实施例中,所述装置还包括:第二数据库实例确定模块,用于根据至少两个数据库实例分别对应的数据访问频度,从所述至少两个数据库实例中确定出所述第二数据库实例。

可选地,本申请任意实施例中,所述指令获取模块401具体用于获取用户输入的数据分拆请求,其中,所述数据分拆请求中携带有所述源数据库的标识,或者携带有所述源数据库中源数据表的标识。

本实施例提供的数据处理装置,通过获取数据分拆指令;根据所述数据分拆指令,确定热点数据当前所在的源数据库;将所述热点数据从所述源数据库同步至热点数据库;将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库,从而可以实现热点数据与除热点数据之外的其他数据在物理上的分离,由此,热点数据与除热点数据之外的其他数据所占用的资源在物理上相互独立,从而尽量避免热点数据与除热点数据之外的数据竞争数据库资源,进而可以从根本上尽量避免数据库出现热点问题。

本实施例的数据处理装置用于实现前述多个方法实施例中相应的数据处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的数据处理装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。

实施例五

参照图5,示出了根据本发明实施例五的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。

如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。

其中:

处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。

通信接口504,用于与其它电子设备或服务器进行通信。

处理器502,用于执行程序510,具体可以执行上述数据处理方法实施例中的相关步骤。

具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。

处理器52可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序510具体可以用于使得处理器502执行以下操作:获取数据分拆指令;根据所述数据分拆指令,确定热点数据当前所在的源数据库;将所述热点数据从所述源数据库同步至热点数据库中;将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库。

在一种可选的实施方式中,程序510还用于使得处理器502在将所述热点数据从所述源数据库同步至热点数据库时,执行以下操作:确定所述源数据库中包含约束的源数据表,并在所述热点数据库中建立与所述源数据表对应的热点数据表;根据所述源数据表包含的约束,将所述源数据表中的所述热点数据同步至对应的所述热点数据表中。

在一种可选的实施方式中,所述源数据库包括非热点数据,程序510具体还可以用于使得处理器502执行以下操作:将所述非热点数据从所述源数据库同步至所述非热点数据库中;将所述非热点数据的访问数据库由所述源数据库变更为所述非热点数据库。

在一种可选的实施方式中,程序510还用于使得处理器502在将所述非热点数据从所述源数据库同步至所述非热点数据库中时,执行以下操作:确定所述源数据库中包含约束的源数据表,并在所述非热点数据库中建立与所述源数据表对应的镜像表;根据所述源数据表包含的约束,将所述源数据表中的所述非热点数据同步至对应的所述镜像表中。

在一种可选的实施方式中,在数据同步过程中,针对用户的数据处理请求,基于所述源数据库执行请求对应的响应操作。

在一种可选的实施方式中,程序510还用于使得处理器502在将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库时,执行以下操作:对所述源数据库进行写锁定操作,以锁定对所述源数据库的写访问;将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库。

在一种可选的实施方式中,程序510具体还可以用于使得处理器502执行以下操作:确定处于非服务状态的第一数据库实例;通过所述第一数据库实例,创建所述热点数据库。

在一种可选的实施方式中,程序510具体还可以用于使得处理器502执行以下操作:确定处于服务状态的第二数据库实例;通过所述第二数据库实例,确定所述热点数据库。

在一种可选的实施方式中,程序510还用于使得处理器502在通过所述第二数据库实例,确定所述热点数据库时,执行以下操作:将所述第二数据库实例对应的已有数据库复用为所述热点数据库;或者,通过所述第二数据库实例,创建所述热点数据库。

在一种可选的实施方式中,程序510具体还可以用于使得处理器502执行以下操作:根据至少两个数据库实例分别对应的数据访问频度,从所述至少两个数据库实例中确定出所述第二数据库实例。

在一种可选的实施方式中,程序510还用于使得处理器502在获取数据分拆指令时,执行以下操作:获取用户输入的数据分拆请求,其中,所述数据分拆请求中携带有所述源数据库的标识,或者携带有所述源数据库中源数据表的标识。

程序510中各步骤的具体实现可以参见上述数据处理方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

通过本实施例的电子设备,通过获取数据分拆指令;根据所述数据分拆指令,确定热点数据当前所在的源数据库;将所述热点数据从所述源数据库同步至热点数据库;将所述热点数据的访问数据库由所述源数据库变更为所述热点数据库,从而可以实现热点数据与除热点数据之外的其他数据在物理上的分离,由此,热点数据与除热点数据之外的其他数据所占用的资源在物理上相互独立,从而尽量避免热点数据与除热点数据之外的数据竞争数据库资源,进而可以从根本上尽量避免数据库出现热点问题。

需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤分拆为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。

上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的数据处理方法。此外,当通用计算机访问用于实现在此示出的数据处理方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的数据处理方法的专用计算机。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。

以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。

相关技术
  • 雷达系统的数据处理方法、装置、电子设备和存储介质
  • 数据处理方法、系统、装置、电子设备及存储介质
技术分类

06120113255736