数据处理方法、装置及网关设备与流程

文档序号:26275158发布日期:2021-08-13 19:30阅读:51来源:国知局
数据处理方法、装置及网关设备与流程

本申请实施例涉及数据库访问技术领域,尤其涉及一种数据访问方法、装置及网关设备。



背景技术:

数据库网关(databasegateway)是一种支持数据库远程访问的技术方案。目前随着云技术的发展,很多数据库服务产品如数据库管理、数据库备份、数据库迁移、数据分析、以及其它数据访问类应用程序等部署在云端,而数据库部署在本地端时,其中,本地端可以是指物理机房或者其它云端,与这些数据库服务产品不在同一个网络内,导致无法直接访问数据库。而通过数据库网关技术,即可以实现远程访问本地数据库的目的。

利用数据库网关技术访问本地数据库,需要在本地端安装网关代理端,云端部署网关服务端,网关代理端负责与网关服务端建立长连接通道,也被称为反向通道,数据访问端需要访问本地数据库时,选择已建立好的反向通道,即可以实现本地数据库访问。数据访问端进行数据库访问时,会选择一条数据库连接,通过该数据库连接发起数据访问请求,再经由网关服务端将该数据库连接发起的数据访问请求通过反向通道转发至网关代理端。

但是,网关代理端与网关服务端之间虽然可以建立多个反向通道,但是一个反向通道仍然有可能被多个数据库连接所复用,若某个数据库连接请求大量数据时,该反向通道就会被独占传递数据,导致出现通道拥塞,影响数据访问效率。



技术实现要素:

本申请实施例提供一种数据访问方法、装置及网关设备,用以解决现有技术中数据访问效率低的技术问题。

第一方面,本申请实施例中提供了一种数据访问方法,包括:

响应于数据库访问指令,通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据;

将当前获取数据保存至缓存区域;

检测所述目标数据未读取结束,通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据,并返回执行所述将当前获取数据保存至所述缓存区域中;

查询所述缓存区域中存在所述目标数据的至少部分数据,对当前缓存数据进行业务处理。

第二方面,本申请实施例中提供了一种数据访问方法,包括:

响应于网关服务端发送的访问请求,从数据库中读取目标数据的至少部分数据;其中,所述访问请求为数据访问端基于所述数据库的访问指令发起;

将所述至少部分数据通过所述网关服务端返回至所述数据访问端,以供所述数据访问端将当前获取数据缓存至所述缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求;

响应于所述下一次访问请求,继续读取所述目标数据中的至少部分数据,并返回执行所述将所述至少部分数据通过所述网关服务端返回至所述数据访问端。

第三方面,本申请实施例中提供了一种数据访问方法,包括:

接收数据访问端发送的访问请求;其中,所述访问请求为数据访问端基于数据库访问指令发起;

将所述访问请求转发至网关代理端,获取所述网关代理端从所述数据库中读取的目标数据中的至少部分数据;

将当前获取数据转发至所述数据访问端;其中,所述访问端用于将当前获取数据缓存至缓存区域并检测所述目标数据未读取结束时发起下一次访问请求;

接收所述数据访问端发送的所述下一次访问请求;

将所述下一次访问请求转发至所述网关代理端,并获取所述网关代理端从所述数据库中继续读取的所述目标数据中的至少部分数据,返回执行所述将当前获取数据转发至所述数据访问端。

第四方面,本申请实施例中提供了一种数据访问装置,包括:

第一请求模块,用于响应于数据库访问指令,通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据;

第一缓存模块,用于将当前获取数据保存至缓存区域;

第二请求模块,用于检测所述目标数据未读取结束,通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据,并触发所述第一缓存模块执行;

业务处理模块,用于查询所述缓存区域中存在所述目标数据的至少部分数据,对当前缓存数据进行业务处理。

第五方面,本申请实施例中提供了一种数据访问装置,包括:

第一读取模块,用于响应于网关服务端发送的访问请求,从数据库中读取目标数据的至少部分数据;其中,所述访问请求为数据访问端基于所述数据库的访问指令发起;

第一发送模块,用于将所述至少部分数据通过所述网关服务端返回至所述数据访问端,以供所述数据访问端将当前获取数据缓存至所述缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求;

第二读取模块,用于响应于所述下一次访问请求,继续读取所述目标数据中的至少部分数据,并触发所述第一发送模块执行。

第六方面,本申请实施例中提供了一种数据访问装置,包括:

第一接收模块,用于接收数据访问端发送的访问请求;其中,所述访问请求为数据访问端基于数据库访问指令发起;

第一获取模块,用于将所述访问请求转发至网关代理端,并获取所述网关代理端从所述数据库中读取的目标数据中的至少部分数据;

第一转发模块,用于将当前获取数据转发至所述数据访问端;其中,所述访问端用于将当前获取数据缓存至缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求;

第二接收模块,用于接收所述数据访问端发送的所述下一次访问请求;

第二获取模块,用于将所述下一次访问请求转发至所述网关代理端,并获取所述网关代理端从所述数据库中继续读取的所述目标数据中的至少部分数据,并触发所述第一转发模块执行。

第七方面,本申请实施例中提供了一种数据访问设备,包括处理组件以及存储组件;

所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;

所述处理组件用于:

响应于数据库访问指令,通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据;

将当前获取数据保存至缓存区域;

检测所述目标数据未读取结束,通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据,并返回执行所述将当前获取数据保存至所述缓存区域中;

查询所述缓存区域中存在所述目标数据的至少部分数据,对当前缓存数据进行业务处理。

第八方面,本申请实施例中提供了一种网关设备,包括处理组件以及存储组件;

所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;

所述处理组件用于:

响应于网关服务端发送的访问请求,从数据库中读取目标数据的至少部分数据;其中,所述访问请求为数据访问端基于所述数据库的访问指令发起;

将所述至少部分数据通过所述网关服务端返回至所述数据访问端,以供所述数据访问端将当前获取数据缓存至所述缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求;

响应于所述下一次访问请求,继续读取所述目标数据中的至少部分数据,并返回执行所述将所述至少部分数据通过所述网关服务端返回至所述数据访问端。

第九方面,本申请实施例中提供了一种网关设备,包括处理组件以及存储组件;

所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;

所述处理组件用于:

接收数据访问端发送的访问请求;其中,所述访问请求为数据访问端基于数据库访问指令发起;

将所述访问请求转发至网关代理端,并获取所述网关代理端从所述数据库中读取的目标数据中的至少部分数据;

将当前获取数据转发至所述数据访问端;其中,所述访问端用于将当前获取数据缓存至缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求;

接收所述数据访问端发送的所述下一次访问请求;

将所述下一次访问请求转发至所述网关代理端,并获取所述网关代理端从所述数据库中继续读取的所述目标数据中的至少部分数据,返回执行所述将当前获取数据转发至所述数据访问端。

第十方面,本申请实施例中提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时实现如上述第一方面所述的数据访问方法。

第十一方面,本申请实施例中提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时实现如上述第二方面所述的数据访问方法。

第十二方面,本申请实施例中提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时实现如上述第三方面所述的数据访问方法。

本申请实施例中,数据访问端响应于数据库访问指令,通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据,并将当前获取数据保存至缓存区域,若检测所述目标数据未读取结束,则通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端从所述数据库继续读取的所述目标数据中的至少部分数据,并返回执行所述将当前获取数据保存至所述缓存区域中的操作,而若缓存区域中存在目标数据的至少部分数据,则可以直接对当前缓存数据进行业务处理。与数据访问端可以对当前获取数据进行业务处理,同时发起下一次访问请求,在当前业务处理结束时,下一次访问请求所获取的数据可能已缓存至缓存区域或者在传输通道中,通过分批次读取方式,将业务处理时间与数据传递时间并行进行,可以充分利用网络,提高数据访问效率。

本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

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

图1示出了本申请提供的一种数据访问系统一个实施例的结构示意图;

图2示出了本申请提供的一种数据访问方法一个实施例的流程图;

图3示出了本申请提供的一种数据访问方法又一个实施例的流程图;

图4a示出了本申请实施例在一个实际应用中的切片数据包的数据格式示意图;

图4b示出了本申请实施例在一个实际应用中的数据进行切片传输的一种交互示意图;

图5示出了本申请提供的一种数据访问方法又一个实施例的流程图;

图6示出了本申请实施例在一个实际应用中的数据访问交互过程示意图;

图7示出了本申请提供的一种数据访问装置一个实施例的结构示意图;

图8示出了本申请提供的一种数据访问设备一个实施例的结构示意图;

图9示出了本申请提供的一种数据访问装置又一个实施例的结构示意图;

图10示出了本申请提供的一种网关设备一个实施例的结构示意图;

图11示出了本申请提供的一种数据访问装置又一个实施例的结构示意图;

图12示出了本申请提供的一种网关设备又一个实施例的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

本申请实施例的技术方案应用于利用数据库网关技术实现数据访问的场景中,数据库网关(databasegateway)是一种支持本地数据库远程访问的数据库连接技术。通过数据库网技术,可以实现云端的数据库服务产品访问本地端数据库的目的,本地端数据库可以是指本地物理机房中部署的数据库或者其它云端部署的数据库等。

由背景技术中可知,数据库网关工作原理,需要在本地端安装网关代理端,云端部署网关服务端,由网关代理端负责与网关服务端建立长连接通道,由于是由被访问侧主动发起连接请求,因此建立的长连接通道也被称为反向通道,数据访问端需要访问本地数据库时,通过建立好的反向通道,即可以实现本地端数据库访问。由于数据访问端进行数据库访问时,会选择一条数据库连接(connection),通过该数据库连接发起数据访问请求,再经由网关服务端将该数据库连接发起的数据访问请求通过反向通道转发至网关代理端。由于反向通道数目有限,存在多个数据库连接复用同一条反向通道的情况,一旦某个数据库连接请求数据量较大时,就会可能独占该反向通道,导致出现通道阻塞,影响数据访问效率。

为了提高数据访问效率,发明人经过一系列研究提出了本申请的技术方案,为了方便理解,如图1中所述为本申请技术方案中所应用的数据访问系统一个实施例的结构示意图,包括数据访问端101、网关服务端102、以及网关代理端103。其中,数据访问端101与网关服务端102部署在同一网络中,为了方便区分,本申请中多称之为云端,网关代理端103与数据库104部署在另一网络中,为了方便区分,本申请中多称之为本地端。

本申请实施例中,数据访问端102可以是指部署在云端的数据库服务产品,例如可以包括数据传输服务(dts),数据库备份服务(dbs),数据库管理服务(dms)等。通过网关代理端103以及网络服务端102即可以实现不同网络间的数据访问。网络代理设备103负责请求网络服务端102建立反向通道,其中,反向通道可以建立多条。

在本申请实施例中,数据访问端响应于数据库访问指令,通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据,并将当前获取数据保存至缓存区域,若检测所述目标数据未读取结束,则通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据,并返回执行所述将当前获取数据保存至所述缓存区域中的操作,而若缓存区域中存在目标数据的至少部分数据,则可以直接对当前缓存数据进行业务处理。与数据访问端可以对当前获取数据进行业务处理,同时发起下一次访问请求,在当前业务处理结束时,下一次访问请求所获取的数据可能已缓存至缓存区域或者在传输通道中,通过分批次读取方式,将业务处理时间与数据传递时间并行进行,因此可以充分利用网络,提高数据访问效率。

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

图2为本申请实施例提供的一种数据访问方法一个实施例的流程图,本实施例的技术方案由数据访问端执行,可以包括以下几个步骤:

201:响应于数据库访问指令,通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据。

其中,数据库访问指令可以是用户针对待访问的数据库触发的,可以包括查询语句如sql(structuredquerylanguage,结构化查询语言)语句等,用以请求获取该数据库中的目标数据的访问指令。

数据访问端可以创建多条数据库连接,响应于该数据库访问指令,可以选择目标数据库连接。用于向网关服务端发起访问请求,并通过网关服务端向网关代理端转发该访问请求。

该访问请求中可以包括该查询语句、表示目标数据的数据标识,此外还可以包括表示目标数据库连接的连接标识等。

其中,该网关代理端为该数据库所在本地端部署的,该网关代理端与网关服务端之间建立多条反向通道,网关服务端可以选择目标反向通道将该访问请求发送至网关代理端。网关服务端还可以保存该目标反向通道的通道标识与该数据库连接的连接标识的对应关系等。

该网关代理端响应于该访问请求,可以与数据库建立连接,基于访问请求中的查询语句进行数据查询,本实施例中,会读取目标数据中的至少部分数据。网关代理端可以将当前读取的至少部分数据通过目标反向通道返回至网关服务端,网关服务端可以该至少部分数据返回至数据访问端。

202:将当前获取数据保存至缓存区域。

该当前获取数据,也即是指所述网关代理端响应访问请求,当前读取的目标数据中的至少部分数据。

可选地,响应于数据库访问指令,可以创建所述缓存区域。可以是响应于数据库访问指令,确定目标数据库连接之后,为所述目标数据库连接创建的对应的缓存区域。数据访问端可以基于该目标数据库连接向网关服务端发起访问请求。

203:检测所述目标数据未读取结束,通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据,并返回步骤202继续执行。

可选地,由于网关代理端可以获知目标数据是否读取结束,因此网关代理端返回的当前读取数据中可以封装标识信息,该标识信息中可以包括表示是否继续读取所述目标数据的第一标识符,从而所述数据访问端可以基于当前获取数据中的所述第一标识符来确定所述目标数据是否读取结束。

若目标数据未读取结束,则继续发起下一次访问请求。

其中,该下一次访问请求与该访问请求所包含信息内容可以相同,或者由于访问请求中已将查询语句发送至网关代理端,则下一次访问请求中可以不包括该查询语句,可以包括目标数据库连接的连接标识和/或目标数据的数据标识,从而网关代理端基于该数据库连接标识或者数据标识,可以确定是对目标数据的访问等。

其中,该下一次访问请求可以通过上述选择目标反向通道发送至网关代理端。

网关代理端响应于下一次访问请求,可以将继续读取的目标数据的至少部分数据通过网关服务端返回至数据访问端,数据访问端对于当前获取数据可以继续执行步骤202的操作,将其缓存至缓存区域,并继续检测目标数据未读取结束时,继续发起下一次访问请求直至目标数据读取结束。

可选地,步骤202中将当前获取数据缓存至缓存区域以及步骤203中检测目标数据未读取结束,发起下一次访问请求可以同时异步执行。

204:查询所述缓存区域中存在所述目标数据的至少部分数据,对当前缓存数据进行业务处理。

其中,查询缓存区域中是否存在数据可以实时或定时查询,或者前一次业务处理结束之后进行查询,以保证业务处理操作和数据访问操作并行执行等。

可选地,响应于数据库访问指令,创建缓存区域之后可以创建查询线程,利用查询线程查询缓存区域是否存在目标数据,若是,则可以对缓存区域中当前缓存数据进行业务处理。

本实施例中,采用分批次读取方式,数据访问端对当前获取数据进行业务处理时,同时发起下一次访问请求,在当前业务处理结束时,下一次访问请求所获取的数据可能已缓存至缓存区域或者在传输通道中,因此将业务处理时间与数据传输时间并行进行,因此可以充分利用网络,提高数据访问效率。

其中,网关代理端每一次通过网关服务端所发送的目标数据中的至少部分数据的数据量可以结合数据访问端对该数据的数据处理时间,以及该数据在目标反向通道中的传输延时时间确定,以保证数据访问端对前一次获取数据进行业务处理结束时,下一次获取数据已到达数据访问端并缓存至缓存区域,以保证业务处理持续进行,保证数据访问效率。

在某些实施例中,所述查询所述缓存区域中存在所述目标数据的至少部分数据,对当前缓存数据进行业务处理可以包括:

查询所述缓存区域中是否存在所述目标数据的至少部分数据;

若是,对当前缓存数据进行业务处理。

若否,通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据,并返回执行所述将所述至少部分数据保存至所述缓存区域中。

也即若由于某些原因导致下一次获取数据未到达数据访问端时,此时数据访问端也可以发起下一次访问请求,以继续获取数据。

作为一种可选实现方式,所述通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据可以包括:

向网关服务端发起访问请求,以供所述网关服务端将所述访问请求发送至网关代理端,其中,所述网关代理端基于所述访问请求从所述数据库中读取目标数据中的至少部分数据,并将所述至少部分数据返回所述网关服务端;

获取所述网关服务端发送的所述至少部分数据;

所述通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据包括:

向所述网关服务端发起下一次访问请求,以供所述网关服务端将所述下一次访问请求发送至所述网关代理端;其中,所述网关代理端基于所述下一次访问请求,从所述数据库中继续读取所述目标数据中的至少部分数据返回所述网关服务端;

获取所述网关服务端发送的所述至少部分数据。

也即网关代理端可以是响应于下一次访问请求,再继续读取目标数据中的至少部分数据。

需要说明的是,网关代理端响应于访问请求以及响应于下一次访问请求,所读取的至少部分数据的数据量可以相同或不同,网关代理端响应于不同的下一次访问请求,所读取的至少部分数据的数据量也可以相同或不同。为了方便控制,可选地,网关代理端每一次从目标数据中读取的数据量可以相同。

此外,为了进一步提高数据访问效率,作为另一种可选实现方式,所述通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据可以包括:

向网关服务端发起访问请求,以供所述网关服务端将所述访问请求发送至网关代理端,其中,所述网关代理端基于所述访问请求创建读取线程以及阻塞队列,利用所述读取线程从所述数据库读取目标数据,并按照第一数据量为基本单位将每个第一数据量的数据块缓存至所述阻塞队列中,并从所述阻塞队列中读取至少一个数据块发送至所述网关服务端;

获取所述网关服务端发送的所述至少一个数据块;

所述通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据包括:

向所述网关服务端发起下一次访问请求,以供所述网关服务端将所述下一次访问请求发送至所述网关代理端;其中,所述网关代理端基于所述下一次访问请求,从所述阻塞队列中读取至少一个数据块发送至所述网关服务端;

获取所述网关服务端发送的所述至少一个数据块。

也即网关代理端响应于访问请求,可以创建读取线程以及阻塞队列,利用读取线程可以持续从数据库中读取目标数据,并按照第一数据量为基本单位将每个第一数据量的数据块缓存至所述阻塞队列中。网关代理端可以从所述阻塞队列中读取至少一个数据块并发送至所述网关服务端;也即网关代理端所发送的至少部分数据为该阻塞队列中的至少一个数据块。

而网关代理端接收到下一次访问请求,由于读取线程可以持续读取目标数据,因此网关代理端可以直接从阻塞队列中读取至少一个数据块并通过网关服务端发送至数据访问端。

网关代理端响应于访问请求或下一次访问请求,每一次所发送的至少一个数据块的数量可以相同也可以不同,可选地,网关代理端每一次可以是将阻塞队列中当前缓存的所有数据块全部发送至数据访问端。

其中,网关代理端可以针对访问请求对应的目标数据库连接,创建对应的阻塞队列,从而对于接收到的下一次访问请求,可以根据请求中的连接标识,查找对应阻塞队列,并从中读取至少一个数据块。

数据访问端每一次所获取的数据也即是网关代理端所发送的至少一个数据块。

在某些实施例中,为了保证数据传输效率,网关代理端每一次所发送的至少部分数据可以由所述网关代理端进行压缩处理,并切分获得为多个切片数据包,该多个切片数据包基于逐个发送至服务端。

因此,所述获取所述网关服务端发送的所述至少部分数据可以包括:

获取所述网关服务端发送的所述至少部分数据对应的多个切片数据包;

将多个切片数据包按照切片顺序组合获得压缩数据;

从所述压缩数据中解压获得所述至少部分数据。

其中,网关代理端可以将所述压缩数据进行切片,并将每个切片数据封装头部信息,获得多个切片数据包;其中,所述头部信息包括切片顺序标识符;所述数据访问端可以基于所述切片顺序标识符来确定所述多个切片数据包的切片顺序。

此外该头部信息中还可以包括该至少部分数据的数据总长度以及当前切片数据包的数据长度,从而数据访问端结合该数据总长度以及每个切片数据包的数据长度,来确定该至少部分数据对应的切片数据包是否全部接收完成等。

在某些实施例中,网关代理端所发送的至少部分数据为至少一个数据块时,网关代理端可以是将每一次所发送的至少一个数据块进行压缩处理,并切分获得为多个切片数据包。

因此,所述获取所述网关服务端发送的所述至少部分数据可以包括:

获取所述网关服务端发送的至少一个数据对应的多个切片数据包;

将多个切片数据包按照切片顺序组合获得压缩数据;

从所述压缩数据中解压获得所述至少一个数据块。

在某些实施例中,所述查询所述缓存区域中是否存在所述目标数据的至少部分数据可以包括:

定时查询所述缓存区域中是否存在所述目标数据的至少部分数据。

为了保证业务处理持续性,在某些实施例中,所述方法还可以包括:

若当前业务处理结束,返回执行查询所述缓存区域中是否存在所述目标数据的至少部分数据的操作。

也即每一次业务处理结束,即可以立即查询缓存区域中是否存在数据,

在某些实施例中,为了进一步保证数据访问效率,所述响应于数据库访问指令,通过网关服务端向网关代理端发起访问请求可以包括:

响应于数据库访问指令,从网关服务端与网关代理端之间的多条反向通道中选择目标反向通道;

向所述网关服务端发起访问请求,并触发所述网关服务端利用所述目标反向通道将所述访问请求发送至所述网关代理端。

也即,目标反向通道可以由数据访问端确定并指示网关服务端选择该目标反向通道转发访问请求等。

网关服务端可以将多条反向通道的负载情况反馈给数据访问端,数据访问端可以结合多条反向通道的负载,来确定目标反向通道,例如选择负载少于一定阈值的一条反向通道作为目标反向通道等。

在某些实施例中,所述向所述网关服务端发起访问请求可以包括:

选择目标数据库连接向所述网关服务端发起访问请求。

也即数据访问端会选择一条数据库连接,即目标数据库连接,发起访问请求,访问请求中可以包括目标数据库连接的连接标识,网关服务端可以为该目标反向通道对应保存该连接标识,网关代理端每一次所发送的数据中封装该连接标识,从而网关服务端可以选择对应的目标反向通道来转发网关代理端所发送的数据。

此外,数据访问端同样选择该目标数据库连接向所述网关服务端发起下一次访问请求。从而网关服务端基于该目标数据库连接的连接标识,选择该目标反向通道转发下一次访问请求。

图3为本申请实施例提供的一种数据访问方法又一个实施例的流程图,本实施例的技术方案由网关代理端执行,可以包括以下几个步骤:

301:响应于网关服务端发送的访问请求,从数据库中读取目标数据的至少部分数据。

其中,所述访问请求为数据访问端基于所述数据库的访问指令发起。

302:将所述至少部分数据通过所述网关服务端返回至所述数据访问端,以供所述数据访问端将所述至少部分数据缓存至所述缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求。

303:响应于所述下一次访问请求,继续读取所述目标数据中的至少部分数据,并返回执行步骤302。

作为一种可选实现方式,所述响应于所述下一次访问请求,继续读取所述目标数据中的至少部分数可以包括:

响应于所述下一次访问请求,从数据库中继续读取所述目标数据的至少部分数据。

也即可以是从数据库中继续读取目标数据的至少部分数据。

作为另一种可选实现方式,为了进一步提高数据访问效率,所述响应于网关服务端发送的访问请求,从数据库中读取目标数据的至少部分数据可以包括:

响应于网关服务端发送的访问请求,创建读取线程及阻塞队列;

利用所述读取线程从数据库中读取目标数据,并按照第一数据量为基本单位将每个第一数据量的数据块缓存至阻塞队列中;

检测所述阻塞队列中存在数据,从所述阻塞队列中读取至少一个数据块;

所述响应于所述下一次访问请求,继续读取所述目标数据中的至少部分数据包括:

响应于所述下一次访问请求,从所述阻塞队列中读取至少一个数据块。

也即网关代理端是响应于下一次访问请求,是从阻塞队列中继续读取至少一个数据块,该至少一个数据块即为目标数据中的至少部分数据。

其中,该访问请求中可以包括目标数据库连接的连接标识,因此可以是对应连接标识创建读取线程以及阻塞队列,不同数据库连接所对应的读取线程及阻塞队列可以分别是独立存在的。从而根据下一次访问请求中的连接标识,可以确定对应的阻塞队列,并从中读取至少一个数据块。

若阻塞队列中不存在数据,则可以等待直接阻塞队列中存储数据。

其中,网关代理端每一次从阻塞队列中读取的至少一个数据块的数量可以相同或者不同。可选地,网关代理端可以是每一次均读取阻塞队列中的当前缓存的所有数据块。

网关代理端响应于访问请求或下一次访问请求,每一次所发送的至少一个数据块的数量可以相同也可以不同,可选地,网关代理端每一次可以是将阻塞队列中当前缓存的所有数据块全部发送至数据访问端。

其中,该第一数据量例如可以为8mb(mbyte,兆字节),网关代理端每一次读取的至少一个数据块的数据量例如可以最大不超过64mb,该第一数据量可以结合实际传输情况而进行设定和调整。

在某些实施例中,所述方法还可以包括:

检测所述阻塞队列的存储空间占满,暂停所述读取线程从数据库中读取所述目标数据直至所述阻塞队列存在空闲存储空间。

也即若阻塞队列中存储空间占满,此时可以暂停从数据库中读取目标数据的操作,直接检测阻塞队列中存在空闲存储空间时,再重新启动。

在某些实施例中,所述检测所述阻塞队列中存在数据,从所述阻塞队列中读取至少一个数据块可以包括:

响应于所述访问请求,创建第一请求线程;

利用所述第一请求线程述检测所述阻塞队列中存在数据,从所述阻塞队列中读取至少一个数据块;

所述响应于所述下一次访问请求,从所述阻塞队列中读取至少一个数据块包括:

响应于所述下一次访问请求,创建第二请求线程;

利用所述第二请求线程检测所述阻塞队列中存在数据,从所述阻塞队列中读取至少一个数据块。

也即对于访问请求可以创建对应的第一请求线程,而对于每一次接收到的下一次访问请求,可以创建第二请求线程。

第一请求线程以及第二请求线程用于从阻塞队列中读取至少一个数据块。

在某些实施例中,所述将所述至少部分数据通过所述网关服务端返回至所述数据访问端可以包括:

将所述至少部分数据切分获得多个切片数据包;

将所述多个切片数据包逐个通过所述网关服务端返回至所述数据访问端;所述数据访问端用于将所述多个切片数据包按照切片顺序组合获得所述至少部分数据。

此外,在某些实施例中,所述将所述至少部分数据通过所述网关服务端返回至所述数据访问端可以包括:

将所述至少部分数据进行压缩处理,获得压缩数据;

将所述压缩数据切分获得多个切片数据包;

将所述多个切片数据包逐个通过所述网关服务端返回至所述数据访问端;所述数据访问端用于将所述多个切片数据包按照切片顺序组合获得所述压缩数据,并从所述压缩数据中解压获得所述至少部分数据。

也即通过压缩处理可以降低数据传输量,提高数据传输效率。

为了避免网关服务端接收内存不足而影响数据传输,可以将压缩数据进行切分获得多个切片数据包。再将多个切片数据包逐个发送至网关服务端,由网关服务端转发至数据访问端。

该多个切片数据包具有切片顺序,数据访问端按照切片顺序进行组合即可以得到压缩数据,从压缩数据中即可以解压获得该至少部分数据。

在某些实施例中,所述将所述压缩数据切分获得多个切片数据包可以包括:

将所述压缩数据进行切片,并将每个切片数据封装头部信息,获得多个切片数据包;其中,所述头部信息包括切片顺序标识符;所述数据访问端基于所述切片顺序标识符确定所述多个切片数据包的切片顺序。

此外,该头部信息中还可以包括数据总长度、切片数据长度等,以确定多个切片数据包是否接收完成等。

在一个实际应用中,如图4a中所示,示出了一个切片数据包的一种数据格式示意图,包括头部信息401以及切片数据402。可选地,该头部信息401中可以包括:

version:表示通信协议版本号。

actiontupe:业务标识符,表示数据进行何种类型的业务处理等,例如拷贝或者迁移等。

compress:表示数据是否被压缩,例如1表示压缩,0表示未压缩等。

contenlength:表示数据总长度,也即该至少部分数据的数据总长度。

currentlength:表示当前切片数据长度。

sign:表示目标数据库连接的连接标识,用于区分不同数据库连接,特别是多个数据库连接复用一个反向通道时。

serial:表示切片顺序标识符,可以采用序列号表示,例如阿拉伯数字1、2、3…,不同序号号代表不同切片顺序。

space:表示预留空间。

其中,可选地,所述将所述压缩数据进行切片可以包括:

将所述压缩数据按照第二数据量为基本单位进行切片。

该第二数据量例如可以为128kb(kilobyte,千字节)等。

此外,在某些实施例中,所述将所述至少部分数据通过所述网关服务端返回至所述数据访问端可以包括:

将所述至少部分数据封装标识信息之后,通过所述网关服务端返回至所述数据访问端;其中,所述标识信息中包括表示是否继续读取所述目标数据的第一标识符,所述数据访问端用于基于所述第一标识符确定所述目标数据是否读取结束。

当然,结合不同的通信场景,该标识信息必然还包括一些其它信息,本申请对此不进行具体限制。

在某些实施例中,所述将所述至少部分数据进行压缩处理,获得压缩数据可以包括:

将所述至少部分数据封装标识信息之后,进行压缩处理,获得压缩数据。

在某些实施例中,所述将所述至少部分数据切分获得多个切片数据包可以包括:

将所述至少部分数据封装标识信息之后,进行切分,以获得多个切片数据包。

如图4b中所示,示出了本申请实施例中数据进行切片传输的一种交互示意图。如图4b中可知,网关代理端103可以将从数据库104中读取的当前需要传递的至少部分数据可以进行压缩处理,获得压缩数据,再将压缩数据进行切片处理,获得多个切片数据包,每个切片数据包的数据格式可以如图4a所示,通过切片顺序标识符表示切片数据包的切片数据,如图4b中以切片顺序标识符标识了每个切片数据包,假设包括:packet0、packet1、packet2……packet255等多个切片数据包。当然,当前传递数据也可以首先进行压缩处理,获得压缩数据,再将压缩数据进行切片获得多个切片数据包。

网关代理端103通过反向通道将多个切片数据包逐个发送至网关服务端102,网关服务端102再转发至数据访问端101。

数据访问端101将多个切片数据包按照切片顺序标识符代表的切片顺序,进行组合,并解压即可以获得当前传递的至少部分数据。

对于组合解压获得的至少部分数据即可以进行业务处理。

图5为本申请实施例提供的一种数据访问方法又一个实施例的流程图,本实施例的技术方案由网关服务端执行,可以包括以下几个步骤:

501:接收数据访问端发送的访问请求。

其中,所述访问请求为数据访问端基于数据库访问指令发起。

502:将所述访问请求转发至网关代理端,并获取所述网关代理端从所述数据库中读取的目标数据中的至少部分数据。

503:将当前获取数据转发至所述数据访问端。

其中,所述访问端用于将当前获取数据缓存至缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求。

504:接收所述数据访问端发送的所述下一次访问请求;

505:将所述下一次访问请求转发至网关代理端,并获取所述网关代理端继续读取的所述目标数据中的至少部分数据,返回执行所述步骤503。

在某些实施例中,将所述访问请求转发至网关代理端可以是:

选择目标反向通道将所述访问请求转发至网关代理端。

所述将所述下一次访问请求转发至网关代理端可以包括:

利用所述目标反向通道将所述下一次访问请求转发至所述网关代理端。

由前文描述可知,本申请实施例的技术方案应用于如图1所示的数据访问系统中,为了方便理解,下面从系统角度对本申请实施例的技术方案进行说明。结合图6所示的数据访问过程交互示意图,数据访问端101响应于数据库访问指令,生成访问请求,可以通过目标数据库连接向网关服务端102发送该访问请求,同时可以创建缓存区域,并查询缓存区域中是否存在数据。

网关服务端102负责通过目标反向通道将该访问请求转发至网关代理端103。

网关代理端103可以创建读取线程以及对应的阻塞队列,可以对应目标数据库连接创建对应的读取线程以及阻塞队列。读取线程负责从数据库104中读取目标数据,并以第一数据量为基本单位,将读取获得的每个第一数据量的数据块缓存至阻塞队列中。其中,若目标数据读取结束,且当前读取数据量少于第一数据量时,也可以将其作为一个数据块而缓存至阻塞队列中。

网关代理端103可以从阻塞队列中读取至少一个数据块,将该至少一个数据块通过目标反向通道返回至网关服务端102,由网关服务端102将该至少一个数据块转发至网关代理端103.

其中,该至少一个数据块可以压缩并切分为多个切片数据包而传输。

从而数据访问端101获得多个切片数据包之后,可以组合并解压获得该至少一个数据块。将至少一个数据块缓存至缓存区域的同时,若检测目标数据未读取结束,从向网关服务端102发起下一次访问请求。同时数据访问端101查询获得缓存区域中存在数据时,即可以对当前缓存数据进行业务处理,使得业务处理时间和数据访问时间并行起来。

网关服务端102将下一次访问请求转发至网关代理端103,由于读取线程会一直读取目标数据,并缓存只阻塞队列中,因此可以将阻塞队列中当前缓存的至少一个数据块发送至网关服务端102,网关服务端102将该至少一个数据块返回至数据访问端101之后,数据访问端将至少一个数据块缓存至缓存区域的同时,若检测目标数据未读取结束,从向网关服务端102发起下一次访问请求直接目标数据读取结束。

由此可知,本申请实施例中,数据访问端可以对当前获取数据进行业务处理时,可以发起下一次访问请求,在当前业务处理结束时,下一次访问请求所获取的数据可能已缓存至缓存区域或者在传输通道中,通过分批次读取方式,将业务处理时间与数据访问时间并行进行,因此可以充分利用网络,提高数据访问效率。

图7为本申请实施例提供的一种数据访问装置一个实施例的结构示意图,该装置可以包括:

第一请求模块701,用于响应于数据库访问指令,通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据;

第一缓存模块702,用于将当前获取数据保存至缓存区域;

第二请求模块703,用于检测所述目标数据未读取结束,通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据,并触发所述第一缓存模702块执行;

业务处理模块704,用于查询所述缓存区域中存在所述目标数据的至少部分数据,对当前缓存数据进行业务处理。

在某些实施例中,所述业务处理模块具体用于查询所述缓存区域中是否存在所述目标数据的至少部分数据;若是,对当前缓存数据进行业务处理;若否,通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据,并返回执行所述将所述至少部分数据保存至所述缓存区域中。

在某些实施例中,所述第一请求模块通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据包括:向网关服务端发起访问请求,以供所述网关服务端将所述访问请求发送至网关代理端,其中,所述网关代理端基于所述访问请求从所述数据库中读取目标数据中的至少部分数据,并将所述至少部分数据返回所述网关服务端;获取所述网关服务端发送的所述至少部分数据;

所述第二请求模块通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据包括:向所述网关服务端发起下一次访问请求,以供所述网关服务端将所述下一次访问请求发送至所述网关代理端;其中,所述网关代理端基于所述下一次访问请求,从所述数据库中继续读取所述目标数据中的至少部分数据返回所述网关服务端;获取所述网关服务端发送的所述至少部分数据。

在某些实施例中,所述第一请求模块通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据包括:向网关服务端发起访问请求,以供所述网关服务端将所述访问请求发送至网关代理端,其中,所述网关代理端基于所述访问请求创建读取线程以及阻塞队列,利用所述读取线程从所述数据库读取目标数据,并按照第一数据量为基本单位将每个第一数据量的数据块缓存至所述阻塞队列中,并从所述阻塞队列中读取至少一个数据块发送至所述网关服务端;获取所述网关服务端发送的所述至少一个数据块;

所述第二请求模块通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据包括:向所述网关服务端发起下一次访问请求,以供所述网关服务端将所述下一次访问请求发送至所述网关代理端;其中,所述网关代理端基于所述下一次访问请求,从所述阻塞队列中读取至少一个数据块发送至所述网关服务端;获取所述网关服务端发送的所述至少一个数据块。

在某些实施例中,所述至少部分数据由所述网关代理端进行压缩处理,并切分获得为多个切片数据包;

所述第一请求模块获取所述网关服务端发送的所述至少部分数据包括:获取所述网关服务端发送的所述至少部分数据对应的多个切片数据包;将多个切片数据包按照切片顺序组合获得压缩数据;从所述压缩数据中解压获得所述至少部分数据。

所述第二请求模块获取所述网关服务端发送的所述至少部分数据包括:获取所述网关服务端发送的所述至少部分数据对应的多个切片数据包;将多个切片数据包按照切片顺序组合获得压缩数据;从所述压缩数据中解压获得所述至少部分数据。

在某些实施例中,该装置还可以包括:

缓存创建模块,用于响应于数据库访问指令,创建所述缓存区域。

在某些实施例中,所述业务处理模块查询所述缓存区域中是否存在所述目标数据的至少部分数据具体是定时查询所述缓存区域中是否存在所述目标数据的至少部分数据。

在某些实施例中,所述业务处理模块还用于若当前业务处理结束,返回执行查询所述缓存区域中是否存在所述目标数据的至少部分数据的操作。

在某些实施例中,所述第一请求模块具体用于响应于数据库访问指令,从网关服务端与网关代理端之间的多条反向通道中选择目标反向通道;向所述网关服务端发起访问请求,并触发所述网关服务端利用所述目标反向通道将所述访问请求发送至所述网关代理端。

在某些实施例中,所述第一请求模块向所述网关服务端发起访问请求包括:选择目标数据库连接向所述网关服务端发起访问请求。

图7所述的数据访问装置可以执行图2所示实施例所述的数据访问方法,其实现原理和技术效果不再赘述。对于上述实施例中的数据访问装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在一个可能的设计中,图7所示实施例的数据访问装置可以实现为数据访问设备,如图8所示,该数据访问设备可以包括存储组件801以及处理组件802;

所述存储组件801存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件802调用执行。

所述处理组件802用于:

响应于数据库访问指令,通过网关服务端向网关代理端发起访问请求,以获取所述网关代理端从所述数据库读取的目标数据中的至少部分数据;

将当前获取数据保存至缓存区域;

检测所述目标数据未读取结束,通过所述网关服务端向所述网关代理端发起下一次访问请求,以获取所述网关代理端继续读取的所述目标数据中的至少部分数据,并返回执行所述将当前获取数据保存至所述缓存区域中;

查询所述缓存区域中存在所述目标数据的至少部分数据,对当前缓存数据进行业务处理。

当然,该数据访问设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。

输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。

通信组件被配置为便于数据访问设备和其他设备之间有线或无线方式的通信等。

其中,该数据访问设备具体是指部署在云计算平台的设备,其可以为一种云服务器,上述处理组件、存储组件等硬件设备可以是云计算平台提供的基础资源。

此外,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图2所示实施例的数据访问方法。

图9为本申请实施例提供的一种数据访问装置又一个实施例的结构示意图,该装置可以包括:

第一读取模块901,用于响应于网关服务端发送的访问请求,从数据库中读取目标数据的至少部分数据;其中,所述访问请求为数据访问端基于所述数据库的访问指令发起;

第一发送模块902,用于将所述至少部分数据通过所述网关服务端返回至所述数据访问端,以供所述数据访问端将当前获取数据缓存至所述缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求;

第二读取模块903,用于响应于所述下一次访问请求,继续读取所述目标数据中的至少部分数据,并触发所述第一发送模块902执行。

在某些实施例中,所述第二读取模块具体用于响应于所述下一次访问请求,从数据库中继续读取所述目标数据的至少部分数据。

在某些实施例中,所述第一读取模块具体用于响应于网关服务端发送的访问请求,创建读取线程及阻塞队列;利用所述读取线程从数据库中读取目标数据,并按照第一数据量为基本单位将每个第一数据量的数据块缓存至阻塞队列中;检测所述阻塞队列中存在数据,从所述阻塞队列中读取至少一个数据块;

所述第二读取模块具体用于响应于所述下一次访问请求,从所述阻塞队列中读取至少一个数据块。

在某些实施例中,所述第一读取模块还用于检测所述阻塞队列的存储空间占满,暂停所述读取线程从数据库中读取所述目标数据直至所述阻塞队列存在空闲存储空间。

在某些实施例中,所述第一读取模块检测所述阻塞队列中存在数据,从所述阻塞队列中读取至少一个数据块包括:响应于所述访问请求,创建第一请求线程;利用所述第一请求线程述检测所述阻塞队列中存在数据,从所述阻塞队列中读取至少一个数据块;

所述第二读取模块响应于所述下一次访问请求,从所述阻塞队列中读取至少一个数据块包括:响应于所述下一次访问请求,创建第二请求线程;利用所述第二请求线程检测所述阻塞队列中存在数据,从所述阻塞队列中读取至少一个数据块。

在某些实施例中,所述第一发送模块具体用于将所述至少部分数据进行压缩处理,获得压缩数据;将所述压缩数据切分获得多个切片数据包;将所述多个切片数据包逐个通过所述网关服务端返回至所述数据访问端;所述数据访问端用于将所述多个切片数据包按照切片顺序组合获得所述压缩数据,并从所述压缩数据中解压获得所述至少部分数据。

在某些实施例中,所述第一发送模块将所述压缩数据切分获得多个切片数据包包括:将所述压缩数据进行切片,并将每个切片数据封装头部信息,获得多个切片数据包;其中,所述头部信息包括切片顺序标识符;所述数据访问端基于所述切片顺序标识符确定所述多个切片数据包的切片顺序。

在某些实施例中,所述第一发送模块将所述压缩数据进行切片包括:

将所述压缩数据按照第二数据量为基本单位进行切片。

在某些实施例中,所述第一发送模块具体用于将所述至少部分数据封装标识信息之后,通过所述网关服务端返回至所述数据访问端;其中,所述标识信息中包括表示是否继续读取所述目标数据的第一标识符,所述数据访问端用于基于所述第一标识符确定所述目标数据是否读取结束。

图9所述的数据访问装置可以执行图3所示实施例所述的数据访问方法,其实现原理和技术效果不再赘述。对于上述实施例中的数据访问装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在一个可能的设计中,图9所示实施例的数据访问装置可以实现为网关设备,该网关设备可以是部署在本地端的网关代理端,如图10中所示,该网关设备可以包括存储组件1001以及处理组件1002;

所述存储组件1001存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件1002调用执行。

所述处理组件1002用于:

响应于网关服务端发送的访问请求,从数据库中读取目标数据的至少部分数据;其中,所述访问请求为数据访问端基于所述数据库的访问指令发起;

将所述至少部分数据通过所述网关服务端返回至所述数据访问端,以供所述数据访问端将当前获取数据缓存至所述缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求;

响应于所述下一次访问请求,继续读取所述目标数据中的至少部分数据,并返回执行所述将所述至少部分数据通过所述网关服务端返回至所述数据访问端。

当然,该网关设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。通信组件被配置为便于网关设备和其他设备之间有线或无线方式的通信等。

其中,该网关设备可以是指物理设备或者部署在云计算平台上的设备,其为部署在云计算平台上的设备时,上述处理组件、存储组件等硬件设备可以是云计算平台提供的基础资源。

此外,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图3所示实施例的数据访问方法。

图11为本申请实施例提供的一种数据访问装置又一个实施例的结构示意图,该装置可以包括:

第一接收模块1101,用于接收数据访问端发送的访问请求;其中,所述访问请求为数据访问端基于数据库访问指令发起;

第一获取模块1102,用于将所述访问请求转发至网关代理端,并获取所述网关代理端从所述数据库中读取的目标数据中的至少部分数据;

第一转发模块1103,用于将当前获取数据转发至所述数据访问端;其中,所述访问端用于将当前获取数据缓存至缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求;

第二接收模块1104,用于接收所述数据访问端发送的所述下一次访问请求;

第二获取模块1105,用于将所述下一次访问请求转发至所述网关代理端,并获取所述网关代理端从所述数据库中继续读取的所述目标数据中的至少部分数据,并触发所述第一转发模块1103执行。

图11所述的数据访问装置可以执行图5所示实施例所述的数据访问方法,其实现原理和技术效果不再赘述。对于上述实施例中的数据访问装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在一个可能的设计中,图11所示实施例的数据访问装置可以实现为网关设备,该网关设备可以是部署在云端的网关服务端,如图12中所示,该网关设备可以包括存储组件1201以及处理组件1202;

所述存储组件1201存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件1202调用执行。

所述处理组件1202用于:

接收数据访问端发送的访问请求;其中,所述访问请求为数据访问端基于数据库访问指令发起;

将所述访问请求转发至网关代理端,并获取所述网关代理端从所述数据库中读取的目标数据中的至少部分数据;

将当前获取数据转发至所述数据访问端;其中,所述访问端用于将当前获取数据缓存至缓存区域,并检测所述目标数据未读取结束时发起下一次访问请求;

接收所述数据访问端发送的所述下一次访问请求;

将所述下一次访问请求转发至所述网关代理端,并获取所述网关代理端从所述数据库中继续读取的所述目标数据中的至少部分数据,返回执行所述将当前获取数据转发至所述数据访问端。

当然,该网关设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。通信组件被配置为便于网关设备和其他设备之间有线或无线方式的通信等。

其中,该网关设备具体是指部署在云计算平台上的设备,其可以为一种云服务器,上述处理组件、存储组件等硬件设备可以是云计算平台提供的基础资源。

此外,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图5所示实施例的数据访问方法。

上文描述中涉及的处理组件可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

存储组件被配置为存储各种类型的数据以支持在设备上操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

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

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

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