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

业务数据的处理方法、装置及设备

文献发布时间:2023-06-19 11:08:20


业务数据的处理方法、装置及设备

技术领域

本发明涉及数据处理技术领域,尤其涉及一种业务数据的处理方法、装置及设备。

背景技术

在一些业务场景中,可以将业务数据存储到数据库中,还可以对数据库中的业务数据进行增加、删除、修改、查询等操作。

目前,通常采用MySQL数据库进行业务数据的存储。MySQL是一种关系型数据库,MySQL将业务数据保存在一张数据表中,每个业务数据对应有键值。可以采用SQL语句对数据表中的业务数据进行增加、删除、修改、查询等操作。

然而,发明人在实现本申请的过程中发现,随着业务的发展,数据库中存储的业务数据量越来越多,导致单张数据表读写性能降低,导致业务数据的处理效率较低。

发明内容

本发明提供一种业务数据的处理方法、装置及设备,用以提高业务数据的处理效率。

第一方面,本申请提供一种业务数据的处理方法,应用于数据处理系统,所述数据处理系统包括:多个计算节点和多个存储节点,所述方法包括:

获取数据操作请求,所述数据操作请求用于指示在数据表中对第一业务数据进行第一操作,所述数据表存储在所述多个存储节点中;

在所述多个计算节点中确定目标计算节点,并通过所述目标计算节点确定所述第一业务数据在所述数据表中的键值;

根据所述第一业务数据的键值,在所述多个存储节点中确定目标存储节点,并在所述目标存储节点中对所述第一业务数据进行所述第一操作。

一种可能的实现方式中,各所述存储节点分别存储所述数据表中的至少部分业务数据;所述数据处理系统还包括:管理节点,所述管理节点存储有所述数据表中的各业务数据的元信息,其中,一个业务数据的元信息包括:该业务数据的键值以及存储该业务数据的存储节点的标识;

根据所述第一业务数据的键值,在所述多个存储节点中确定目标存储节点,包括:

通过所述管理节点根据所述各业务数据的元信息以及所述第一业务数据的键值,确定出所述目标存储节点,所述目标存储节点为存储所述第一业务数据的存储节点。

一种可能的实现方式中,所述数据表包括多个分段,每个所述分段用于存储预设数据量的具有连续键值的多个业务数据;各所述存储节点分别存储至少一个所述分段;一个业务数据的元信息还包括:存储该业务数据的分段的标识;

通过所述管理节点根据所述各业务数据的元信息以及所述第一业务数据的键值,确定出所述目标存储节点,包括:

通过所述管理节点根据所述各业务数据的元信息以及所述第一业务数据的键值,确定出所述目标存储节点以及目标分段,所述目标分段为所述多个分段中存储所述第一业务数据的分段。

一种可能的实现方式中,在所述目标存储节点中对所述第一业务数据进行所述第一操作,包括:

根据所述第一业务数据的键值以及所述目标分段,在所述目标存储节点中对所述第一业务数据进行所述第一操作。

一种可能的实现方式中,所述方法还包括下述中的至少一项:

响应于检测到所述数据表被创建,对所述数据表进行划分得到所述多个分段,通过所述管理节点将所述多个分段的顺序打散,并按照均衡分布原则,将打散后的所述多个分段存储在所述多个存储节点中;或者,

响应于检测到新增存储节点,通过所述管理节点将所述多个分段中的至少部分分段调度到所述新增存储节点中,以使各存储节点中的分段数量趋于均衡。

一种可能的实现方式中,所述方法还包括:

响应于检测到所述数据表中存在至少两个第一分段,通过所述管理节点将所述至少两个第一分段进行合并处理,所述第一分段中存储的业务数据的数据量小于预设阈值。

一种可能的实现方式中,所述数据处理系统中还包括:每个存储节点对应的至少一个副本节点;所述方法还包括:

通过所述管理节点将所述存储节点中的数据复制到所述存储节点对应的副本节点中。

一种可能的实现方式中,在所述多个计算节点中确定目标计算节点,包括:

获取所述多个计算节点对应的负载数据;

根据所述多个计算节点对应的负载数据,按照负载均衡原则,在所述多个计算节点中确定出所述目标计算节点。

第二方面,本申请提供一种业务数据的处理装置,应用于数据处理系统,所述数据处理系统包括:多个计算节点和多个存储节点,所述装置包括:

获取模块,用于获取数据操作请求,所述数据操作请求用于指示在数据表中对第一业务数据进行第一操作,所述数据表存储在所述多个存储节点中;

确定模块,用于在所述多个计算节点中确定目标计算节点,并通过所述目标计算节点确定所述第一业务数据在所述数据表中的键值;

处理模块,用于根据所述第一业务数据的键值,在所述多个存储节点中确定目标存储节点,并在所述目标存储节点中对所述第一业务数据进行所述第一操作。

一种可能的实现方式中,各所述存储节点分别存储所述数据表中的至少部分业务数据;所述数据处理系统还包括:管理节点,所述管理节点存储有所述数据表中的各业务数据的元信息,其中,一个业务数据的元信息包括:该业务数据的键值以及存储该业务数据的存储节点的标识;所述处理模块具体用于:

通过所述管理节点根据所述各业务数据的元信息以及所述第一业务数据的键值,确定出所述目标存储节点,所述目标存储节点为存储所述第一业务数据的存储节点。

一种可能的实现方式中,所述数据表包括多个分段,每个所述分段用于存储预设数据量的具有连续键值的多个业务数据;各所述存储节点分别存储至少一个所述分段;一个业务数据的元信息还包括:存储该业务数据的分段的标识;

所述处理模块具体用于:通过所述管理节点根据所述各业务数据的元信息以及所述第一业务数据的键值,确定出所述目标存储节点以及目标分段,所述目标分段为所述多个分段中存储所述第一业务数据的分段。

一种可能的实现方式中,所述处理模块具体用于:

根据所述第一业务数据的键值以及所述目标分段,在所述目标存储节点中对所述第一业务数据进行所述第一操作。

一种可能的实现方式中,所述处理模块还用于:

响应于检测到所述数据表被创建,对所述数据表进行划分得到所述多个分段,通过所述管理节点将所述多个分段的顺序打散,并按照均衡分布原则,将打散后的所述多个分段存储在所述多个存储节点中;和/或,

响应于检测到新增存储节点,通过所述管理节点将所述多个分段中的至少部分分段调度到所述新增存储节点中,以使各存储节点中的分段数量趋于均衡。

一种可能的实现方式中,所述处理模块还用于:

响应于检测到所述数据表中存在至少两个第一分段,通过所述管理节点将所述至少两个第一分段进行合并处理,所述第一分段中存储的业务数据的数据量小于预设阈值。

一种可能的实现方式中,所述数据处理系统中还包括:每个存储节点对应的至少一个副本节点;所述处理模块还用于:

通过所述管理节点将所述存储节点中的数据复制到所述存储节点对应的副本节点中。

一种可能的实现方式中,所述确定模块具体用于:

获取所述多个计算节点对应的负载数据;

根据所述多个计算节点对应的负载数据,按照负载均衡原则,在所述多个计算节点中确定出所述目标计算节点。

第三方面,本申请提供一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序实现如第一方面任一项所述的方法。

第四方面,本申请提供一种计算机可读存储介质,包括:计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的方法。

第五方面,本申请提供一种计算机程序产品,包括:计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的方法。

本本申请提供的业务数据的处理方法、装置及设备,该方法包括:获取数据操作请求,所述数据操作请求用于指示在数据表中对第一业务数据进行第一操作,在多个计算节点中确定出目标计算节点,并通过目标计算节点确定出第一业务数据在数据表中的键值;根据第一业务数据的键值,在多个存储节点中确定出目标存储节点,并在目标存储节点中对第一业务数据进行第一操作。通过采用多个计算节点和多个存储节点,使得数据处理系统的计算能力和存储能力均能够得到水平扩展,从而提高数据处理效率。即使是在海量存储数据和/或数据操作请求高并发的场景中,也能够保证数据处理的时效性。

附图说明

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

图1为本申请实施例提供的一种数据处理系统的示意图;

图2为本申请实施例提供的一种业务数据的处理方法的流程示意图;

图3为本申请实施例提供的另一种数据处理系统的示意图;

图4为本申请实施例提供的另一种业务数据的处理方法的流程示意图;

图5为本申请实施例提供的数据表中的分段的示意图;

图6为本申请实施例提供的分段在存储节点间的分布示意图;

图7为本申请实施例提供的存储节点以及副本节点的示意图;

图8为本申请实施例提供的一种数据处理系统的部署方式的示意图;

图9为本申请实施例提供的数据处理系统的应用场景示意图;

图10为本申请实施例提供的业务数据的处理装置的结构示意图;

图11为本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

如前所述,在一些业务场景中,可以将业务场景存储到数据库中,还可以对数据库中的业务数据进行增加、删除、修改、查询等操作。

一个示例场景可以为电商应用场景,电商应用场景中会产生大量的业务数据,包括但不限于:商品数据、用户数据、订单数据、物流数据、退换数据等。另一个示例场景可以为金融信贷应用场景,在金融信贷应用场景中,会产生大量的业务数据,包括但不限于:贷款单数据、用户数据、贷款还款明细数据等。又一个示例场景可以为保险应用场景,在保险应用场景中也会产生大量的业务数据,包括但不限于:保单数据、投保用户数据、被保用户数据、理赔数据等。

需要说明的是,上述列举的应用场景仅为可能的示例,本申请实施例并不以此为限,还可以应用于其他更多的业务场景中。

通常,上述业务场景中产生的业务数据存储到数据库中。通常采用MySQL数据库进行业务数据的存储。MySQL是一种关系型数据库,MySQL将业务数据保存在一张数据表中,每个业务数据对应有键值。可以采用SQL语句对数据表中的业务数据进行增加、删除、修改、查询等操作。

然而,发明人在实现本申请的过程中发现,随着业务的发展,数据库中存储的业务数据量越来越多。例如,一些场景中,单张数据表很快达到亿级别。该情况下,随着数据表中的数据量的增长,对数据表的读写性能降低,导致业务数据的处理效率较低,业务数据的处理时效性受到严重挑战。

本申请提供的业务数据的处理方法、装置及设备,旨在解决上述技术问题。下面结合图1对本申请实施例提供的网络架构进行描述。

图1为本申请实施例提供的一种数据处理系统的示意图。如图1所示,系统架构包括终端设备和数据处理系统。其中,数据处理系统也可以称为数据存储系统。数据处理系统用于存储业务数据,并向终端设备提供对业务数据进行处理的接口。如图1所示,终端设备可以向数据处理系统发送数据操作请求,该数据操作请求可以请求增加第一业务数据、删除第一业务数据、修改第一业务数据或者查询第一业务数据等。应理解,第一业务数据可以为某个指定的业务数据,还可以是满足某个条件的一类业务数据。即,第一业务数据可以为一个或者多个业务数据。

参见图1,数据处理系统包括计算节点和存储节点。其中,计算节点不存储数据而只负责计算。计算节点负责接收数据操作请求,并对数据操作请求进行解析、查询等计算处理。计算节点的数量可以为多个,这样使得数据处理系统的计算能力能够水平扩展。

存储节点负责存储数据。所有业务数据可以维护在一张数据表中,将该数据表存储在存储节点中。存储节点的数量也可以为多个。一个示例中,多个存储节点中的存储的数据可以相同,该情况下多个存储节点互为备份。另一个示例中,多个存储节点中存储的数据也可以不同,该情况下相当于对数据表进行分布式存储,即,数据表被分散存储在多个存储节点中。又一个示例中,一些存储节点中存储的数据可以相同,而另一些存储节点中存储的数据可以不同,该情况相当于将上述两种情况结合使用。

应理解,本申请实施例对计算节点和存储节点的数量不作限定。图1中示例的节点数量仅为示意。实际应用中,可以根据应用需求对计算节点和存储节点的数量进行增加或者减少。

本申请技术方案中,获取数据操作请求,所述数据操作请求用于指示在数据表中对第一业务数据进行第一操作,在多个计算节点中确定出目标计算节点,并通过目标计算节点确定出第一业务数据在数据表中的键值;根据第一业务数据的键值,在多个存储节点中确定出目标存储节点,并在目标存储节点中对第一业务数据进行第一操作。通过采用多个计算节点和多个存储节点,使得数据处理系统的计算能力和存储能力均能够得到水平扩展,从而提高数据处理效率。即使是在海量存储数据和/或数据操作请求高并发的场景中,也能够保证数据处理的时效性。

需要说明的是,数据处理系统可以部署在一个服务器中,还可以部署在服务器集群中。当部署在一个服务器中时,计算节点可以为该服务器中的处理器或者计算单元。存储节点可以为该服务器中的数据库。当部署在服务器集群中时,一些服务器中可部署一个或者多个计算节点。另一些服务器可以部署一个或者多个存储节点。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图2为本申请实施例提供的一种业务数据的处理方法的流程示意图。本实施例的方法可以应用于图1中的数据处理系统。如图2所示,本实施例的方法包括:

S201:获取数据操作请求,所述数据操作请求用于指示在数据表中对第一业务数据进行第一操作,所述数据表存储在所述多个存储节点中。

具体的,用户需要对业务数据进行操作时,可以通过终端设备向数据处理系统发送数据操作请求。数据操作请求可以指示下述中的任意一项:在数据表中增加第一业务数据,在数据表中删除第一业务数据,在数据表中修改第一业务数据,在数据表中查询第一业务数据。

其中,第一业务数据可以为某个指定的业务数据,还可以是满足某个查询条件的一类业务数据。也就是说,第一业务数据可以为一个或者多个业务数据。例如,数据操作请求中可以指定上述的查询条件。比如,数据操作请求可以指示对键值大于50且小于100的业务数据进行删除操作,该情况下,第一业务数据为键值位于50至100之间的业务数据。又比如,数据操作请求可以指示对用户ID为30的业务数据进行查询操作,该情况下,满足查询条件“用户ID为30”的所有业务数据为第一业务数据。应理解,实际应用中,用户可以指定一个或者多个查询条件。

本实施例中,数据处理系统中存储的所有业务数据可以维护在一张数据表中。数据表可以以键值对(Key-Value)模型的形式存储。也就是说,数据表中有序地存储大量的键值对(Key-Value pair),在数据表中这些键值对是按照Key的顺序排列的,即可以通过Key进行顺序查找。

存储表可以存储在多个存储节点中。一个示例中,每个存储节点中均存储有数据表中的所有业务数据,该情况下多个存储节点互为备份。另一个示例中,每个存储节点可以存储数据表中的部分业务数据,该情况下相当于对数据表进行分布式存储,即,数据表被分散存储在多个存储节点中。又一个示例中,一部分存储节点中存储的数据相同,而另一部分存储节点中存储的数据不同,该情况相当于将上述两种情况结合使用。

S202:在所述多个计算节点中确定目标计算节点,并通过所述目标计算节点确定所述第一业务数据在所述数据表中的键值。

具体的,可以在多个计算节点中选择一个计算节点作为目标计算节点。通过该目标计算节点对数据操作请求进行解析、查询等计算处理,确定出第一业务数据在数据表中的键值。

一种可能的实现方式中,可以获取多个计算节点对应的负载数据,并根据多个计算节点对应的负载数据,按照负载均衡原则,在多个计算节点中确定出目标计算节点。例如,将当前处于空闲状态的计算节点作为目标计算节点,或者,将当前负载较少的计算节点作为目标计算节点。

一种可能的实现方式中,数据操作请求为可以为SQL语句,SQL语句中包括一个或者多个查询条件用于指示第一业务数据。目标计算节点可以对SQL语句进行解析处理,从而确定出第一业务数据在数据表中的键值。

S203:根据所述第一业务数据的键值,在所述多个存储节点中确定目标存储节点,并在所述目标存储节点中对所述第一业务数据进行所述第一操作。

一种可能的实现方式中,若每个存储节点中均存储有数据表中的所有业务数据,则可以在多个存储节点中选择其中任意一个作为目标存储节点。示例性的,可以根据负载均衡原则,选择当前处于空闲状态的存储节点作为目标存储节点,或者,选择当前负载较少的存储节点作为目标存储节点。

另一种可能的实现方式中,若每个存储节点存储有数据表中的部分业务数据,则可以选择存储有第一业务数据的存储节点作为目标存储节点,或者,根据预设分配原则,确定出第一业务数据需要存储到哪个存储节点中,并将该存储节点作为目标存储节点。

确定出目标存储节点之后,在目标存储节点中对第一业务数据进行第一操作,例如,增加第一业务数据、删除第一业务数据、修改第一业务数据或者查询第一业务数据等。

本实施例中,通过部署多个计算节点和多个存储节点,使得数据处理系统的计算能力和存储能力得到水平扩展。并且,由于计算和存储是分层布局,使得计算节点和存储节点可以相互独立的进行水平扩展。这里的水平扩展是指可以扩充计算节点/存储节点的数量。

示例性的,当数据表中的业务数据的数据量较大时,可以对存储节点进行水平扩展,即增加存储节点的数量,从而使得每个存储节点中存储的业务数据量较小。这样,在数据表中的数据量较大的场景中,也能够保证业务数据的处理效率。

示例性的,当数据操作请求高并发时,还可以对计算节点进行水平扩展,即,增加计算节点的数量,从而高并发的数据操作请求可以被并行处理,提高数据处理效率。这样,在数据操作请求高并发的场景中,也能保证业务数据的处理时效性。

本实施例提供的业务数据的处理方法,包括:获取数据操作请求,所述数据操作请求用于指示在数据表中对第一业务数据进行第一操作,在多个计算节点中确定出目标计算节点,并通过目标计算节点确定出第一业务数据在数据表中的键值;根据第一业务数据的键值,在多个存储节点中确定出目标存储节点,并在目标存储节点中对第一业务数据进行第一操作。通过采用多个计算节点和多个存储节点,使得数据处理系统的计算能力和存储能力均能够得到水平扩展,从而提高数据处理效率。即使是在海量存储数据和/或数据操作请求高并发的场景中,也能够保证数据处理的时效性。

上述实施例的基础上,下面再结合几个具体的实施例对本申请方案进行更详细的描述。

图3为本申请实施例提供的另一种数据处理系统的示意图。如图3所示,在图1所示数据处理系统的基础上,本实施例的数据处理系统还可以包括负载均衡节点。负载均衡节点用于从终端设备接收数据操作请求,并将数据操作请求分发给各计算节点,以保证各计算节点的负载均衡。

本实施例中数据表采用分布式存储方式,也就是说,各存储节点分别存储数据表中的至少部分业务数据。继续参见图3,本实施例的数据处理系统还包括:管理节点。管理节点可用于对多个存储节点进行存储管理。具体的,管理节点存储有数据表中的各业务数据的元信息。其中,一个业务数据的元信息包括:该业务数据的键值以及存储该业务数据的存储节点的标识。

下面结合图4对图3所示的数据处理系统的数据处理过程进行描述。

图4为本申请实施例提供的另一种业务数据的处理方法的流程示意图。本实施例的方法可以包括:

S401:获取数据操作请求,所述数据操作请求用于指示在数据表中对第一业务数据进行第一操作。

S402:根据多个计算节点对应的负载参数,按照负载均衡原则,在所述多个计算节点中确定出目标计算节点。

S403:通过所述目标计算节点确定所述第一业务数据在所述数据表中的键值。

其中,S401至S403的具体实施方式可以参见图2所示实施例的描述,此处不作赘述。

S404:通过管理节点根据所述各业务数据的元信息以及所述第一业务数据的键值,确定出所述目标存储节点,所述目标存储节点为存储所述第一业务数据的存储节点。

S405:根据所述第一业务数据的键值,在所述目标存储节点中对所述第一业务数据进行所述第一操作。

一种可能的实现方式中,数据表包括多个分段,每个分段用于存储预设数据量的具有连续键值的多个业务数据。图5为本申请实施例提供的数据表中的分段的示意图。如图5所示,数据表中的每个分段用于存储1000个业务数据。比如,分段1用于存储键值为0-999的业务数据,分段2用于存储键值为1000-1999的业务数据。其中,K代表键值(Key),V代表值(Value)。

需要说明的是,图5所示的分段方式仅为一种可能的示例。本申请并不以此为限。实际应用中,还可以根据业务数据的数据量进行划分,比如每个分段用于存储64k字节的业务数据。

进一步的,数据表可以以分段为粒度分布式存储在多个存储节点中。也就是说,各个存储节点分别存储至少一个分段。相应的,管理节点中存储的每个业务数据的元信息中可以包括:该业务数据的键值、存储该业务数据的存储节点的标识、以及存储该业务数据的分段的标识。

基于分段的实现方式,S404中,管理节点还可以根据所述各业务数据的元信息以及所述第一业务数据的键值,确定出目标分段,其中,目标分段为所述多个分段中存储第一业务数据的分段。进而,S405中,可以根据所述第一业务数据的键值以及所述目标分段,在所述目标存储节点中对所述第一业务数据进行所述第一操作。

一个示例中,可以按照分段的顺序依次存储到存储节点中,例如,将分段1-10存储至存储节点1中,将分段11-20存储至存储节点2中,将分段21-30存储至存储节点3中,以此类推。

然而基于上述示例,在一些场景中可能导致其中一个或者若干个存储节点的访问热度较高。例如,在业务数据开始导入数据表时,可能出现前几个存储节点的负载较高,而后几个存储节点的负载较低的问题。

为了解决上述问题,本实施例的管理节点还可用于对多个分段进行调度管理,以保证各个存储节点的负载均衡,进而提高数据处理效率。下面结合两种可能的实现方式进行描述。

一种可能的实现方式中,管理节点可以对各个分段进行预打散。具体的,在数据表被创建后,对数据表进行划分得到多个分段,通过管理节点将所述多个分段的顺序打散,并按照均衡分布原则,将打散后的所述多个分段存储在所述多个存储节点中。

图6为本申请实施例提供的分段在存储节点间的分布示意图。如图6所示,以4个存储节点为例,假设数据表被划分为16个分段,这16个分段被打散后均匀存储在4个存储节点中。通过对各个分段进行预打散,使得分段是随机、均匀分布在多个存储节点中,能够避免某个存储节点的负载较高形成局部热点的问题,保证了各个存储节点的负载均衡。

另一种可能的实现方式中,针对新增存储节点后可能导致分段分布不均衡的问题,本实施例中,响应于新增存储节点,可以通过管理节点将多个分段中的至少部分分段调度到新增存储节点中,以使各存储节点中的分段数量趋于均衡,进而保证各个存储节点的负载均衡。

本实施例中,通过将数据表划分为多个分段,每个分段中存储连续键值的业务数据,这样,在一些需要对连续业务数据进行操作的场景中,能够提高业务数据的处理效率。并且,通过将多个分段随机、均匀地分布在多个存储节点中,能够保证各个存储节点的负载均衡。

在一些业务场景中,可能需要频繁地对数据表中的业务数据进行大量删除。例如,有些业务数据在每天特定时刻存储到数据表,经过处理完成后需要删除,然后在第二天的特定时刻再存入新的业务数据,不断重复上述过程。这样,会导致数据表中存在大量的空分段。随着空分段的数量增多,会导致管理节点的管理难度加大,影响调度效率。

为了解决上述问题,本实施例中,管理节点还具有对空分段进行合并的功能。具体的,响应于检测到数据表中存在至少两个第一分段,通过管理节点将所述至少两个第一分段进行合并处理,其中,第一分段存储的业务数据的数据量小于预设阈值,例如,第一分段可以为空分段。

在上述实施例的基础上,本实施例的数据处理系统中还可以包括:每个存储节点对应的至少一个副本节点。下面结合图7进行描述。

图7为本申请实施例提供的存储节点以及副本节点的示意图。如图7所示,每个存储节点对应有两个副本节点。存储节点1的副本节点为:存储节点3和存储节点5,存储节点2的副本节点为:存储节点4和存储节点6。

本实施例中,可以通过管理节点将每个存储节点中的数据复制到该存储节点对应的副本节点中。

可选的,采用采用分布式一致协议(例如Raft协议)在存储节点及其副本节点之间进行数据复制,保证存储节点及其对应的副本节点之间的数据一致性。

需要说明的是,本实施例对于副本节点的数量不作限定,可以根据实际应用场景进行合理设置。

本实施例中,通过为每个存储节点设置至少一个副本节点,使得当存储节点故障后,还可以通过该存储节点的副本节点获取数据,不会导致数据丢失,提高数据处理系统的容灾能力。

在上述任意实施例的基础上,本实施例的数据处理系统可以被灵活部署到实际应用场景中。例如:可以根据应用场景的需求灵活设置副本节点的数量;还可以对计算节点/存储节点进行同城部署或者跨同城机房部署,等。下面结合图8进行举例说明。

图8为本申请实施例提供的一种数据处理系统的部署方式的示意图。如图8所示,以3个互联网数据中心(Internet Data Center,IDC)机房为例,每个IDC机房内可以部署1个负载均衡节点、3个计算节点、以及2个存储节点。管理节点可以跨同城多IDC部署。另外,图8中示例了每个存储节点具有2个副本节点,存储节点及其副本节点分别部署在不同的IDC机房内。这样,不同IDC机房内的存储节点互为备份,当其中一个IDC机房故障后,还可以通过其他的IDC机房进行数据处理,保证了数据处理系统的容灾能力。

需要说明的是,图8所示的部署方式仅为一种可能的示例,当应用于其他场景时,还可以采用其他的部署方式,本申请实施例对此不作限定。

下面结合一个具体的应用场景,对本申请实施例的数据处理系统的的应用方式进行描述。

以金融信贷应用场景为例,该应用场景中,针对一些业务数据可能并不是实时处理,而是需要在每天的指定时间(例如0点)进行批量处理(也可以称为跑批处理)。其中,对业务数据进行跑批处理时,涉及到对数据表进行大量的增加、删除、修改、查询操作。并且,对业务数据处理的总时效要求很高,通常要求在预设时长(例如两个小时内)处理完成。

图9为本申请实施例提供的数据处理系统的应用场景示意图。如图9所示,金融信贷应用场景中存在多个数据源,每个数据源产生大量的业务数据,例如:贷款单数据、明细数据、用户数据等。本实施例中,可以通过数据迁移工具,将各个数据源产生的业务数据迁移至本实施例中的数据处理系统中。在数据处理系统中进行跑批处理,然后将跑批结果同步到大数据平台。由于本实施例中的数据处理系统的水平扩展特性,支持扩展多个计算节点和多个存储节点,能够大幅提升跑批处理的效率,缩短跑批处理的耗时。

图10为本申请实施例提供的业务数据的处理装置的结构示意图,本实施例的装置可以为软件和/或硬件的形式。如图10所示,本实施例提供的业务数据的处理装置1000,可以包括:获取模块1001、确定模块1002和处理模块1003。该业务数据的处理装置1000可应用于数据处理系统,所述数据处理系统包括:多个计算节点和多个存储节点。

其中,获取模块1001,用于获取数据操作请求,所述数据操作请求用于指示在数据表中对第一业务数据进行第一操作,所述数据表存储在所述多个存储节点中;

确定模块1002,用于在所述多个计算节点中确定目标计算节点,并通过所述目标计算节点确定所述第一业务数据在所述数据表中的键值;

处理模块1003,用于根据所述第一业务数据的键值,在所述多个存储节点中确定目标存储节点,并在所述目标存储节点中对所述第一业务数据进行所述第一操作。

一种可能的实现方式中,各所述存储节点分别存储所述数据表中的至少部分业务数据;所述数据处理系统还包括:管理节点,所述管理节点存储有所述数据表中的各业务数据的元信息,其中,一个业务数据的元信息包括:该业务数据的键值以及存储该业务数据的存储节点的标识;所述处理模块1003具体用于:

通过所述管理节点根据所述各业务数据的元信息以及所述第一业务数据的键值,确定出所述目标存储节点,所述目标存储节点为存储所述第一业务数据的存储节点。

一种可能的实现方式中,所述数据表包括多个分段,每个所述分段用于存储预设数据量的具有连续键值的多个业务数据;各所述存储节点分别存储至少一个所述分段;一个业务数据的元信息还包括:存储该业务数据的分段的标识;

所述处理模块1003具体用于:通过所述管理节点根据所述各业务数据的元信息以及所述第一业务数据的键值,确定出所述目标存储节点以及目标分段,所述目标分段为所述多个分段中存储所述第一业务数据的分段。

一种可能的实现方式中,所述处理模块1003具体用于:

根据所述第一业务数据的键值以及所述目标分段,在所述目标存储节点中对所述第一业务数据进行所述第一操作。

一种可能的实现方式中,所述处理模块1003还用于:

响应于检测到所述数据表被创建,对所述数据表进行划分得到所述多个分段,通过所述管理节点将所述多个分段的顺序打散,并按照均衡分布原则,将打散后的所述多个分段存储在所述多个存储节点中;和/或,

响应于检测到新增存储节点,通过所述管理节点将所述多个分段中的至少部分分段调度到所述新增存储节点中,以使各存储节点中的分段数量趋于均衡。

一种可能的实现方式中,所述处理模块1003还用于:

响应于检测到所述数据表中存在至少两个第一分段,通过所述管理节点将所述至少两个第一分段进行合并处理,所述第一分段中存储的业务数据的数据量小于预设阈值。

一种可能的实现方式中,所述数据处理系统中还包括:每个存储节点对应的至少一个副本节点;所述处理模块1003还用于:

通过所述管理节点将所述存储节点中的数据复制到所述存储节点对应的副本节点中。

一种可能的实现方式中,所述确定模块1002具体用于:

获取所述多个计算节点对应的负载数据;

根据所述多个计算节点对应的负载数据,按照负载均衡原则,在所述多个计算节点中确定出所述目标计算节点。

本实施例提供的业务数据的处理装置,可用于执行上述任一方法实施例中的技术方案,其实现原理和技术效果类似,此处不作赘述。

图11为本申请实施例提供的电子设备的结构示意图。如图11所示,本实施例的电子设备1100,包括:包括:处理器1101以及存储器1102。

其中,存储器1102,用于存储计算机程序;处理器1101,用于执行存储器中存储的计算机程序,以实现上述实施例中业务数据的处理方法中的一个或者多个步骤。具体可以参见前述方法实施例中的相关描述,其实现原理和技术效果类似,本实施例此处不再赘述。

可选地,存储器1102既可以是独立的,也可以跟处理器1101集成在一起。

当所述存储器1102是独立于处理器1101之外的器件时,所述电子设备1100还可以包括:总线1103,用于连接所述存储器1102和处理器1101。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序用于实现如上任一方法实施例中的业务数据的处理方法中的一个或者多个步骤,其实现原理和技术效果类似,此处不作赘述。

本申请实施例还提供一种芯片,包括:存储器和处理器,所述存储器中存储有计算机程序,所述处理器运行所述计算机程序执行上述任一方法实施例中的业务数据的处理方法中的一个或者多个步骤,其实现原理和技术效果类似,此处不作赘述。

本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例中的业务数据的处理方法中的一个或者多个步骤,其实现原理和技术效果类似,此处不作赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。

应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。

总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 业务数据转发、业务数据处理方法、装置及电子设备
  • 一种业务数据处理方法、业务处理方法及设备
技术分类

06120112810944