一种数据查询方法及装置制造方法及图纸

技术编号:17248519 阅读:46 留言:0更新日期:2018-02-11 06:42
本发明专利技术实施例提供一种数据查询方法及装置,用于解决现有技术中客户端开发成本高的技术问题。所述方法包括:中间层接收客户端发送的查询请求,所述查询请求包括查询条件和目标数据的存储格式;其中,所述查询条件用于定义目标数据的元数据的约束条件;所述中间层获取满足所述查询条件的目标元数据,以及根据数据的存储格式与读命令的映射确定读取所述目标数据的目标读命令;所述中间层根据确定的目标读命令从存储层读取所述目标元数据对应的数据,并将所述目标元数据对应的数据发送给所述客户端,所述目标元数据对应的数据包含所述目标数据。

【技术实现步骤摘要】
一种数据查询方法及装置
本专利技术涉及计算机
,特别涉及一种数据查询方法及装置。
技术介绍
在现有的分布式存储系统中,存储层中的数据的存储格式可以有多种类型,例如parquet格式、orc格式、RCFile格式等,而客户端在读取存储层中的目标数据时必须要使用与目标数据的存储格式相适配的程序代码才能成功读取到目标数据。为了实现客户端对存储层不同存储格式的数据的访问,现有技术的做法是:针对每一种存储格式都为客户端开发一套相适配程序代码,而客户端在读取不同存储格式的目标数据时切换使用不同种类程序代码,客户端开发成本高。
技术实现思路
本专利技术提供一种数据查询方法及装置,用于解决现有技术中客户端在读取不同存储格式的目标数据时需要切换使用不同种类程序代码,客户端开发成本高的技术问题。本专利技术实施例第一方面提供一种数据查询方法,包括:中间层接收客户端发送的查询请求,所述查询请求包括查询条件和目标数据的存储格式;其中,所述查询条件用于定义目标数据的元数据的约束条件;所述中间层获取满足所述查询条件的目标元数据,以及根据数据的存储格式与读命令的映射确定读取所述目标数据的目标读命令;所述中间层根据确定的目标读命令从存储层读取所述目标元数据对应的数据,并将所述目标元数据对应的数据发送给所述客户端,所述目标元数据对应的数据包含所述目标数据。在上述方案中,客户端根据预定协议向中间层发送的查询请求,中间层接收客户端根据预定协议发送的查询请求后,从存储层中读取所述查询请求对应的数据,然后将所述查询请求对应的数据返回给客户端,以此实现客户端从存储层获取目标数据。客户端对存储层中的数据的访问通过中间层间接实现,不同于现有技术中客户端直接与存储层交互方式,本方案在查询存储层中不同存储格式的目标数据时可以不对客户端进行程序代码的种类切换,在开发客户端阶段可以不需要针对每一种存储格式都为客户端开发一套相适配程序代码,降低了客户端开发成本。可选的,所述中间层获取满足所述查询条件的目标元数据,包括:所述中间层获取用于指示所述目标数据所在文件的元数据;或所述中间层获取用于指示所述目标数据所在行组的元数据;或所述中间层获取用于指示所述目标数据所在页(page)的元数据。通过本方式,中间层能够根据获取到的目标元数据对目标数据所在的位置进行定位,不同于现有技术最多只能定位到行组级,本方式可以将目标数据的定位精确到page级,可以有效减少数据的加载量和客户端的无效计算量,提升数据查询效率。可选的,所述中间层获取满足所述查询条件的目标元数据,包括:所述中间层从所述存储层获取满足所述查询条件的目标元数据;和/或所述中间层从所述中间层储存的元数据中获取满足所述查询条件的目标元数据。通过本方式,中间层可以获取满足所述查询条件的目标元数据,进而使得客户端对存储层中的数据的访问可以通过中间层间接实现,使得在开发客户端阶段可以不需要针对每一种存储格式都为客户端开发一套相适配程序代码,降低了客户端开发成本。可选的,所述方法还包括:所述中间层接收所述客户端发送的元数据更新信息;其中,所述元数据更新信息为所述客户端在从所述中间层接收到所述目标元数据对应的数据之后,对所述目标元数据对应的数据进行统计分析生成的元数据更新信息;所述中间层根据所述元数据更新信息对所述中间层储存的元数据进行更新;和/或所述中间层根据所述元数据更新信息对所述存储层中的元数据进行更新。通过本方式,中间层在接收客户端查询请求进行数据查询的过程中,可以不断对原有的元数据进行更新,不断地对元数据进行扩展及补充,使得元数据可以描述更加详细的数据,进而使得中间层在从存储层查询目标数据时能够获取到更加精确的数据,可以有效减少数据的加载量和客户端的无效计算量,提升数据查询效率。可选的,所述目标元数据的类型包括数值类型、时间类型、字符类型、枚举类型中的至少一项。通过本方式,可以使得中间层在从存储层查询目标数据时能够获取到更多类型的元数据,进一步细化过滤条件,进一步减少数据的加载量和客户端的无效计算量,提升数据查询效率。可选的,所述查询条件包括所述目标数据的元数据的约束条件以及待查询文件的范围;所述中间层获取满足所述查询条件的目标元数据,包括:所述中间层根据所述待查询文件的范围确定待查询文件,确定所述待查询文件的元数据,从所述待查询文件的元数据中筛选满足所述约束条件的元数据作为所述目标元数据。通过本方式,中间层能够根据获取到的目标元数据对目标数据所在的位置进行定位,进一步减少数据的加载量和客户端的无效计算量,提升数据查询效率。可选的,所述中间层保存有查询缓存,所述查询缓存包括至少一项历史查询请求以及所述至少一项历史查询请求中每一项对应的目标元数据;在所述中间层接收客户端发送的查询请求之后,所述方法包括:所述中间层判断所述查询缓存中是否包括所述查询请求;若为是,则所述中间层获取所述查询缓存中与所述查询请求对应的目标元数据。通过本方式,在查询请求为历史查询请求中的一项时,中间层可以根据之前保存的查询缓存直接确定出目标元数据的,可以不需要进行元数据的筛选过程,进一步提升了数据查询效率。可选的,所述方法还包括:所述中间层在所述查询缓存中添加在预定时间范围内接收到的查询请求和所述在预定时间范围内接收到的查询请求对应的目标元数据;和/或所述中间层在所述查询缓存中添加请求次数超过预定次数的查询请求和所述请求次数超过预定次数的查询请求对应的目标元数据。通过本方式,可以对近期历史查询请求及其对应的目标元数据、高频的查询请求及其对应的目标元数据进行缓存,进而使得中间层在接收到近期查询请求或者高频查询请求时,可以根据之前保存的查询缓存直接确定出目标元数据,不需要进行元数据的筛选过程,进一步提升了数据查询效率。可选的,所述中间层保存有查询缓存,所述查询缓存包括至少一项历史查询请求以及所述至少一项历史查询请求中每一项对应的目标数据;所述中间层获取满足所述查询条件的目标数据,包括:所述中间层判断所述查询缓存中是否包括所述查询请求;若为是,则所述中间层获取所述查询缓存中与所述查询请求对应的目标数据。通过本方式,在查询请求为历史查询请求中的一项时,中间层可以根据之前保存的查询缓存直接确定出目标数据,可以不需要进行元数据的筛选过程以及从存储层读取目标元数据对应的数据的过程,进一步提升了数据查询效率。可选的,所述中间层接收客户端发送的查询请求,包括:所述中间层接收所述客户端根据预定协议发送的所述查询请求,所述预定协议为不同客户端与所述中间层进行通信均遵循的协议。通过本方式,不同客户端均可以与中间层根据预定协议通信,使得客户端对存储层中的数据的访问可以通过中间层间接实现,进而使得在开发客户端阶段可以不需要针对每一种存储格式都为客户端开发一套相适配程序代码,降低了客户端开发成本。可选的,所述中间层可以包括以下三个功能模块:元数据存储模块、元数据更新模块以及查询缓存模块。其中,所述元数据存储模块用于获取并存储存储层中文件的元数据、所述元数据更新模块用于根据客户端发送的元数据更新信息对所述元数据存储模块中的元数据进行更新或者对所述存储层中的元数据进行更新,更新方式具体可以包括对原有类型元数据的进一步补充以及扩展新类型的元数据两种方式;所述查询缓存模块用于缓本文档来自技高网...
一种数据查询方法及装置

【技术保护点】
一种数据查询方法,其特征在于,包括:中间层接收客户端发送的查询请求,所述查询请求包括查询条件和目标数据的存储格式;其中,所述查询条件用于定义目标数据的元数据的约束条件;所述中间层获取满足所述查询条件的目标元数据,以及根据数据的存储格式与读命令的映射确定读取所述目标数据的目标读命令;所述中间层根据确定的目标读命令从存储层读取所述目标元数据对应的数据,并将所述目标元数据对应的数据发送给所述客户端,所述目标元数据对应的数据包含所述目标数据。

【技术特征摘要】
1.一种数据查询方法,其特征在于,包括:中间层接收客户端发送的查询请求,所述查询请求包括查询条件和目标数据的存储格式;其中,所述查询条件用于定义目标数据的元数据的约束条件;所述中间层获取满足所述查询条件的目标元数据,以及根据数据的存储格式与读命令的映射确定读取所述目标数据的目标读命令;所述中间层根据确定的目标读命令从存储层读取所述目标元数据对应的数据,并将所述目标元数据对应的数据发送给所述客户端,所述目标元数据对应的数据包含所述目标数据。2.如权利要求1所述的方法,其特征在于,所述中间层获取满足所述查询条件的目标元数据,包括:所述中间层获取用于指示所述目标数据所在文件的元数据;或所述中间层获取用于指示所述目标数据所在行组的元数据;或所述中间层获取用于指示所述目标数据所在页page的元数据。3.如权利要求1所述的方法,其特征在于,所述中间层获取满足所述查询条件的目标元数据,包括:所述中间层从所述存储层获取满足所述查询条件的目标元数据;和/或所述中间层从所述中间层储存的元数据中获取满足所述查询条件的目标元数据。4.如权利要求1所述的方法,其特征在于,还包括:所述中间层接收所述客户端发送的元数据更新信息;其中,所述元数据更新信息为所述客户端在从所述中间层接收到所述目标元数据对应的数据之后,对所述目标元数据对应的数据进行统计分析生成的元数据更新信息;所述中间层根据所述元数据更新信息对所述中间层储存的元数据进行更新;和/或所述中间层根据所述元数据更新信息对所述存储层中的元数据进行更新。5.如权利要求1所述的方法,其特征在于,所述目标元数据的类型包括数值类型、时间类型、字符类型、枚举类型中的至少一项。6.如权利要求1所述的方法,其特征在于,所述中间层保存有查询缓存,所述查询缓存包括至少一项历史查询请求以及所述至少一项历史查询请求中每一项对应的目标元数据;所述中间层获取满足所述查询条件的目标元数据,包括:所述中间层判断所述查询缓存中是否包括所述查询请求;若为是,则所述中间层获取所述查询缓存中与所述查询请求对应的目标元数据。7.如权利要求6所述的方法,其特征在于,还包括:所述中间层在所述查询缓存中添加在预定时间范围内接收到的查询请求和所述在预定时间范围内接收到的查询请求对应的目标元数据;和/或所述中间层在所述查询缓存中添加请求次数超过预定次数的查询请求和所述请求次数超过预定次数的查询请求对应的目标元数据。8.如权利要求1所述的方法,其特征在于,所述中间层接收客户端发送的查询请求,包括:所述中间层接收所述客户端根据预定协议发送的所述查询请求,所述预定协议为不同客户端与所述中间层进行通信均遵循的协议。9.一种数据请求方法,其特征在于,包括:客户端向中间层发送查询请求,所述查询请求包括查询条件和目标数据的存储格式,所述查询条件用于定义目标数据的元数据的约束条件,以使所述中间层获取满足所述查询条件的目标元数据,根据数据的存储格式与读命令的映射确定读取所述目标数据的目标读命令,根据确定的目标读命令从存储层读取所述目标元数据对应的数据,并将所述目标元数据对应的数据发送给所述客户端;其中,所述目标元数据对应的数据包含所述目标数据;所述客户端接收所述中间层发送的所述目标元数据对应的数据。10.如权利要求9所述的方法,其特征在于,在所述客户端接收所述中间层发送的所述目标元数据对应的数据后,所述方法还包括:所述客户端对所述目标元数据对应的数据进行统计分析,生成元数据更新信息;将所述元数据更新信息发送给所述中间层,以使所述中间层根据所述元数据更新信息对所述中间层储存的元数据进行更新,和/或根据所述元数据更新信息对所述存储层中的元数据进行更新。11.如权利要求9所述的方法,其特征在于,所述客户端向中间层发送查询请求,包括:所述客户端根据预定协议向所述中间层发送所述查询请求,所述预定...

【专利技术属性】
技术研发人员:汪可潘登袁帅
申请(专利权)人:北京神州绿盟信息安全科技股份有限公司北京神州绿盟科技有限公司
类型:发明
国别省市:北京,11

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

1