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

访问数据库的方法、系统、装置、存储介质及处理器

文献发布时间:2023-06-19 11:29:13


访问数据库的方法、系统、装置、存储介质及处理器

技术领域

本发明涉及计算机领域,具体而言,涉及一种访问数据库的方法、系统、装置、存储介质及处理器。

背景技术

Cassandra数据库(即宽表数据库)为混合型的非关系的数据库,其主要特点是由一堆数据库节点共同构成的分布式网络服务,对Cassandra数据库的一个写操作,会被复制到其他节点上,读操作,会被路由到某一个节点上来读取。作为一个多数据中心,可以通过布局节点来避免某一个数据中心起火,一个备用的数据中心将每个记录进行复制。作为分布式写操作,可以在任何地方任何时间集中读或写任何数据,并不会有任何单点失败。

但是,现有的宽表数据库支持度不如文档存储数据库,无法实现完全托管数据内容的数据库功能。

针对上述现有技术中的宽表数据库无法实现完全托管数据内容的数据库功能,导致数据管理性能低的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种访问数据库的方法、系统、装置、存储介质及处理器,以至少解决现有技术中的宽表数据库无法实现完全托管数据内容的数据库功能,导致数据管理性能低的技术问题。

根据本发明实施例的一个方面,提供了一种访问数据库的方法,包括:基于分布式网络部署的数据库集群接收请求设备发起的数据请求,其中,所述数据库集群包括主节点和至少一个副节点,所述数据库集群的节点上嵌入了用于对所述数据请求进行解析的本地服务器;通过所述本地服务器对所述数据请求进行解析,确定所述数据请求所指向的支持文档数据库功能的文档引擎;通过所述主节点从所述文档引擎中获取所述数据请求所请示的数据内容,并将所述数据内容发散到至少一个所述副节点;通过所述主节点和至少一个所述副节点将所述数据内容反馈给所述请求设备。

根据本发明实施例的另一方面,还提供了一种访问数据库的系统,包括:请求设备,用于生成数据请求;基于分布式网络部署的数据库集群,包括主节点和至少一个副节点,节点上嵌入了用于对所述数据请求进行解析的本地服务,通过所述本地服务器对所述数据请求进行解析,确定所述数据请求所指向的支持文档数据库功能的文档引擎,由所述主节点从所述文档引擎中获取所述数据请求所请示的数据内容,并将所述数据内容发散到至少一个所述副节点;由所述主节点和至少一个所述副节点将所述数据内容反馈给所述请求设备。

根据本发明实施例的另一方面,还提供了一种访问数据库的装置,包括:接收模块,用于基于分布式网络部署的数据库集群接收请求设备发起的数据请求,其中,所述数据库集群包括主节点和至少一个副节点,所述数据库集群的节点上嵌入了用于对所述数据请求进行解析的本地服务器;解析模块,用于通过所述本地服务器对所述数据请求进行解析,确定所述数据请求所指向的支持文档数据库功能的文档引擎;获取模块,用于通过所述主节点从所述文档引擎中获取所述数据请求所请示的数据内容,并将所述数据内容发散到至少一个所述副节点;反馈模块,用于通过所述主节点和至少一个所述副节点将所述数据内容反馈给所述请求设备。

根据本发明实施例的另一个方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的访问数据库的方法。

根据本发明实施例的又一个方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的访问数据库的方法。

在本发明实施例中,数据库集群包括主节点和至少一个副节点,并在数据库集群的节点上嵌入了本地服务器,在需要对文档数据库访问的过程中,可以由本地服务器对数据请求进行解析,在基于分布式网络部署的数据库集群接收到文档数据库的数据请求的情况下,可以确定数据请求所指向的支持文档数据库功能的文档引擎,从文档引擎中获取数据内容,并将获取到的数据内容反馈给请求设备,达到了在数据库集群中兼容文档数据库功能的目的,从而可以基于文档数据库功能对数据库集群进行管理实现了提高数据管理性能的技术效果,进而解决了现有技术中的宽表数据库无法实现完全托管数据内容的数据库功能,导致数据管理性能低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1示出了一种用于实现访问数据库的方法的计算机终端(或移动设备)的硬件结构框图;

图2是根据本发明实施例的一种访问数据库的方法的流程图;

图3是根据本发明实施例的一种宽表数据库Cassandra兼容文档数据库DynamoDB的结构示意图;

图4是根据本发明实施例的一种宽表数据库Cassandra兼容文档数据库DynamoDB的流程示意图;

图5是根据本发明实施例的一种访问数据库的系统的示意图;

图6是根据本发明实施例的一种访问数据库的装置的示意图;

图7是根据本发明实施例的一种计算机终端的结构框图。

具体实施方式

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

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

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

DynamoDB文档数据库:一个键/值和文档数据库,是一个完全托管、多区域多主的持久数据库,具有适用于internet规模的应用程序的内置安全性、备份和回复和内存缓存。可以根据实际需求对表进行扩展和收缩,这个过程无需停止对外服务,降低服务性能。

Coordinate:协调服务器,是Cassandra宽表数据库里面的协调者角色,因为Cassandra宽表数据库是分布式系统,需要由Coordinate协调节点做协调及分发读写。

Replication Group:复制组,分布式系统由多副本(或节点)组成。

Delta JSON:文档数据库中较之于初始文档,后续不断更新的子属性片段,如增删某些文档的属性。

实施例1

根据本发明实施例,还提供了一种访问数据库的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现访问数据库的方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(BUS总线)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的访问数据库的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的访问数据库的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。

在上述运行环境下,本申请提供了如图2所示的访问数据库的方法。图2是根据本发明实施例的一种访问数据库的方法的流程图,如图2所示,包括步骤如下:

步骤S202,基于分布式网络部署的数据库集群接收请求设备发起的数据请求,其中,数据库集群包括主节点和至少一个副节点,数据库集群的节点上嵌入了用于对数据请求进行解析的本地服务器;

步骤S204,通过本地服务器对数据请求进行解析,确定数据请求所指向的支持文档数据库功能的文档引擎;

步骤S206,通过主节点从文档引擎中获取数据请求所请示的数据内容,并将数据内容发散到至少一个副节点;

步骤S208,通过主节点和至少一个副节点将数据内容反馈给请求设备。

在本发明实施例中,数据库集群包括主节点和至少一个副节点,并在数据库集群的节点上嵌入了本地服务器,在需要对文档数据库访问的过程中,可以由本地服务器对数据请求进行解析,在基于分布式网络部署的数据库集群接收到文档数据库的数据请求的情况下,可以确定数据请求所指向的支持文档数据库功能的文档引擎,从文档引擎中获取数据内容,并将获取到的数据内容反馈给请求设备,达到了在数据库集群中兼容文档数据库功能的目的,从而可以基于文档数据库功能对数据库集群进行管理实现了提高数据管理性能的技术效果,进而解决了现有技术中的宽表数据库无法实现完全托管数据内容的数据库功能,导致数据管理性能低的技术问题。

在上述步骤S202中,数据请求可以是文档数据库DynamoDB的命令行,或各种语言的软件开发工具包SDK等文档类型或数据结构类似BSON DynamoDB的请求,需要说明的是,BSON DynamoDB指的是被用作文档数据库DynamoDB中的数据存储和网络传输。

需要说明的是,文档数据库DynamoDB中存储的文档可以有深层次子文档属性,而Cassandra宽表数据库并没有提供这种文档的复杂数据结构,本申请可以在基于Cassandra宽表数据库的数据库集群中兼容文档数据库DynamoDB的功能。

在上述步骤S202中,数据库集群可以是基于Cassandra宽表数据库的数据库集群,该数据库集群由一对数据库节点共同构成分布式网络服务,在对该数据库集群的一个写操作会被复制到其他节点上去;在对该数据库集群的一个读操作也会被理由到其他某个节点上面去读取;对于基于Cassandra宽表数据库的数据库集群的扩展,只需要在该数据库集群中增加节点即可实现。

可选地,数据库集群的节点包括主节点和至少一个副节点。

可选地,可以在基于Cassandra宽表数据库的数据库集群中增加支持文档数据库功能的文档引擎,并在该数据库集群中的其他节点中嵌入该文档引擎对应的服务器地址,进而在数据库集群收到数据请求后,该数据库集群中的各节点可以直接基于嵌入的服务器地址访问支持文档数据库功能的文档引擎,并从文档数据库功能的文档引擎中获取数据请求所请求的数据内容,再将该数据内容反馈给用于生成数据请求的请求设备。

可选地,数据库集群的节点包括主节点和至少一个副节点,服务器集群中的主节点和至少一个副节点可以共同作为复制组,至少一个副节点可以是主节点所复制的副本文档,服务器集群中的主节点可以通过大量选取产生。

需要说明的是,本地服务器可以是Http-server,一个简单的零配置的命令行Http服务器,它足够强大便于生产和使用,完全支持文档数据库DynamoDB底层协议解析,从而支持对文档数据库的命令行DynamoDB CLI及各种语言的软件开发工具包SDK的服务。

作为一种可选的实施例,基于分布式网络部署的数据库集群接收请求设备发起的数据请求包括:数据库集群中的协调服务器将数据请求转发至主节点和/或副节点,其中,主节点和副节点与协调服务器直接或间接关联;本地服务器对数据请求进行解析,确定数据请求所指向的支持文档数据库功能的文档引擎包括:通过本地服务器解析数据请求的请求类型,确定请求类型对应的服务器地址,其中,服务器地址用于指向支持文档数据库功能的文档引擎;基于服务器地址,通过访问文档引擎来响应数据请求,得到数据内容。

本发明上述实施例,在数据库集群中收到数据请求后,数据库集群中的协调服务器,可以将该数据请求转发至该数据库集群中的主节点或副节点中,由主节点或副节点中嵌入的本地服务器对接收到的数据请求进行解析,确定该数据请求的请求类型,以及该请求类型对应的服务器地址,进而可以基于该服务器地址访问文档引擎来实现对数据请求的响应,从而可以得到该数据请求所指示的数据内容。

作为一种可选的实施例,基于服务器地址,通过访问文档引擎来响应数据请求,得到数据内容包括:将数据请求发送至服务器地址所指向的文档引擎;数据库集群中的主节点和/或副节点接收文档引擎反馈的数据内容;并将数据内容写回入主节点和/或副节点。

本发明上述实施例,在访问支持文档数据库功能的文档引擎的过程中,可以将数据请求发送至文档引擎,再由数据库集群中的主节点和/或副节点接收文档引擎反馈的数据内容,并将反馈的数据内容写回入主节点,以及副节点。

需要说明的是,在将数据请求转发至该数据库集群中的主节点或副节点中,可以将文档引擎所反馈的数据内容反馈至相应的主节点或副节点中。

作为一种可选的实施例,在将数据请求发送至服务器地址所指向的文档引擎之后,方法还包括:文档引擎读取旧文档,并基于数据请求确定需要操作的内容以及操作类型;文档引擎基于操作类型对需要操作的内容进行处理,得到新内容;将新内容在内存中与旧文档进行合并,得到新文档,其中,新文档为需要写回入主节点和/或副节点的数据内容。

本发明上述实施例,在数据请求发送至支持文档数据库功能的文档引擎后,可以由文档引擎读取旧文档,并基于数据请求确定需要操作的内容以及操作类型,并基于该操作类型对需要操作的内容进行处理,可以得到新内容,然后将新内容在内存中与旧文档进行合并,得到新文档,再将该新文档写回入主节点,以及副节点的数据内容。

作为一种可选的实施例,在将数据请求发送至服务器地址所指向的文档引擎之后,方法还包括:文档引擎基于数据请求确定需要操作的内容以及操作类型,其中,需要操作的内容与已经存储的旧文档之间存在链表;文档引擎基于操作类型对需要操作的内容进行处理,得到新内容;其中,在操作类型为写操作的情况下,基于链表将新内容附到旧文档上得到新文档;在操作类型为读操作的情况下,读取新写入的新内容组成新文档,其中,新文档为需要写回入主节点和/或副节点的数据内容。

本发明上述实施例,支持文档数据库功能的文档引擎,可以基于数据请求确定需要操作的内容以及操作类型,确定需要操作的内容与已经存储的旧文档之间存在链表,然后由文档引擎基于操作类型对需要操作的内容进行处理,得到新内容,再基于该新内容得到新文档。

需要说明的是,在操作类型为写操作的情况下,可以基于需要操作的内容与已经存储的旧文档之间存在链表,将新内容附到旧文档上,从而得到新文档;在操作类型为读操作的情况下,可以读取新写入的新内容组成新文档,其中,新文档为需要写回入主节点和/或副节点的数据内容。

作为一种可选的实施例,将数据内容写回入主节点和/或副节点,包括:将文档引擎提供的文档数据库形式的数据内容,基于主节点提供的存储引擎写入宽表数据库的主节点,并同时向副节点同步数据内容。

本发明上述实施例,在数据请求是由主节点发送至支持文档数据库功能的文档引擎的情况下,可以将文档引擎反馈的数据内容基于主节点提供的存储引擎写入主节点,并同时向副节点同步数据内容,使主节点和副节点的数据同步。

作为一种可选的实施例,将数据内容写回入主节点和/或副节点,包括:将文档引擎提供的文档数据库形式的数据内容,基于副节点提供的存储引擎写入宽表数据库的副节点,并同时向主节点和副节点同步数据内容。

本发明上述实施例,在数据请求是由副节点发送至支持文档数据库功能的文档引擎的情况下,可以将文档引擎反馈的数据内容基于副节点提供的存储引擎写入副节点,并同时向主节点同步数据内容,使主节点和副节点的数据同步。

本发明还提供了一种具体实施例,该实施例提供了一种Cassandra宽表数据库兼容DynamoDB文档数据库的方案。

图3是根据本发明实施例的一种宽表数据库Cassandra兼容文档数据库DynamoDB的结构示意图,如图3所示,在Cassandra宽表数据库收到DynamoDB文档数据库的数据请求的情况下,可以通过协调服务器将该数据请求转发至Cassandra宽表数据库中的主节点,由主节点将数据请求发送至文档引擎,使文档引擎可以启动日志结构合并树LSM Engine读取旧文档,由文档引擎对旧文档进行合并,更新JavaScript对象简谱(即更新JSON),编写新文档,更新日志结构合并树LSM,并将编写的新文档发送至主节点,再由主节点将新的全部文档发送到至少一个副节点中,由主节点和至少一个副节点共同构成Cassandra宽表数据库的复制组。

图4是根据本发明实施例的一种宽表数据库Cassandra兼容文档数据库DynamoDB的流程示意图,图4所示,可以将数据请求发送至支持文档数据库DynamoDB的亚马逊平台的开发工具包AWS SDK,由开发工具包AWS SDK中的低级接口、文档接口和高级接口将数据请求传输至文档数据库DynamoDB的低级应用程序编程接口API中,进而协调服务器可以通过开发工具包AWS SDK中的低级应用程序编程接口API将数据请求转发至数据库集群,并向开发工具包AWS SDK中的低级应用程序编程接口API返回响应结果。

在Cassandra宽表数据库的数据库集群的后端节点均内嵌Http-server命令行Http服务器,可以完全支持DynamoDB底层协议解析,这样文档数据库的命令行DynamoDBCLI及各种语言的软件开发工具包SDK均可直接请求Cassandra宽表数据库的数据库集群。

需要说明的是,DynamoDB是一种文档模型数据库,文档可以有深层次子文档属性,而Cassandra宽表数据库并没有提供这种复杂数据结构,通过扩展Cassandra宽表数据库的数据库集群原生类型,实现了将文档类型和数据结构类似BSON DynamoDB的请求由Coordinate协调节点(或协调服务器)转发至主副本。

其中,Cassandra宽表数据库的数据库集群通过由多副本组成的复制组来满足数据可靠性,主副本在多副本中通过raft大量选举而产生。文档更新操作往往是对于DeltaJSON一小片文档做处理,可以先把旧文档读取出来,通过文档引擎在合入这片Delta JSON,支持多种操作符,如add添加,delete删除,update更新,set设置操作符操作子属性。将内存合并后的新文档重新写回主副本存储引擎,同时向从副本发起散出写,保证多副本写入。

需要说明的是,对于Delta JSON的处理还有一种类似Sw-Tree引擎的思路,可以将Delta JSON跟旧文档组成链表,在写入时候仅需要将Delta JSON附着到旧文档上,便可以在读取的时候直接将这些新写入的Delta JSON合并组成新文档。

本发明提供的技术方案,大大补充了Cassandra宽表数据库的能力,将Cassandra宽表数据库原有的宽表模型提升为宽表+文档库模型,使一个数据库能同时提供两种存储模型,大大丰富了用户的选择。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种访问数据库的系统。

图5是根据本发明实施例的一种访问数据库的系统的示意图,如图5所示,包括:请求设备52,用于生成数据请求;基于分布式网络部署的数据库集群54,包括主节点和至少一个副节点,节点上嵌入了用于对数据请求进行解析的本地服务,通过本地服务器对数据请求进行解析,确定数据请求所指向的支持文档数据库功能的文档引擎,由主节点从文档引擎中获取数据请求所请示的数据内容,并将数据内容发散到至少一个副节点;由主节点和至少一个副节点将数据内容反馈给请求设备。

在本发明实施例中,数据库集群包括主节点和至少一个副节点,并在数据库集群的节点上嵌入了本地服务器,在需要对文档数据库访问的过程中,可以由本地服务器对数据请求进行解析,在基于分布式网络部署的数据库集群接收到文档数据库的数据请求的情况下,可以确定数据请求所指向的支持文档数据库功能的文档引擎,从文档引擎中获取数据内容,并将获取到的数据内容反馈给请求设备,达到了在数据库集群中兼容文档数据库功能的目的,从而可以基于文档数据库功能对数据库集群进行管理实现了提高数据管理性能的技术效果,进而解决了现有技术中的宽表数据库无法实现完全托管数据内容的数据库功能,导致数据管理性能低的技术问题。

作为一种可选的实施例,该系统还包括:本地服务器地址用于解析数据请求的请求类型,确定指向的支持文档数据库功能的文档引擎的服务器地址;并基于服务器地址,通过访问文档引擎来响应数据请求,得到数据内容。

作为一种可选的实施例,数据库集群包括:协调服务器,主节点和副节点与协调服务器直接或间接关联,用于将数据请求转发至主节点和/或副节点。

实施例3

根据本发明实施例,还提供了一种用于实施上述所述方法的访问数据库的装置,图6是根据本发明实施例的一种访问数据库的装置的示意图,如图6所示,该装置包括:接收模块62,用于基于分布式网络部署的数据库集群接收请求设备发起的数据请求,其中,数据库集群包括主节点和至少一个副节点,数据库集群的节点上嵌入了用于对数据请求进行解析的本地服务器;解析模块64,用于通过本地服务器对数据请求进行解析,确定数据请求所指向的支持文档数据库功能的文档引擎;获取模块66,用于通过主节点从文档引擎中获取数据请求所请示的数据内容,并将数据内容发散到至少一个副节点;反馈模块68,用于通过主节点和至少一个副节点将数据内容反馈给请求设备。

此处需要说明的是,上述接收模块62至反馈模块68对应于实施例1中的步骤S202至步骤S206,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

在本发明实施例中,数据库集群包括主节点和至少一个副节点,并在数据库集群的节点上嵌入了本地服务器,在需要对文档数据库访问的过程中,可以由本地服务器对数据请求进行解析,在基于分布式网络部署的数据库集群接收到文档数据库的数据请求的情况下,可以确定数据请求所指向的支持文档数据库功能的文档引擎,从文档引擎中获取数据内容,并将获取到的数据内容反馈给请求设备,达到了在数据库集群中兼容文档数据库功能的目的,从而可以基于文档数据库功能对数据库集群进行管理实现了提高数据管理性能的技术效果,进而解决了现有技术中的宽表数据库无法实现完全托管数据内容的数据库功能,导致数据管理性能低的技术问题。

作为一种可选的实施例,接收模块包括:基于分布式网络部署的数据库集群接收请求设备发起的数据请求包括:转发单元,用于数据库集群中的协调服务器将数据请求转发至主节点和/或副节点,其中,主节点和副节点与协调服务器直接或间接关联;解析模块包括:解析单元,用于通过本地服务器解析数据请求的请求类型,确定请求类型对应的服务器地址,其中,服务器地址用于指向支持文档数据库功能的文档引擎;响应单元,用于基于服务器地址,通过访问文档引擎来响应数据请求,得到数据内容。

作为一种可选的实施例,响应单元包括:发送单元,用于将数据请求发送至服务器地址所指向的文档引擎;接收单元,用于通过数据库集群中的主节点和/或副节点接收文档引擎反馈的数据内容;写回单元,用于将数据内容写回入主节点和/或副节点。

作为一种可选的实施例,该装置还包括:读取单元,用于在将数据请求发送至服务器地址所指向的文档引擎之后,文档引擎读取旧文档,并基于数据请求确定需要操作的内容以及操作类型;第一处理单元,用于通过文档引擎基于操作类型对需要操作的内容进行处理,得到新内容;合并单元,用于将新内容在内存中与旧文档进行合并,得到新文档,其中,新文档为需要写回入主节点和/或副节点的数据内容。

作为一种可选的实施例,该装置还包括:确定单元,用于在将数据请求发送至服务器地址所指向的文档引擎之后,文档引擎基于数据请求确定需要操作的内容以及操作类型,其中,需要操作的内容与已经存储的旧文档之间存在链表;第二处理单元,用于文档引擎基于操作类型对需要操作的内容进行处理,得到新内容;其中,在操作类型为写操作的情况下,基于链表将新内容附到旧文档上得到新文档;在操作类型为读操作的情况下,读取新写入的新内容组成新文档,其中,新文档为需要写回入主节点和/或副节点的数据内容。

作为一种可选的实施例,写回单元包括:第一写入单元,用于将文档引擎提供的文档数据库形式的数据内容,基于主节点提供的存储引擎写入宽表数据库的主节点,并同时向副节点同步数据内容。

作为一种可选的实施例,写回单元包括:第二写入单元,用于将文档引擎提供的文档数据库形式的数据内容,基于副节点提供的存储引擎写入宽表数据库的副节点,并同时向主节点和副节点同步数据内容。

实施例4

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行访问数据库的方法中以下步骤的程序代码:基于分布式网络部署的数据库集群接收请求设备发起的数据请求,其中,数据库集群包括主节点和至少一个副节点,数据库集群的节点上嵌入了用于对数据请求进行解析的本地服务器;通过本地服务器对数据请求进行解析,确定数据请求所指向的支持文档数据库功能的文档引擎;通过主节点从文档引擎中获取数据请求所请示的数据内容,并将数据内容发散到至少一个副节点;通过主节点和至少一个副节点将数据内容反馈给请求设备。

可选地,图7是根据本发明实施例的一种计算机终端的结构框图。如图所示,该计算机终端10可以包括:一个或多个(图中仅示出一个)处理器102、存储器104、以及传输装置106。

其中,存储器可用于存储软件程序以及模块,如本发明实施例中的访问数据库的方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的访问数据库的方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:基于分布式网络部署的数据库集群接收请求设备发起的数据请求,其中,数据库集群包括主节点和至少一个副节点,数据库集群的节点上嵌入了用于对数据请求进行解析的本地服务器;通过本地服务器对数据请求进行解析,确定数据请求所指向的支持文档数据库功能的文档引擎;通过主节点从文档引擎中获取数据请求所请示的数据内容,并将数据内容发散到至少一个副节点;通过主节点和至少一个副节点将数据内容反馈给请求设备。

可选的,上述处理器还可以执行如下步骤的程序代码:数据库集群中的协调服务器将数据请求转发至主节点和/或副节点,其中,主节点和副节点与协调服务器直接或间接关联;通过本地服务器解析数据请求的请求类型,确定请求类型对应的服务器地址,其中,服务器地址用于指向支持文档数据库功能的文档引擎;基于服务器地址,通过访问文档引擎来响应数据请求,得到数据内容。

可选的,上述处理器还可以执行如下步骤的程序代码:将数据请求发送至服务器地址所指向的文档引擎;数据库集群中的主节点和/或副节点接收文档引擎反馈的数据内容;并将数据内容写回入主节点和/或副节点。

可选的,上述处理器还可以执行如下步骤的程序代码:文档引擎读取旧文档,并基于数据请求确定需要操作的内容以及操作类型;文档引擎基于操作类型对需要操作的内容进行处理,得到新内容;将新内容在内存中与旧文档进行合并,得到新文档,其中,新文档为需要写回入主节点和/或副节点的数据内容。

可选的,上述处理器还可以执行如下步骤的程序代码:文档引擎基于数据请求确定需要操作的内容以及操作类型,其中,需要操作的内容与已经存储的旧文档之间存在链表;文档引擎基于操作类型对需要操作的内容进行处理,得到新内容;其中,在操作类型为写操作的情况下,基于链表将新内容附到旧文档上得到新文档;在操作类型为读操作的情况下,读取新写入的新内容组成新文档,其中,新文档为需要写回入主节点和/或副节点的数据内容。

可选的,上述处理器还可以执行如下步骤的程序代码:将文档引擎提供的文档数据库形式的数据内容,基于主节点提供的存储引擎写入宽表数据库的主节点,并同时向副节点同步数据内容。

可选的,上述处理器还可以执行如下步骤的程序代码:将文档引擎提供的文档数据库形式的数据内容,基于副节点提供的存储引擎写入宽表数据库的副节点,并同时向主副节点同步数据内容。

采用本发明实施例,提供了一种访问数据库的方案,数据库集群包括主节点和至少一个副节点,并在数据库集群的节点上嵌入了本地服务器,在需要对文档数据库访问的过程中,可以由本地服务器对数据请求进行解析,在基于分布式网络部署的数据库集群接收到文档数据库的数据请求的情况下,可以确定数据请求所指向的支持文档数据库功能的文档引擎,从文档引擎中获取数据内容,并将获取到的数据内容反馈给请求设备,达到了在数据库集群中兼容文档数据库功能的目的,从而可以基于文档数据库功能对数据库集群进行管理实现了提高数据管理性能的技术效果,进而解决了现有技术中的宽表数据库无法实现完全托管数据内容的数据库功能,导致数据管理性能低的技术问题。

本领域普通技术人员可以理解,图7所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。

实施例5

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的访问数据库的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:基于分布式网络部署的数据库集群接收请求设备发起的数据请求,其中,数据库集群包括主节点和至少一个副节点,数据库集群的节点上嵌入了用于对数据请求进行解析的本地服务器;通过本地服务器对数据请求进行解析,确定数据请求所指向的支持文档数据库功能的文档引擎;通过主节点从文档引擎中获取数据请求所请示的数据内容,并将数据内容发散到至少一个副节点;通过主节点和至少一个副节点将数据内容反馈给请求设备。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:数据库集群中的协调服务器将数据请求转发至主节点和/或副节点,其中,主节点和副节点与协调服务器直接或间接关联;通过本地服务器解析数据请求的请求类型,确定请求类型对应的服务器地址,其中,服务器地址用于指向支持文档数据库功能的文档引擎;基于服务器地址,通过访问文档引擎来响应数据请求,得到数据内容。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将数据请求发送至服务器地址所指向的文档引擎;数据库集群中的主节点和/或副节点接收文档引擎反馈的数据内容;并将数据内容写回入主节点和/或副节点。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:文档引擎读取旧文档,并基于数据请求确定需要操作的内容以及操作类型;文档引擎基于操作类型对需要操作的内容进行处理,得到新内容;将新内容在内存中与旧文档进行合并,得到新文档,其中,新文档为需要写回入主节点和/或副节点的数据内容。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:文档引擎基于数据请求确定需要操作的内容以及操作类型,其中,需要操作的内容与已经存储的旧文档之间存在链表;文档引擎基于操作类型对需要操作的内容进行处理,得到新内容;其中,在操作类型为写操作的情况下,基于链表将新内容附到旧文档上得到新文档;在操作类型为读操作的情况下,读取新写入的新内容组成新文档,其中,新文档为需要写回入主节点和/或副节点的数据内容。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将文档引擎提供的文档数据库形式的数据内容,基于主节点提供的存储引擎写入宽表数据库的主节点,并同时向副节点同步数据内容。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将文档引擎提供的文档数据库形式的数据内容,基于副节点提供的存储引擎写入宽表数据库的副节点,并同时向主副节点同步数据内容。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

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

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

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

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 访问数据库的方法、系统、装置、存储介质及处理器
  • 数据库数据访问方法、系统、装置及计算机可读存储介质
技术分类

06120112941670