分布式数据库的数据操作请求处理方法及装置制造方法及图纸

技术编号:15724665 阅读:104 留言:0更新日期:2017-06-29 10:50
本申请公开了分布式数据库的数据操作请求处理方法及装置,用以解决现有技术中分布式数据库的数据操作请求路由方式效率低的问题。本申请公开的一种分布式数据库的数据操作请求处理方法包括:客户端接收数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名;所述客户端根据所述关键字和所述表名,当确定所述数据表为分区表时,获取与所述数据操作请求和所述分区表对应的分区策略;所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。

【技术实现步骤摘要】
分布式数据库的数据操作请求处理方法及装置
本申请涉及分布式数据库领域,尤其涉及分布式数据库的数据操作请求处理方法及装置。
技术介绍
为了解决单级数据库的扩容问题,分布式数据库作为一种解决方法被广泛采用。相对于传统人工分库分表的数据库部署,分布式数据库提供了数据分区的功能以支持数据横向扩展。分布式数据库可以使用由多个独立节点组成、节点间采用网络互联的计算机集群实现数据库的分布式存储、计算等功能。分布式数据库可以使用相互独立的计算节点,则同一张数据表的不同数据可以根据分区策略被分配到不同的节点进行存储,考虑到网络时延和带宽原因,跨节点的数据操作效率一般远小于节点内部的数据操作效率,为了保证分布式数据库的高效运行,针对不同数据的数据操作请求需要被尽可能地路由到其对应的存储节点,其中,数据操作请求可以是诸如结构化查询语言(StructuredQueryLanguage,SQL)请求等可用于请求操作分布式数据库中数据的请求。在现有技术中,由于分布式数据库的分区规则的复杂性,数据操作请求路由往往通过少量的服务器(称为路由代理服务器)集中部署。具体地,分布式数据库对应的客户端可以与路由代理服务器建立会话并发出数据操作请求,路由代理服务器接收到数据操作请求后,根据数据操作请求所依赖的数据分区,将数据操作请求转发到该分区所处节点进行处理,由于处理结果也需要路由代理服务器转发回到客户端。但是,由于路由代理服务器往往只有少数机器组成,其接受数据处理请求的吞吐量较小,从而导致数据操作请求路由效率低。
技术实现思路
本申请实施例提供分布式数据库的数据操作请求处理方法及装置,用以解决现有技术中分布式数据库的数据操作请求路由方式效率低的问题。本申请实施例采用下述技术方案:本申请实施例提供的一种分布式数据库的数据操作请求处理方法,包括:客户端接收数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名;所述客户端根据所述关键字和所述表名,当确定所述数据表为分区表时,获取与所述数据操作请求和所述分区表对应的分区策略;所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。本申请实施例提供的一种分布式数据库的数据操作请求处理装置,所述装置位于客户端,包括:第一接收模块,接收数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名;第一获取模块,根据所述关键字和所述表名,当确定所述数据表为分区表时,获取与所述数据操作请求和所述分区表对应的分区策略;发送模块,根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。本申请实施例提供的另一种分布式数据库的数据操作请求处理方法,包括:服务端接收客户端发送的数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名,所述数据表为分区表;所述服务端根据所述关键字和所述表名,获取与所述数据操作请求和所述分区表对应的分区策略;所述服务端将所述分区策略返回给所述客户端,以便于所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。本申请实施例提供的另一种分布式数据库的数据操作请求处理装置,所述装置位于服务端,包括:第二接收模块,接收客户端发送的数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名,所述数据表为分区表;第二获取模块,根据所述关键字和所述表名,获取与所述数据操作请求和所述分区表对应的分区策略;返回模块,将所述分区策略返回给所述客户端,以便于所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。本申请实施例提供的再一种分布式数据库的数据操作请求处理方法,包括:客户端接收数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名;所述客户端对所述数据操作请求进行解析,获得所述表名;所述客户端根据所述表名,当确定所述数据表为分区表时,对所述数据操作请求进行参数化处理,获得所述关键字;所述客户端根据所述表名和所述关键字,获取与所述数据操作请求和所述分区表对应的分区策略;所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。本申请实施例提供的再一种分布式数据库的数据操作请求处理装置,所述装置位于客户端,包括:请求接收模块,收数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名;解析模块,对所述数据操作请求进行解析,获得所述表名;参数化处理模块,根据所述表名,当确定所述数据表为分区表时,对所述数据操作请求进行参数化处理,获得所述关键字;分区策略第一获取模块,根据所述表名和所述关键字,获取与所述数据操作请求和所述分区表对应的分区策略;请求转发模块,根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:将原来由少数服务器完成的数据操作请求路由工作,转移至由分布式数据库中的各客户端完成,由各客户端对数据操作请求进行转发,从而可以提高接收数据处理请求的吞吐量,提高数据操作请求路由效率,因此,可以部分或全部地解决现有技术中的问题。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例提供的一种分布式数据库的数据操作请求处理方法的流程示意图;图2为本申请实施例提供的另一种分布式数据库的数据操作请求处理方法的流程示意图;图3为本申请实施例提供的再一种分布式数据库的数据操作请求处理方法的流程示意图;图4为本申请实施例提供的在一种实际应用场景下,分布式数据库的数据操作请求处理方法对应的一种系统结构示意图;图5为本申请实施例提供的在一种实际应用场景下,分布式数据库的数据操作请求处理方法的详细流程示意图;图6为本申请实施例提供的对应于图1的分布式数据库的数据操作请求处理装置结构示意图;图7为本申请实施例提供的对应于图2的分布式数据库的数据操作请求处理装置结构示意图;图8为本申请实施例提供的对应于图3的分布式数据库的数据操作请求处理装置结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的方案的核心思想是:通过客户端与服务端的动态交互,以及客户端上保存(为了提高速度,具体可以保存在相应的缓存中)的服务于数据操作请求路由过程的相关数据,实现基于复杂分区规则的全自动数据操作请求路由过程。需要说明的是,本申请中提到的“路由”均是指分布式数据库的数据操作请求的路由,而非一般理解的IP数据包的路由。在本申请实施例中,分布式数据库中可以有两类数据表。第一类是未分区表,对于一张未分区表,其可以存储在分布式数据本文档来自技高网...
分布式数据库的数据操作请求处理方法及装置

【技术保护点】
一种分布式数据库的数据操作请求处理方法,其特征在于,包括:客户端接收数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名;所述客户端根据所述关键字和所述表名,当确定所述数据表为分区表时,获取与所述数据操作请求和所述分区表对应的分区策略;所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。

【技术特征摘要】
1.一种分布式数据库的数据操作请求处理方法,其特征在于,包括:客户端接收数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名;所述客户端根据所述关键字和所述表名,当确定所述数据表为分区表时,获取与所述数据操作请求和所述分区表对应的分区策略;所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。2.如权利要求1所述的方法,其特征在于,所述客户端根据所述关键字和所述表名,当确定所述数据表为分区表时,获取与所述数据操作请求和所述分区表对应的分区策略,具体包括:所述客户端对所述数据操作请求进行解析,获得所述表名;所述客户端根据所述表名,在所述客户端上保存的分区表模式信息和/或所述客户端的服务端上保存的分区表模式信息中进行查询,以确定所述数据表是否为分区表;若是,对所述数据操作请求进行参数化处理,获得所述关键字,并根据所述关键字和所述表名,获取与所述数据操作请求和所述分区表对应的分区策略。3.如权利要求2所述的方法,其特征在于,所述客户端根据所述表名,在所述客户端上保存的分区表模式信息和/或所述客户端的服务端上保存的分区表模式信息中进行查询,以确定所述数据表是否为分区表,具体包括:所述客户端根据所述表名,在所述客户端上保存的分区表模式信息中进行查询,以确定所述客户端上保存的分区表模式信息是否包含所述数据表对应的分区表模式信息;若是,根据所述客户端上保存的分区表模式信息,确定所述数据表是否为分区表;否则,根据所述表名,在所述客户端的服务端上保存的分区表模式信息中查询,以确定所述数据表是否为分区表,以及若查询获得所述数据表对应的分区表模式信息,将所述数据表对应的分区表模式信息保存至所述客户端上。4.如权利要求1所述的方法,其特征在于,获取与所述数据操作请求和所述分区表对应的分区策略,具体包括:所述客户端根据所述关键字和所述表名,从所述客户端和/或所述客户端的服务端,获取与所述数据操作请求和所述分区表对应的分区策略。5.如权利要求4所述的方法,其特征在于,所述客户端根据所述关键字和所述表名,从所述客户端和/或所述客户端的服务端,获取与所述数据操作请求和所述分区表对应的分区策略,具体包括:所述客户端根据所述关键字和所述表名,确定所述客户端上保存的分区策略中是否包含与所述数据操作请求和所述分区表对应的分区策略;若是,从所述客户端获取与所述数据操作请求和所述分区表对应的分区策略;否则,从所述客户端的服务端获取与所述数据操作请求和所述分区表对应的分区策略,以及将与所述数据操作请求和所述分区表对应的分区策略保存至所述客户端上。6.如权利要求5所述的方法,其特征在于,从所述客户端的服务端获取与所述数据操作请求和所述分区表对应的分区策略,具体包括:所述客户端将所述数据操作请求发送给所述客户端的服务端,以使所述客户端的服务端根据所述数据操作请求包含的所述关键字和所述表名,确定与所述数据操作请求和所述分区表对应的分区策略并返回给所述客户端。7.如权利要求6所述的方法,其特征在于,所述客户端将所述数据操作请求发送给所述客户端的服务端,具体包括:所述客户端将携带所述数据操作请求的虚拟表查询请求发送给所述客户端的服务端,以使所述服务端通过对应的虚拟表,确定与所述数据操作请求和所述分区表对应的分区策略并返回给所述客户端。8.如权利要求1所述的方法,其特征在于,所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器,具体包括:所述客户端根据所述分区策略以及所述关键字,确定所述数据操作请求所请求操作的数据所处分区的分区物理标识;根据所述分区物理标记,在保存的分区物理位置信息中确定所述分区物理标记对应的分区物理位置信息;根据所述分区物理标记对应的分区物理位置信息,确定所述数据所请求操作的数据所处的服务器的地址,并将所述数据操作请求发送给所述服务器。9.如权利要求8所述的方法,其特征在于,当所述分区为范围range分区时,所述客户端根据所述分区策略以及所述关键字,确定所述数据操作请求所请求操作的数据所处分区的分区物理标识,具体包括:所述客户端获取所述分区表对应的分区表模式信息;所述客户端根据所述分区表对应的分区表模式信息、所述分区策略以及所述关键字,确定所述数据操作请求所请求操作的数据所处分区的分区物理标识。10.如权利要求1~9任一项所述的方法,其特征在于,所述客户端上保存的分区策略和/或分区表模式信息和/或分区物理位置信息分别保存在对应的缓存中。11.一种分布式数据库的数据操作请求处理方法,其特征在于,包括:服务端接收客户端发送的数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名,所述数据表为分区表;所述服务端根据所述关键字和所述表名,获取与所述数据操作请求和所述分区表对应的分区策略;所述服务端将所述分区策略返回给所述客户端,以便于所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。12.如权利要求10所述的方法,其特征在于,服务端接收客户端发送的数据操作请求,具体包括:服务端接收客户端发送的携带数据操作请求的虚拟表查询请求。13.如权利要求12所述的方法,其特征在于,所述服务端根据所述数据操作请求,确定与所述数据操作请求和所述分区表对应的分区策略,具体包括:所述服务端响应于所述虚拟表查询请求,通过对应的虚拟表对所述数据操作请求进行解析,确定与所述数据操作请求和所述分区表对应的分区策略。14.如权利要求11所述的方法,其特征在于,所述服务端将所述分区策略返回给所述客户端,具体包括:所述服务端将所述分区策略序列化;所述服务端将序列化的分区策略返回给所述服务端,以便于所述客户端对所述序列化的分区策略反序列化后使用。15.一种分布式数据库的数据操作请求处理方法,其特征在于,包括:客户端接收数...

【专利技术属性】
技术研发人员:陈萌萌冯柯庄明强陈俊全万全威
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1