一种数据处理方法、装置、系统、设备及介质与流程

文档序号:25420375发布日期:2021-06-11 21:31阅读:55来源:国知局
一种数据处理方法、装置、系统、设备及介质与流程

本公开涉及数据库技术领域,尤其涉及一种数据处理方法、装置、系统、设备及介质。



背景技术:

为了防止数据丢失,数据库中可以采用主从架构的多副本集提供数据和服务的冗余备份,进一步还可以采用分片集群的方式存储更多数据。

但是,上述多副本集或分片集群的架构,节点之间需要进行数据同步,磁盘读写量较大,影响数据处理效率,并且计算和存储在相同的节点上,扩展灵活性低。



技术实现要素:

为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据处理方法、装置、系统、设备及介质。

本公开实施例提供了一种数据处理系统,所述数据处理系统包括计算节点集群和存储引擎,所述计算节点集群和所述存储引擎通信连接,所述计算节点集群中包括至少两个计算节点,所述存储引擎包括存储节点集群,所述计算节点用于执行:接收数据处理请求;将所述数据处理请求发送至存储引擎;接收所述存储引擎返回的初始数据处理结果,并对所述初始数据处理结果进行计算得到目标数据处理结果。

本公开实施例还提供了一种数据处理方法,所述方法应用于计算节点,包括:

接收数据处理请求;

将所述数据处理请求发送至存储引擎;其中,至少两个所述计算节点组成计算节点集群,所述存储引擎包括存储节点集群;

接收所述存储引擎返回的初始数据处理结果,并对所述初始数据处理结果进行计算得到目标数据处理结果。

本公开实施例还提供了一种数据处理装置,所述装置计算节点,包括:

请求接收模块,用于接收数据处理请求;

请求发送模块,用于将所述数据处理请求发送至存储引擎;其中,至少两个所述计算节点组成计算节点集群,所述存储引擎包括存储节点集群;

数据处理模块,用于接收所述存储引擎返回的初始数据处理结果,并对所述初始数据处理结果进行计算得到目标数据处理结果。

本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的数据处理方法。

本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的数据处理方法。

本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的数据处理系统,包括计算节点集群和存储引擎,计算节点集群和存储引擎通信连接,计算节点集群中包括至少两个计算节点,存储引擎包括存储节点集群,计算节点用于执行:接收数据处理请求;将数据处理请求发送至存储引擎;接收存储引擎返回的初始数据处理结果,并对初始数据处理结果进行计算得到目标数据处理结果。计算节点为集群设置,由于所有的计算节点共用一个存储引擎,不需要计算节点之间的数据同步,计算节点和存储节点分离,可以更加有效的使用不同规格的主机来部署各节点,提高了集群的可扩展性,弹性增加和减少计算节点、存储节点都更加方便,更换存储引擎更加灵活;计算节点可以接收数据处理请求,将数据处理请求发送至存储引擎,接收存储引擎返回的初始数据处理结果,并对初始数据处理结果进行计算得到目标数据处理结果。计算节点和存储引擎进行数据处理的过程是分离的,计算节点之间不再需要进行数据同步,提高了数据处理的效率,减少了磁盘读写量。

附图说明

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

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

图1为本公开实施例提供的一种数据处理系统的结构示意图;

图2为本公开实施例提供的一种存储引擎的结构示意图;

图3为本公开实施例提供的一种数据处理方法的流程示意图;

图4为本公开实施例提供的一种数据处理装置的结构示意图;

图5为本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

现有技术中,数据库可以采用多节点副本集的高可用架构,是由一个主(primary)节点和多个从(secondary)节点构建的集群,在主节点故障时,从节点可以升级为主节点,保证集群的高可用。进一步的,数据库还可以通过将数据分散存储到多个分片(shard)上来实现高可扩展性,分片集群可以由以下几个组件组成:分片(shard),每个分片包含了分片数据的一个子集,每个分片是一个副本集;路由组件,是查询路由的角色,提供着客户端应用和分片集群的接口;配置中心,存储集群的元数据和配置文件,它本身也是一个副本集。数据可以按照指定的分片策略打散到不同的分片上,并且将配置信息存储到配置中心中,分片策略主要有哈希(hash)分片和范围(range)分片。相对于副本集,分片集群可以存储更多的数据,提供更大的访问能力,而且可以弹性伸缩。

上述副本集提供了数据和服务的冗余备份,通过一致性协议保证数据一致性和高可用;分片集群在副本集的基础上又增加了可扩展功能,可以通过增加路由组件、分片的个数来扩展集群,使得数据库系统能存储和处理更多的数据。但是,无论是副本集还是分片集群,其计算和存储均是一体的,副本集是计算和存储在相同的节点上,分片集群是对等无共享(share-nothing)的集群结构,在弹性扩展时无法准确的计算或存储的某一种资源,不够灵活,并且数据处理的效率较低。为了解决上述问题,本公开实施例中提供了一种数据处理系统。

图1为本公开实施例提供的一种数据处理系统的结构示意图,该数据处理系统10包括计算节点集群11和存储引擎12,计算节点集群11和存储引擎12通信连接,计算节点集群11中包括至少两个计算节点,存储引擎12包括存储节点集群121,计算节点用于执行:接收数据处理请求,将数据处理请求发送至存储引擎12,接收存储引擎12返回的初始数据处理结果,并对初始数据处理结果进行计算得到目标数据处理结果。

如图1所示,应用程序20可以发送数据处理请求给计算节点集群11,计算节点集群11中的每一个计算节点均可以接收应用程序20发送的数据处理请求,计算节点主要负责数据处理,不负责存储大量的数据,因此需要部署在cpu和内存密集型的硬件上。计算节点集群11中包括的计算节点的数量可以根据实际情况进行调整,例如当请求量增大时,可以增加计算节点,以提高计算能力。

可选的,应用程序20和计算节点集群11之间可以设置一个负载均衡器30,可以将应用程序20的请求分散到一个计算节点集群11中的多个计算节点上去。也即,应用程序20可以直接访问计算节点集群11中的某个计算节点,也可以通过负载均衡器30把请求分散到各个计算节点中。

参见图1,存储引擎12可以包括存储节点集群121,存储节点集群121中包括至少两个存储节点组,每个存储节点组中包括至少两个存储节点,每个存储节点组中各存储节点之间通过一致性协议同步数据。图中示出了两个存储节点组,每个存储节点组示例性的包括了三个存储节点,本公开实施例中对存储节点组和每个存储节点组中包括的存储节点的数量不作限定,可以根据实际情况进行调整。每个存储节点组可以采用主从架构的多个存储节点来同步数据,每个存储节点组中各存储节点之间通过一致性(raft)协议保持数据的一致性,每个存储节点管理本节点上的数据。

如图1所示,存储引擎12还可以包括管理节点集群122,管理节点集群122与计算节点集群11、存储节点集群121通信连接,管理节点集群122中包括至少两个管理节点,管理节点用于将路由信息发送至计算节点,以使计算节点基于数据处理请求中的路由查询信息和路由信息,确定路由查询信息对应的存储节点信息。管理节点的数量可以根据实际情况进行设定,用于管理元数据和路由信息等。管理节点集群122可以为高可用集群(highavailabilitycluster),可以采用主从架构的多个管理节点来同步数据,各管理节点之间通过一致性协议保持数据的一致性。

本公开实施例中,上述存储节点集群121和管理节点集群122构成了一个分布式的独立的存储引擎12。图2为本公开实施例提供的一种存储引擎的结构示意图,该存储引擎12还可以包括服务节点123,服务节点123与管理节点集群122、存储节点集群121通信连接,该服务节点123可以包括控制(conn)模块、执行器(executor)和应用程序(applicationprogramminginterface,api)接口。其中应用程序接口是访问存储引擎12的接口层,对访问进行了整合并对内部的路由和数据均整合封装,使得存储引擎12可以作为一个单独的器件被用户访问。服务节点123可以建立读写服务进程,调用应用程序接口对存储节点的数据进行读写。

如图2所示,管理节点集群122中的每个管理节点可以包括路由信息(routeinformation)管理器、事务(transaction)模块和元数据管理器(metadatamanager)。路由信息管理器可以存储路由信息,该路由信息用于基于计算节点发送的路由查询信息确定对应的存储节点信息。元数据管理器用于存储数据库的元数据信息。本公开实施例中管理节点为轻量级的节点,只存储路由信息和元数据信息等,不负责大规模的整合计算,整合计算由计算节点实现。

本公开实施例中,计算节点和存储节点均支持增加或删除,也即由于计算节点和存储节点分离,可以更加方便地弹性增加和减少计算节点和存储节点的数量,以提高集群地扩展性。并且,存储节点集群121和管理节点集群122均可以采用多节点副本集的架构,由一个主(primary)节点和多个从(secondary)节点构建集群,在主节点故障时,从节点可以升级为主节点,保证各集群的高可用。

并且,本公开实施例中存储引擎12可以为mongodb存储引擎或rocksdb存储引擎。mongodb存储引擎为wiredtiger,可以将wiredtiger分离出来,组建单独的存储引擎,该存储引擎可以提供一个应用程序接口,以供计算节点调用。存储引擎12还可以采用rocksdb存储引擎,具体组建方式、系统结构与上述wiredtiger相同。可以理解的是,上述mongodb存储引擎或rocksdb存储引擎均为示例,其他能够实现相应功能的存储引擎也可适用。

本公开实施例中,数据处理系统中将计算节点和存储节点分离,可以更加有效的使用不同规格的主机来部署各节点;提高了集群的可宽展性,弹性增加和减少计算节点、存储节点都更加方便;更换存储引擎更加灵活,比如存储引擎可以为分布式wiredtiger存储引擎,也可以更换成分布式rocksdb存储引擎等;分布式的存储引擎可以独立出来,作为单独的产品用在其他场合。

本公开实施例提供的数据处理系统,计算节点无状态,不区分读写节点,弹性伸缩更加方便,由于所有的计算节点共用一个存储引擎,不需要计算节点之间的数据同步,计算节点和存储引擎进行数据处理的过程是分离的,提高了数据处理的效率,减少了磁盘读写量。

图3为本公开实施例提供的一种数据处理方法的流程示意图,该方法可以由数据处理装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法应用于计算节点,包括:

步骤101、接收数据处理请求。

数据处理请求可以为用户在使用应用程序的过程中发起的,用于进行具体的数据处理,本公开实施例中对具体的数据处理请求不作限定,例如数据处理请求可以包括数据查询请求、数据存储请求等。

应用程序可以与数据处理系统中的一个计算节点建立连接,并发送数据处理请求给该计算节点,应用程序也可以通过负载均衡器与多个计算节点建立连接,将数据处理请求分散至多个计算节点。

步骤102、将数据处理请求发送至存储引擎;其中,至少两个计算节点组成计算节点集群,存储引擎包括存储节点集群。

本公开实施例中,计算节点的数量可以为多个,至少两个计算节点组成计算节点集群,存储引擎包括存储节点集群,存储节点集群中包括至少两个存储节点组,每个存储节点组中包括至少两个存储节点,每个存储节点组中各存储节点之间通过一致性协议同步数据。

本公开实施例中,数据处理请求中可以包括路由查询信息,将数据处理请求发送至存储引擎,可以包括:基于路由查询信息和预先从存储引擎的管理节点中获取的路由信息,确定路由查询信息对应的存储节点信息;将数据处理请求发送至存储引擎中存储节点信息对应的存储节点。存储节点信息可以包括具体的存储节点组标识和存储节点标识,基于存储节点信息可以定位到具体的存储节点,本公开实施例对存储节点组标识和存储节点标识的具体表现形式不作限定,例如可以通过字母或数字等表示。

当计算节点启动时可以发送信息获取请求给存储引擎中的管理节点,接收存储引擎返回的路由信息和元数据信息,并将路由信息和元数据信息存储在本地缓存中。可以理解的是,当路由信息和/或元数据信息变更时,计算节点也可以更新本地缓存。

计算节点接收到数据处理请求之后,可以根据数据处理请求中的路由查询信息和本地缓存中的路由信息确定对应的存储节点信息,路由查询信息可以视为请求转发的索引信息,路由信息中可以预先存储路由查询信息和存储节点信息之间的关联关系,基于该路由查询信息可以在路由信息中进行查找,以确定对应的存储节点信息。之后,计算节点可以调用存储引擎中服务节点提供的应用程序接口,将数据处理请求发送给该存储节点信息对应的存储节点。

步骤103、接收存储引擎返回的初始数据处理结果,并对初始数据处理结果进行计算得到目标数据处理结果。

本公开实施例中,存储引擎中的存储节点接收到数据处理请求之后,可以进行数据处理,得到初始数据处理结果,其中,该初始数据处理结果可以理解为数据处理时所需的数据。存储引擎中的存储节点可以将初始数据处理结果返回给计算节点,计算节点对初始数据处理结果进行必要的整理和计算处理,可以得到目标数据处理结果。目标数据处理结果为最终的处理结果,计算节点可以将该目标数据处理结果返回给应用程序。

现有技术中,计算和存储在相同的节点上,如果请求数量过多或者存储空间不够时,只能增加分片,同时扩展计算资源和存储资源,不能灵活地进行一种资源的扩展。而本申请中,计算节点无状态,不区分读写节点,弹性伸缩更加方便,由于所有的计算节点共用一个存储引擎,不需要计算节点之间的数据同步,也不需要生成操作日志,减少了磁盘的读写量。

本公开实施例提供的数据处理方案,计算节点可以接收数据处理请求,将数据处理请求发送至存储引擎,接收存储引擎返回的初始数据处理结果,并对初始数据处理结果进行计算得到目标数据处理结果。采用上述技术方案,计算节点和存储引擎进行数据处理的过程是分离的,计算节点之间不再需要进行数据同步,提高了数据处理的效率,减少了磁盘读写量。

图4为本公开实施例提供的一种数据处理装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图4所示,该装置设置于计算节点,包括:

请求接收模块201,用于接收数据处理请求;

请求发送模块202,用于将所述数据处理请求发送至存储引擎;其中,至少两个所述计算节点组成计算节点集群,所述存储引擎包括存储节点集群;

数据处理模块203,用于接收所述存储引擎返回的初始数据处理结果,并对所述初始数据处理结果进行计算得到目标数据处理结果。

本公开实施例提供的数据处理方案,计算节点可以接收数据处理请求,将数据处理请求发送至存储引擎,接收存储引擎返回的初始数据处理结果,并对初始数据处理结果进行计算得到目标数据处理结果。采用上述技术方案,计算节点和存储引擎进行数据处理的过程是分离的,计算节点之间不再需要进行数据同步,提高了数据处理的效率,减少了磁盘读写量。

可选的,所述数据处理请求中包括路由查询信息;所述请求发送模块202具体用于:

基于所述路由查询信息和预先从所述存储引擎的管理节点中获取的路由信息,确定所述路由查询信息对应的存储节点信息;

将所述数据处理请求发送至存储引擎中所述存储节点信息对应的存储节点。

本公开实施例所提供的数据处理装置可执行本发明任意实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。

图5为本公开实施例提供的一种电子设备的结构示意图。如图5所示,电子设备400包括一个或多个处理器401和存储器402。

处理器401可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备400中的其他组件以执行期望的功能。

存储器402可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器401可以运行所述程序指令,以实现上文所述的本公开的实施例的数据处理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。

在一个示例中,电子设备400还可以包括:输入装置403和输出装置404,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。

此外,该输入装置403还可以包括例如键盘、鼠标等等。

该输出装置404可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置404可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图5中仅示出了该电子设备400中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备400还可以包括任何其他适当的组件。

除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据处理方法。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据处理方法。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

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

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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