存储对象处理系统、请求处理方法、网关和存储介质与流程

文档序号:26139747发布日期:2021-08-03 14:23阅读:106来源:国知局
存储对象处理系统、请求处理方法、网关和存储介质与流程

本发明数据处理、区块链技术领域,尤其涉及一种存储对象处理系统、请求处理方法、网关和存储介质。



背景技术:

目前,为了减少成本,需要数据都是存储在对象存储集群中,对象存储集群是一种提供数据查询、存储等功能的集群系统,对象存储集群中的存储文件是以对象的形式存储在对象存储系统中,现有的方案中,如果用户需要对对象存储集群内的对象内容进行检索,必须先通过对象名,从对象存储系统中先将对象下载出来放在大数据查询引擎中,再利用大数据查询引擎本地对对象进行解析、检索,最后完成查询操作。

可见,现有的方案中,无法直接对对象内容进行查询,这种方式的弊端很明显:为了实现对数据文件内容进行查询,用户需要自行开发业务代码(用于检索、查询检索)来实现,且需将对象从对象存集群中下载出来,成本较高且性能较差。



技术实现要素:

本发明提供一种存储对象处理系统、请求处理方法、网关和存储介质,以解决现有技术,需将对象从对象存集群中下载出来,成本较高且性能较差的技术问题。

为解决上述技术问题,提供如下方案:

第一方面,提供了一种基于存储对象处理系统的请求处理方法,所述存储对象处理系统包括用户端、网关、presto集群、hive数据仓库工具和对象存储集群,所述presto集群与hive数据仓库工具连接,所述hive数据仓库工具与对象存储集群连接,所述方法包括:

所述网关接收所述用户端发送的执行请求,所述执行请求为用于对所述对象存储集群执行相应操作的请求;

所述网关确定所述执行请求的请求类型;

当所述执行请求的类型为数据查询请求时,所述网关将所述执行请求转发至所述presto集群;

所述presto集群依据所述执行请求从所述对象存储集群的相应对象中读取相应的查询数据;

所述presto集群根据查询数据大小将所述查询数据反馈至所述用户端。

第二方面,提供了一种存储对象处理系统,所述存储对象处理系统包括用户端、网关、presto集群、hive数据仓库工具和对象存储集群,presto集群与hive数据仓库工具连接,hive数据仓库工具与对象存储集群连接:

所述网关,用于接收所述用户端发送的执行请求并确定所述执行请求的请求类型,所述执行请求用于对所述对象存储集群执行相应操作的请求;

当所述执行请求的类型为数据查询请求时,所述网关还用于将所述执行请求转发至所述presto集群;

所述presto集群,用于依据所述执行请求从所述对象存储集群的相应对象中读取相应的查询数据,并用于根据查询数据大小将所述查询数据以对应方式反馈至所述用户端。

第三方面,提供了一种网关,所述网关包括:

接收模块,用于接收所述用户端发送的执行请求,所述执行请求用于对所述对象存储集群执行相应操作的请求;

处理模块,用于确定所述执行请求的请求类型;

发送模块,用于当所述执行请求的类型为数据查询请求时,将所述执行请求转发至所述presto集群,以使所述presto集群依据所述执行请求从所述对象存储集群的相应对象中读取相应的查询数据,并根据查询数据大小将所述查询数据以对应方式反馈至所述用户端。

第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述第一方面任一项所述基于存储对象处理系统的请求处理方法的步骤。

第五方面,提供了一种网关,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如前述第一方面任一项所述基于存储对象处理系统的请求处理方法的步骤。

上述基于存储对象处理系统的请求处理方法所提供的一个方案中,提供了一种新架构的对象存储处理系统,对象存储处理系统包括presto集群、hive数据仓库工具、用户端、对象存储集群和网关,presto集群连接到hive,hive数据仓库工具通过hive的connector连接到对象存储集群,且在对象存储集群上布置网关,本方案中,当需要查询数据时,用户端向对象存储集群发送诸如sql语句的查询请求,由于对象存储集群上布置网关,该sql语句的查询请求可以先被网关所拦截到,网关再将sql语句的查询请求路由至presto集群,从而由presto集群解析该sql的查询请求,然后通过hive数据仓库工具,利用connector从对象存储集群中直接查询对象的数据,而不用单独下载对象出来放在大数据查询引擎中再查询。本提案带来的技术效果是:一方面,利用presto集群、hive数据仓库工具和对象存储集群的连接关系,可以降低查询时间,可以提高查询的效率,另一方面,无需从对象存储集群中单独下载对象出来查询,减少带宽资源消耗,也能降低查询时间,而且,无需单独再编写独立的业务查询,更为便捷,利用presto集群便能查询,整体方案的成本较低,性价比更好,性能更强。

附图说明

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

图1是本发明一实施例中存储对象处理系统的一系统结构示意图;

图2是本发明一实施例中基于存储对象处理系统的请求处理方法的一交互流程图;

图3是本发明一实施例中基于存储对象处理系统的请求处理方法的鉴权过程示意图;

图4是图2中步骤s30的一具体流程示意图;

图5是一实施例中基于存储对象处理系统的请求处理方法的账单生成过程示意图;

图6是一实施例中基于存储对象处理系统的请求处理方法的反馈查询数据的过程示意图;

图7是本发明一实施例中网关的一结构示意图;

图8是本发明一实施例中计算机设备的一结构示意图。

具体实施方式

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

本发明提供的基于存储对象处理系统的请求处理方法,可应用在如图1的存储对象处理系统中,为便于理解本发明,这里先对本发明提供的存储对象处理系统进行描述。本发明提供的存储对象处理系统,如图1所示,包括用户端、网关、presto集群、hive数据仓库工具和对象存储集群,对象存储集群是用于提供对象存储服务(objectstorageservice,obs)的集群,presto集群与hive数据仓库工具连接,hive数据仓库工具与对象存储集群连接,hive数据仓库工具通过自身的connerctoer连接到对象存储集群,其中,在搭建presto集群时,主要包括如下过程:

1)拷贝presto安装包到presto主机上。

2)修改相关配置(如jvm.config、node.properties以及config.properties配置)。

上述配置主要涉及到一些presto的服务参数,比如presto集群的端口、内存、是否为coordinator等。

3)修改hive.properties。

主要涉及hive数据仓库工具的服务地址,也涉及对象存储集群connector的参数,比如对象存储地址、acesskey、secretkey等。需要说明的是,hive数据仓库工具是基于hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供sql查询功能,能将sql语句转变成任务来执行。关于hive数据仓库工具、hadoop的等多细节本发明中不再展开描述。

4)执行./bin/launcherstart启动presto服务。

5)可以理解,在拷贝并修改上述配合之后,便能执行./bin/launcherstart启动presto服务,随后presto集群就能自动连接到hive数据仓库工具,hive数据仓库工具通过connerctoer连接到对象存储集群,更多详细配置过程和建立集群过程,这里不详细展开描述。

其中,用户端可以通过网络与网关进行通信。用户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。presto集群和对象存储集群,可以使用独立的服务器或者是多个服务器组成的服务器集群来实现,本发明不做限定。

网关可以接收用户端的执行请求,从而依据执行请求的类型做相应的转发,网关可以将用户端发送的执行请求路由至presto集群或者hive数据仓库工具,从而完成特定的请求目的。下面将详细进行的描述。

在一实施例中,如图2所示,基于图1所示的存储对象处理系统,提供一种请求处理方法,以该方法应用在图1中的网关为例进行说明,包括如下步骤:

s10:网关接收用户端发送的执行请求,执行请求为用于对对象存储集群执行相应操作的请求。

当用户需要对象存储集群中的存储对象的数据内容进行某种操作时,用户端可以向网关发送执行相应操作的执行请求。网关可以接收到用户端发送的执行请求。其中,该执行请求具体可以是用于执行查询操作的查询数据请求、执行创表操作的创表请求、执行创建数据库的创建请求、上传数据文件的数据上传请求类型等,具体本发明不做限定。在一些示例中,当执行请求的类型为数据查询请求时,具体可以是sql请求。

s20:网关确定执行请求的请求类型。

s30:当执行请求的类型为数据查询请求时,网关将执行请求转发至presto集群;

s40:presto集群依据执行请求从对象存储集群的相应对象中读取相应的查询数据:

s50:presto集群根据查询数据大小将查询数据反馈至用户端。

网关在接收到用户端发送的执行请求之后,需先确定执行请求的类型,在具体实现中,网关可以通过解析执行请求的请求头信息,从而知道该执行请求的请求类型。需要说明的,本发明中,网关对于不同请求类型的执行请求,具有相应的控制逻辑。在该实施例,当执行请求的类型为数据查询请求时,说明该执行请求用于请求从对象存储集群中查询对象数据,这个时候,网关将执行请求转发至presto集群,其中,presto集群被配置为,在接收到该请求类型为数据查询类型的执行请求时,presto集群解析该执行请求以确定查询的范围,再根据查询的范围,通过hive数据仓库工具将对象存储集群中的相应对象的数据内容作为查询数据读取到自身内存中,并会依据查询数据的大小选择对应方式返回给用户端。由于hive数据仓库工具通过connector将presto集群和对象存储集群对接,因此,通过presto集群能实现对对象存储集群中的对象数据的直接查询。

可见,在本发明实施例中,提供了一种基于对象存储处理系统的请求处理方法,其中,该对象存储处理系统包括presto集群、hive数据仓库工具、用户端、对象存储集群和网关,presto集群连接到hive,hive数据仓库工具通过hive的connector连接到对象存储集群,且在对象存储集群上布置网关,本方案中,当需要查询数据时,用户端向对象存储集群发送诸如sql语句的查询请求,由于对象存储集群上布置网关,该sql语句的查询请求可以先被网关所拦截到,网关再将sql语句的查询请求路由至presto集群,从而由presto集群解析该sql的查询请求,然后通过hive数据仓库工具,利用connector从对象存储集群中直接查询对象的数据内容,而不用单独下载对象出来放在大数据查询引擎中再查询。本发明带来的技术效果是:一方面,利用presto集群、hive数据仓库工具和对象存储集群的连接关系,可以降低查询时间,可以提高查询的效率,另一方面,无需从对象存储集群中单独下载对象出来查询,减少带宽资源消耗,也能降低查询时间,而且,无需单独再编写独立的业务查询,更为便捷,利用presto集群便能查询,整体方案的成本较低,性价比更好,性能更强。

在一实施例中,执行请求的请求头中包括请求签名,请求签名由请求统一资源定位地址、请求时刻和用户密钥所生成,网关确定执行请求的请求类型之前,如图3所示,方法还包括如下步骤:

s101:网关解析执行请求得到请求头,并从请求头中提取出请求签名。

s102:网关对请求签名进行校验处理。

s103:当请求签名通过检验时,则网关触发执行确定执行请求的请求类型的步骤。

s104:当请求签名未通过检验,则网关拒绝处理执行请求。

对于步骤s101-s104,用户端在发送执行请求时,用户端会根据用户端的请求统一资源定位地址、请求时刻和用户密钥等参数生成请求签名,其中,用户密钥指的是用户的唯一身份标识信息,用户密钥可以是用户的身份证信息或者初始注册所申请的唯一身份标识信息,这里不做限定。请求签名可以采用预设签名算法,结合请求统一资源定位地址、请求时刻和用户密钥等参数所生成,具体这里不做限定,也不展开赘述,该请求鉴权用于提供给网关进行鉴权处理。

网关在接收到执行请求之后,需对用户端所发送的执行请求进行鉴权处理,具体地,网关解析执行请求得到请求头,并从请求头中提取出请求签名,随后网关对请求签名进行校验处理。其中,检验处理可以采用各种预设鉴权算法处理,具体本发明也不做限定。例如,可以利用鉴权中心对上述请求签名进行验证,又例如,网关直接根据执行请求的统一资源定位地址、请求时刻和用户密钥等参数生成请求鉴签名,将此请求签名与请求头中包含的请求签名进行匹配,如果两个请求签名匹配,说明用户端发送的执行请求中途未被篡改,则能通过校验,网关会触发执行确定执行请求的请求类型的步骤,也就是允许转发执行请求。如果两个请求签名不匹配,说明用户端发送的执行请求可能中途被篡改,则不能通过检验,网关拒绝处理执行请求。通过该措施,可以看出,本发明提供的网关具有鉴权功能,可以有效的保证对象存储集群中的数据安全性。

在一实施例中,如图4所示,步骤s30中,也即网关将执行请求转发至presto集群,具体包括如下步骤:

s31:网关解析执行请求,以确定请求用户。

s32:网关获取预设用户操作资源列表,预设用户操作资源列表记录有不同的用户能够查询的对象存储集群的数据资源。

s33:网关检索预设用户操作资源列表,以确定请求用户能够查询的数据资源。

s34:网关判断执行请求需查询的查询数据是否属于请求用户能够查询的数据资源。

s35:当执行请求需查询的查询数据属于请求用户能够查询的数据资源,则网关触发将执行请求转发至presto集群的步骤。

s36:当执行请求需查询的查询数据不属于请求用户能够查询的数据资源,则网关拒绝转发执行请求,并向用户端反馈拒绝查询提示。

对于步骤s31-s36,为了更加有效地管控各个用户的数据资源,网关接收到执行请求之后,还需解析执行请求,以确定请求用户,并会获取预设用户操作资源列表,预设用户操作资源列表记录有不同的用户能够查询的对象存储集群的数据资源,例如,该预设用户操作资源列表记录了用户1可以查询数据资源1、用户2可以查询的数据资源2、、、用户n可以查询数据资源n。其中,数据资源1-n,指的是能够操作的数据范围或者数据对象。

例如,网关在接收到用户1用于查询数据资源2的执行请求时,网关通过检索预设用户操作资源列表,可以确定该执行请求需查询的数据资源2不属于该用户1能够查询的数据资源,则网关拒绝转发该执行请求,并向用户1的用户端反馈拒绝查询提示,以提示用户1无权查询。又例如,网关在接收到用户2用于查询数据资源2的执行请求时,网关通过检索预设用户操作资源列表,可以确定该执行请求需查询的查询数据资源2属于该用户2,则网关触发将执行请求转发至presto集群的步骤,以便用户2能成功查询到数据资源2。

可见,通过本发明实施例,可以实现对用户资源的隔离,能约束用户的操作,用户能够操作的资源是相互隔离的,具有更高的安全性。

在一实施例中,步骤s30之后,也即网关将执行请求转发至presto集群之后,如图5所示,方法还包括如下步骤:

s201:网关从对象存储集群中拉取不同桶的流量。

s202:网关在不同桶的流量中,过滤出presto集群的访问量。

s203:网关根据presto集群的访问量,确定出预设账单计算周期内请求用户的查询流量。

s204:网关根据查询流量,生成请求用户在预设账单计算周期内的账单信息。

s205:网关向请求用户对应的用户端反馈账单信息。

对于步骤s201-2202,如前述描述,用户可以通过presto集群从对象存储集群中的对象查询数据内容。为了知道presto集群对对象存储集群的访问量,网关需从对象存储集群中拉取不同桶的流量。需要说明的是,桶(bucket)是对象存储集群中存储对象的容器。对象存储集群中提供基于桶和对象的扁平化存储方式,桶中的所有对象都处于同一逻辑层级,去除了一般文件系统中的多层级树形目录结构。因此,网关从对象存储集群中拉取不同桶的流量后,便能从中在不同桶的流量中,过滤出presto集群的访问量。比如,对于一条sql查询请求时,presto集群会主动从对象存储集群拉取数据文件,这中间产生的流量便是查询收费的依据。

对于步骤s203-s205,网关在过滤出presto集群的访问量之后,网关就可以根据presto集群的访问量,确定出预设账单计算周期内请求用户的查询流量。其中,该预设账单计算周期可以是一个月或一个季度等用户与存储供应商所约定的周期,这里不做限定。以一个月为例,在过滤出该一个月内presto集群的访问量之后,确定出预设账单计算周期内请求用户1的查询流量,网关根据查询流量,生成请求用户1在该月内的账单信息,并向请求用户1对应的用户端反馈该月内对应的账单信息。

可见,在该实施例中,网关会通过对象存储集群不同桶的流量中过滤出各用户的查询流量,便于向各个查询用户出具账单,便于推广业务。

需要说明的,上述实施例中提及到,presto集群被配置为会依据查询数据的大小选择对应方式返回给用户端,对应的,网关被配置为两种不同的实施过程,下面分别描述。

在一实施例中,如图6所示,步骤s30之后,也即网关将执行请求转发至presto集群之后,还包括如下步骤:

s60:网关确定执行请求所需查询的数据量的大小。

s70:网关判断执行请求所需查询的数据量与预设数据量的大小关系。

s80:当执行请求所需查询的数据量大于预设数据量时,则网关向用户端反馈查询结果等待指示。

用户端在查询数据时,需要查询的数据量可能是数据量非常大的数据,当执行请求所需查询的数据量大于预设数据量时,则网关向用户端反馈查询结果等待指示。比如,当用户需要查询的数据保存在比如数据量上tb的大表时,对该大表的检索查询时间可能会花费比较长的时长。为了避免用户不确定的等待,网关在将执行请求路由至presto集群之后,网关需先确定执行请求所需查询的数据量的大小。需要说明的是,网关可以根据执行请求的查询地址了解到该执行请求的查询位置,从而知道该执行请求需查询的数据量的大小,当执行请求所需查询的数据量大于预设数据量时(比如上tb时),则网关向用户端反馈查询结果等待指示,这样,网关转发执行请求后立即向用户端反馈查询结果等待指示,以公知用户,避免用户不确定的等待时间。

需要说明的是,上述预设数据量可以预先配置,具体数据量本发明不做限定。

s90:网关等待presto集群的查询结果写入通知,查询结果写入通知用于指示presto集群已根据执行请求从对象存储集群读取相应的查询数据,并将查询数据以非对象形式文件写入对象存储集群的预设位置。

s100:在网关等待到查询结果写入通知后,网关向用户端反馈下载指示,以使用户端根据下载指示,从对象存储集群的预设位置下载得到查询数据。

对于presto集群而言,由于接收到网关转发的执行请求,presto集群根据执行请求从对象存储集群读取相应的查询数据,且因为查询数据超过预设数据量,presto集群查询的过程稍微久,在全部查询出来之后,presto集群不会直接将查询数据反馈给网关,而是以非对象形式文件将查询数据写入对象存储集群的预设位置,并生成包含预设位置信息的查询结果写入通知,将查询结果写入通知反馈给网关。

对于网关而言,网关向用户端反馈查询结果等待指示之后,网关会一直等待presto集群的查询结果写入通知,在接收到presto集群的查询结果写入通知后,说明presto集群已根据执行请求从对象存储集群读取相应的查询数据,并将查询数据以非对象形式文件写入对象存储集群的预设位置,此时网关向用户端反馈包含预设位置信息的下载指示,以使用户端根据下载指示,从对象存储集群的预设位置下载得到查询数据。该预设位置指的是查询数据的存储位置,携带在查询结果写入通知和下载指示中。

其中,在一些实施例中,网关将查询数据可以以逗号分隔值文件(comma-separatedvalues,csv)的形式,或者其他能被用户端直接下载使用无需解析的文件形式,将查询数据写入对象存储集群的预设位置。

其中,逗号分隔值文件文件是以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。csv文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。这样,用户端便可以直接下载得到可以使用的数据,查询得到并非需解析的存储对象,实现对数据内容的查询。

可见,在该实施例中,对于数据量比较大的查询请求,presto集群不会直接将查询数据反馈给网关,而是提供一种异步查询的方式,网关在将执行请求路由至presto集群之后,立马向用户端反馈查询结果等待指示,然后网关在等待presto集群出查询结果并将查询结果文件(查询数据)写入对象存储集群之后,网关再通知用户端直接去对象存储集群下载查询数据,可以有效地避免用户不确定的等待问题。

在一实施例中,步骤50之后,也即网关确定执行请求所需查询的数据量的大小之后,方法还包括如下步骤:

s110:当执行请求所需查询的数据量小于或等于预设数据量时,则网关等待接收presto集群发送查询数据。

s120:网关将presto集群发送的查询数据反馈至用户端。

对于presto集群而言,由于接收到网关转发的执行请求,presto集群根据执行请求从对象存储集群读取相应的查询数据,且因为查询数据小于或等于预设数据量,说明presto集群查询的过程会比较快,在全部查询出来之后,presto集群会直接将查询数据反馈给网关,而不需等待所有查询数据后将查询数据写入对象存储集群的预设位置。对于网关而言,网关会等待presto集群反馈此次查询请求的查询数据,网关收到presto集群所反馈的查询数据之后,说明presto集群已根据执行请求从对象存储集群读取相应的查询数据,此时网关直接向用户端反馈查询数据。

在该实施例中,当查询数据较小时,相对于现有技术,可以直接通过网关,将查询数据反馈至用户端,过程更为简单、快速。

需要说明的是,在一些实施例中,当网关确定执行请求为创表或者创建数据库的请求时,则网关会将该执行请求路由至hive数据仓库工具,由hive数据仓库工具实现创表、创建数据库操作。当网关确定执行请求为向对象存储集群上传数据文件请求时,则网关会将该执行请求路由至对象存储集群,由对象存储集群将数据文件以对象形式写入到桶中。

在一些实施例中,网关中还可以增设查询记录表,网关依据接收到执行请求,将不同用户的查询等操作请求记录记录至查询记录表中,方便管理用户的数据操作记录。

在一实施例中,上述实施例提及的查询记录表和账单信息等,可以存储在区块链网络中。

本实施例中的数据库存储于区块链网络中,用于存储基于图神经网络的语义召回方法中用到、生成的数据,如待处理图像、各文字区域的质量得分和待处理图像的目标质量得分等相关数据。本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。将数据库部署于区块链可提高数据存储的安全性。

另外需要说明的是,当执行请求为创表、创建数据库、上传数据文件等请求时,上述方法实施例所提及的鉴权、计算等操作同样适用,这里不再重复描述。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供了一种存储对象处理系统,所述存储对象处理系统包括用户端、网关、presto集群、hive数据仓库工具和对象存储集群,presto集群与hive数据仓库工具连接,hive数据仓库工具与对象存储集群连接:

所述网关,用于接收所述用户端发送的执行请求并确定所述执行请求的请求类型,所述执行请求用于对所述对象存储集群执行相应操作的请求;

当所述执行请求的类型为数据查询请求时,所述网关还用于将所述执行请求转发至所述presto集群;

所述presto集群,用于依据所述执行请求从所述对象存储集群的相应对象中读取相应的查询数据,并用于根据查询数据大小将所述查询数据以对应方式反馈至所述用户端。

可见,在本发明实施例中,提供了一种新的对象存储处理系统,其中,该对象存储处理系统包括presto集群、hive数据仓库工具、用户端、对象存储集群和网关,presto集群连接到hive,hive数据仓库工具通过hive的connector连接到对象存储集群,且在对象存储集群上布置网关,本方案中,当需要查询数据时,用户端向对象存储集群发送诸如sql语句的查询请求,由于对象存储集群上布置网关,该sql语句的查询请求可以先被网关所拦截到,网关再将sql语句的查询请求路由至presto集群,从而由presto集群解析该sql的查询请求,然后通过hive数据仓库工具,利用connector从对象存储集群中直接查询对象的数据内容,而不用单独下载对象出来放在大数据查询引擎中再查询。本处理系统带来的技术效果是:一方面,利用presto集群、hive数据仓库工具和对象存储集群的连接关系,可以降低查询时间,可以提高查询的效率,另一方面,无需从对象存储集群中单独下载对象出来查询,减少带宽资源消耗,也能降低查询时间,而且,无需单独再编写独立的业务查询,更为便捷,利用presto集群便能查询,整体方案的成本较低,性价比更好,性能更强。

其中,关于存储对象处理系统各端更多的处理细节,可对应参阅前述方法实施例中的描述,这里不再重复描述。

在一实施例中,提供一种网关,应用于存储对象处理系统中,所述存储对象处理系统还包括用户端、presto集群、hive数据仓库工具和对象存储集群,presto集群与hive数据仓库工具连接,hive数据仓库工具与对象存储集群连接,该网关与上述实施例中请求处理方法一一对应。如图7所示,该网关包括接收模块101、处理模块102和发送模块103。各功能模块详细说明如下:

接收模块101,用于接收所述用户端发送的执行请求,所述执行请求用于对所述对象存储集群执行相应操作的请求;

处理模块102,用于确定所述执行请求的请求类型;

发送模块103,用于当所述执行请求的类型为数据查询请求时,将所述执行请求转发至所述presto集群,以使所述presto集群依据所述执行请求从所述对象存储集群的相应对象中读取相应的查询数据,并根据查询数据大小将所述查询数据以对应方式反馈至所述用户端。

在一实施例中,处理模块102,还用于确定所述执行请求所需查询的数据量的大小;

发送模块103,还用于当所述执行请求所需查询的数据量大于预设数据量时,则向所述用户端反馈查询结果等待指示;

接收模块101,还用于等待所述presto集群的查询结果写入通知,所述查询结果写入通知用于指示所述presto集群已根据所述执行请求从所述对象存储集群读取相应的查询数据,并将所述查询数据以非对象形式文件写入所述对象存储集群的预设位置;

发送模块103,还用于在等待到所述查询结果写入通知后,向所述用户端反馈下载指示,以使所述用户端根据所述下载指示,从所述对象存储集群的预设位置下载得到所述查询数据。

在一实施例中,发送模块103,还用于当所述执行请求所需查询的数据量小于或等于预设数据量时,则等待接收所述presto集群发送所述查询数据;在接收到所述presto集群发送的所述查询数据后,将所述presto集群发送的所述查询数据反馈至所述用户端。

在一实施例中,所述非对象形式文件为逗号分隔值文件。

在一实施例中,处理模块102还用于:

将所述执行请求转发至所述presto集群之后,从所述对象存储集群中拉取不同桶的流量;

在所述不同桶的流量中,过滤出所述presto集群的访问量;

根据所述presto集群的访问量,确定出预设账单计算周期内请求用户的查询流量;

根据所述查询流量,生成所述请求用户在预设账单计算周期内的账单信息,

发送模块103,还用于向所述请求用户对应的用户端反馈所述账单信息。

在一实施例中,所述执行请求的请求头中包括请求签名,所述请求签名由请求统一资源定位地址、请求时刻和用户密钥所生成,处理模块102还用于:

确定所述执行请求的请求类型之前,解析所述执行请求得到所述请求头,并从所述请求头中提取出所述请求签名;

对所述请求签名进行校验处理;

当所述请求签名通过检验时,则触发执行确定所述执行请求的请求类型的步骤;

当所述请求签名未通过检验,则所述网关拒绝处理所述执行请求。

在一实施例中,处理模块还用于:

解析所述执行请求,以确定请求用户;

获取预设用户操作资源列表,所述预设用户操作资源列表记录有不同的用户能够查询的所述对象存储集群的数据资源;

检索所述预设用户操作资源列表,以确定所述请求用户能够查询的数据资源;

当所述执行请求需查询的查询数据属于所述请求用户能够查询的数据资源,则所述网关触发将所述执行请求转发至所述presto集群的步骤;

当所述执行请求需查询的查询数据不属于所述请求用户能够查询的数据资源,则所述网关拒绝转发所述执行请求;

发送模块103,还用于当所述执行请求需查询的查询数据不属于所述请求用户能够查询的数据资源时,向所述用户端反馈拒绝查询提示。

可见,在本发明实施例中,提供了一种应用于对象存储处理系统的网关,当需要查询数据时,用户端向对象存储集群发送诸如sql语句的查询请求,由于对象存储集群上布置网关,该sql语句的查询请求可以先被网关所拦截到,网关再将sql语句的查询请求路由至presto集群,从而由presto集群解析该sql的查询请求,然后通过hive数据仓库工具,利用connector从对象存储集群中直接查询对象的数据内容,而不用单独下载对象出来放在大数据查询引擎中再查询。本网关可以根据用户端执行请求的类型路由该执行请求,提高查询效率,另一方面,该网关在本发明提供的对象存储处理系统中,还就具备鉴权、计费和用户资源隔离等作用,提高了方案的可实施性和扩展性。

关于网关的具体限定可以参见上文中对于基于存储对象处理系统的请求处理方法的限定,在此不再赘述。上述网关中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是网关,其内部结构图可以如图8所示。该网关包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该网关的处理器用于提供计算和控制能力。该网关的存储器包括非易失性存储介质或易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该网关的数据库用于临时存储本发明涉及的一些数据或者表格。该网关的网络接口用于与外部的presto集群、用户终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于存储对象处理系统的请求处理方法中网关侧的功能或步骤。

需要说明的是,本发明实施例中,还对应提供了一种计算机设备,该计算设备对应的,可以是用户端,该用户端用于实现基于存储对象处理系统的请求处理方法中用户终端侧的功能或步骤,可参阅前述方法实施例,这里不再详细描述。

需要说明的是,本发明实施例中,还对应提供了一种presto集群、hive数据仓库工具,该presto集群、hive数据仓库工具,用于实现基于存储对象处理系统的请求处理方法中presto集群、hive数据仓库工具侧的对应的功能或步骤,可参阅前述方法实施例,具体这里不再详细描述。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

接收所述用户端发送的执行请求,所述执行请求为用于对所述对象存储集群执行相应操作的请求;

确定所述执行请求的请求类型;

当所述执行请求的类型为数据查询请求时,将所述执行请求转发至所述presto集群,以使所述presto集群依据所述执行请求从所述对象存储集群的相应对象中读取相应的查询数据,并根据查询数据大小将所述查询数据以对应方式反馈至所述用户端。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收所述用户端发送的执行请求,所述执行请求为用于对所述对象存储集群执行相应操作的请求;

确定所述执行请求的请求类型;

当所述执行请求的类型为数据查询请求时,将所述执行请求转发至所述presto集群,以使所述presto集群依据所述执行请求从所述对象存储集群的相应对象中读取相应的查询数据,并根据查询数据大小将所述查询数据以对应方式反馈至所述用户端。

需要说明的是,本发明实施还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现用户端、presto集群等侧的功能或步骤,具体这里不再展开描述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

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

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