数据库访问方法、设备、系统及存储介质技术方案

技术编号:34966366 阅读:24 留言:0更新日期:2022-09-17 12:47
本申请实施例提供一种数据库访问方法、设备、系统及存储介质。在本申请实施例中,在第一数据库的服务端增设协议代理节点,该协议代理节点可模拟其它第二数据库的服务端,这样,对于支持的客户端协议不同的第二数据库的客户端对第一数据库的操作请求,协议代理节点可利用模拟出的第二数据库的服务端对操作请求进行客户端协议转换,使得操作请求遵循第一数据库的客户端协议,这样,便可利用协议转换后的操作请求访问第一数据库,实现了第一数据库对其它数据库的客户端协议的兼容,有助于提高第一数据库的客户端兼容性。一数据库的客户端兼容性。一数据库的客户端兼容性。

【技术实现步骤摘要】
数据库访问方法、设备、系统及存储介质


[0001]本申请涉及数据库
,尤其涉及一种数据库访问方法、设备、系统及存储介质。

技术介绍

[0002]随着信息化技术的发展,数据爆发式增长,各种模式的数据库不断被开发和利用。但数据库种类繁多给软件用户带来了不便,软件开发人员需要对每个数据库开发对应的客户端软件来与数据库服务端通信,实现对数据库的访问,以适应不同模式的数据库,学习成本较高,造成开发效率低。因此,如何提高数据库的客户端兼容性,使得用户可以利用已有数据库的客户端,访问其它数据库,成为本领域亟待解决的技术问题。

技术实现思路

[0003]本申请的多个方面提供一种数据库访问方法、设备、系统及存储介质,用以提高数据库对客户端的兼容性,提高开发效率。
[0004]本申请实施例提供一种数据库系统,包括:第一数据库的服务端和第二数据库的客户端;所述第一数据库和所述第二数据库支持的客户端协议不同;所述第一数据库的服务端包括:协议代理节点;所述协议代理节点,用于模拟所述第二数据库的服务端;以及,利用模拟出的所述第二数据库的服务端,对所述第二数据库的客户端提供的遵循所述第二数据库支持的客户端协议的第一操作请求进行协议转换,以得到遵循所述第一数据库支持的客户端协议的第二操作请求;基于所述第二操作请求对所述第一数据库进行操作,以得到所述第二操作请求对应的操作结果;并将所述操作结果提供给所述第二数据库的客户端。
[0005]本申请实施例还提供一种数据库访问方法,包括:利用第一数据库的服务端中的协议代理节点模拟第二数据库的服务端;所述第一数据库和所述第二数据库支持的客户端协议不同;利用模拟出的所述第二数据库的服务端对所述第二数据库的客户端提供的遵循所述第二数据库支持的客户端协议的第一操作请求进行协议转换,以得到遵循所述第一数据库支持的客户端协议的第二操作请求;基于所述第二操作请求对所述第一数据库进行操作,以得到所述第二操作请求对应的操作结果;将所述操作结果提供给所述第二数据库的客户端。
[0006]本申请实施例还提供一种计算设备,包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;所述处理器耦合至所述存储器,用于执行所述计算机程序以用于执行上述数据库访问方法中的步骤。
[0007]本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算
机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述数据库访问方法中的步骤。
[0008]在本申请实施例中,在第一数据库的服务端增设协议代理节点,该协议代理节点可模拟其它第二数据库的服务端,这样,对于支持的客户端协议不同的第二数据库的客户端对第一数据库的操作请求,协议代理节点可利用模拟出的第二数据库的服务端对操作请求进行客户端协议转换,使得操作请求遵循第一数据库的客户端协议,这样,便可利用协议转换后的操作请求访问第一数据库,实现了第一数据库对其它数据库的客户端协议的兼容,有助于提高第一数据库的客户端兼容性。
附图说明
[0009]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例提供的一种数据库系统的结构示意图;图2为本申请实施例提供的第二数据库的结构示意图;图3为本申请实施例提供的第一数据库的服务端的结构示意图;图4为本申请实施例提供的数据库访问过程示意图;图5为本申请实施例提供的另一数据库系统的结构示意图;图6为本申请实施例提供的对操作请求的验证过程流程图;图7为本申请实施例提供的数据库访问方法的流程示意图;图8为本申请实施例提供的计算设备的结构示意图。
具体实施方式
[0010]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0011]针对现有数据库对其它数据库的客户端兼容性低造成开发效率低的技术问题,在本申请一些实施例中,在第一数据库的服务端增设协议代理节点,该协议代理节点可模拟其它第二数据库的服务端,这样,对于支持的客户端协议不同的第二数据库的客户端对第一数据库的操作请求,协议代理节点可利用模拟出的第二数据库的服务端对操作请求进行客户端协议转换,使得操作请求遵循第一数据库的客户端协议,这样,便可利用协议转换后的操作请求访问第一数据库,实现了第一数据库对其它数据库的客户端协议的兼容,有助于提高第一数据库的客户端兼容性。对于开发人员来说,无需针对第一数据库开发对应的客户端,有助于提高数据库开发效率。
[0012]以下结合附图,详细说明本申请各实施例提供的技术方案。
[0013]应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
[0014]图1为本申请实施例提供的数据库系统的结构示意图。如图1所示,该数据库操作
系统主要包括:第一数据库10的服务端20及第二数据库的客户端30。其中,第一数据库10和第二数据库支持的客户端协议不同。在本申请实施例中,第一数据库和第二数据库支持的数据模式可以相同,也可不同,但第一数据库和第二数据库支持的客户端协议不同。第一数据库和第二数据库可为支持的客户端协议不同的任意两种数据库,不限定第一数据库10和第二数据库的具体实现形态。
[0015]例如,在一些实施例中,第一数据库10可为多模数据库、关系型数据库、MySQL数据库等。其中,多模数据库可支持多种模式的数据存储与管理。例如,一些多模数据库可支持宽表、时序、文本、对象、流、空间等多种数据的统一访问和融合处理,并兼容多种标准接口和无缝集成三方生态工具。宽表引擎可为面向海量半结构化、结构化数据设计的分布式非关系型(NoSQL)系统。本实施例中,第一数据库10可为多模数据库的宽表引擎等。
[0016]当然,第二数据库也可为分布式NoSQL数据库。例如,第二数据库可为HBase数据库等。HBase数据库是一款高可靠性、高性能、面向列、可伸缩、构建在HDFS之上的分布式NoSQL数据库,是面向海量半结构、结构化数据的NoSQL系统。
[0017]数据库的服务端是指对数据库进行管理,并可响应客户端的操作请求,为用户提供与数据库操作服务的计算机设备,一般具备承担服务并保障服务的能力。服务端可以为单一服务器设备,也可以云化的服务器阵列,或者为云化的服务器阵列中运行的虚拟机(Virtual Machine,VM)。另外,服务端设备也可以指具备相应服务能力的其他计算设备,例如电脑等终端设备(运行服务程序)等。
[0018]由于第一数据库10和第二数据库支持的客户端协议不同,因此,第二数据库的客本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库访问方法,其特征在于,包括:利用第一数据库的服务端中的协议代理节点模拟第二数据库的服务端;所述第一数据库和所述第二数据库支持的客户端协议不同;利用模拟出的所述第二数据库的服务端对所述第二数据库的客户端提供的遵循所述第二数据库支持的客户端协议的第一操作请求进行协议转换,以得到遵循所述第一数据库支持的客户端协议的第二操作请求;基于所述第二操作请求对所述第一数据库进行操作,以得到所述第二操作请求对应的操作结果;将所述操作结果提供给所述第二数据库的客户端。2.根据权利要求1所述的方法,其特征在于,所述利用第一数据库的服务端中协议代理节点模拟第二数据库的服务端,包括:利用所述协议代理节点根据所述第一操作请求的待访问数据表的分区的元数据信息和所述第二数据库的客户端协议,模拟所述第二数据库的分区,以得到数据结构满足所述第二数据库支持的客户端协议的虚拟分区;利用所述协议代理节点模拟所述第二数据库的分布式协调服务节点,以管理所述第一数据库的元数据分区的地址。3.根据权利要求2所述的方法,其特征在于,所述协议代理节点为多个;所述第一操作请求包括:读操作请求和/或写操作请求;所述读操作请求和/或所述写操作请求包括:分区标识;所述利用模拟出的所述第二数据库的服务端对所述第二数据库的客户端提供的遵循所述第二数据库支持的客户端协议的第一操作请求进行协议转换,包括:利用多个协议代理节点中的第一协议代理节点获取所述第二数据库的客户端提供的读操作请求和/或写操作请求;所述第一协议代理节点为所述分区标识对应的目标虚拟分区的地址;根据所述第一数据库支持的客户端协议,对所述读操作请求和/或所述写操作请求进行协议转换,以得到满足所述第一数据库支持的客户端协议的目标操作请求,作为所述第二操作请求;所述基于所述第二操作请求对所述第一数据库进行操作,包括:利用所述第一协议代理节点基于所述目标操作请求,对所述分区标识对应的目标分区进行读和/或写操作。4.根据权利要求3所述的方法,其特征在于,所述第一数据库的分区服务节点,用于管理所述第一数据库的元数据分区;所述元数据分区是对所述第一数据库的数据表的元数据表划分得到的;所述方法还包括:利用所述多个协议代理节点中的第二协议代理节点获取所述第二数据库的客户端发起的元数据查询请求;所述元数据查询请求包括:所述读操作请求和/或所述写操作请求携带的分区标识;基于所述分区标识及所述第一数据库的分区的元数据信息,从所述多个协议代理节点中,确定所述目标虚拟分区所在的第一协议代理节点;将所述第一协议代理节点的地址作为所述目标虚拟分区的地址返回给所述第二数据
库的客户端,以供所述第二数据库的客户端将所述第一协议代理节点的地址作为所述目标虚拟分区的地址。5.根据权利要求4所述的方法,其特征在于,还包括:利用所述协议代理节点获取所述第二数据库的客户端发起的元数据分区的地址查询请求;响应于所述元数据分区的地址查询请求,确定所述第一数据库的服务端中的负载均衡节点的地址为元数据分区的地址;并将所述负载均衡节点的地址返回给所述第二数据库的客户端,以供所述第二数据库的客户端基于所述负载均衡节点的地址,向所述负载均衡节点发起所述元数据查询请求;所述方法还包括:利用所述负载均衡节点从所述多个协议代理节点中随机选择一个协议代理节点,作为所述第二协议代理节点;将所述元数据查询请求转发给所述第二协议代理节点。6.根据权利要求2所述的方法,其特征在于,还包括:利用所述协议代理节点获取所述第二数据库的客户端发起的DDL请求;所述利用模拟出的所述第二数据库的服务端,对所述第二数据库的客户端提供的遵循所述第二数据库支持的客户端协议的第一操作请求进行协议转换,包括:根据所述第一数据库支持的客户端协议,将所述DDL请求转换为满足所述第一数据库支持的客户端协议的目标DDL请求,作为所述第二操作请求;所述基于所述第二操作请求对所述第一数据库进行操作,以得到所述第二操作请求对应的操作结果,包括:利用所述协议代理节点模拟所述第二数据库的管控节点;并基于所述目标DDL请求,对所述第一数据库进行DDL操作,以得到所述DDL请求对应的操作结果。7.根据权利要求6所述的方法,其特征在于,还包括:获取所述第二数据库的客户端提供的管控节点地...

【专利技术属性】
技术研发人员:赵百强岑苏君汪翔沈春辉张为李飞飞
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

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

1