一种数据查询方法及系统技术方案

技术编号:22166700 阅读:23 留言:0更新日期:2019-09-21 10:29
本发明专利技术实施例提供了一种数据查询方法及系统,通过将业务数据存储到本地磁盘中,且将对应的索引信息缓存到本地内存中,其中,预先通过数据分区服务器将大数据分区处理得到多个分区文件,将各分区文件分配给对应的分布式服务器进行数据存储,并由分布式服务器针对各自存储的分区文件生成相应的索引信息,后续在接收到数据查询请求后,直接基于本地内存中的索引信息,快速定位待查询数据在本地磁盘中的存储位置,这样既无需占用过多的本地内存空间,降低了数据缓存成本,又能够从本地磁盘中快速读取相应的数据,提高数据查询请求的响应效率,同时结合零拷贝技术将数据传输至网卡接口,减少了数据拷贝次数,进一步提高了客户端的数据查询效率。

A Data Query Method and System

【技术实现步骤摘要】
一种数据查询方法及系统
本专利技术涉及数据查询
,尤其涉及一种数据查询方法及系统。
技术介绍
目前,为了提高数据的查询效率,现有技术中通常采用数据缓存技术来提高数据的查询效率;现有的数据缓存方式包括:内存型缓存、磁盘型缓存和内存磁盘混合型缓存;在采用上述数据缓存方式进行数据查询的过程中,在数据量较小的情况下,采用上述数据缓存方式中任意一种方式,均可以提高数据的查询效率,并且在数据查询过程中的效率也很高;然而,当针对大数据领域,通常需要缓存的数据较大甚至达到PB级别时,如果还是采用上述数据缓存技术来提高数据的查询效率的方法将存在着很多的弊端;采用内存型缓存技术来提高数据的传输效率时,当缓存数据量非常大时,大量数据将会占用更多的内存,然而,伴随着大量数据占用更多的内存,将会导致花费巨大的机器资源成本;采用磁盘型缓存,当磁盘中写入大量的数据时,将严重影响到数据的查询效率;采用内存磁盘混合型技术来提高数据的传输效率时,当所查询的数据没有在内存中而是在磁盘中时,查询数据的效率也会受到严重的影响。由此可知,在现有的数据查询过程中,如果使用内存缓存数据,将存在数据存储成本高的问题,而如果使用磁盘缓存数据,将存在存储数据读取慢的问题,因此,无法同时兼顾数据缓存成本和数据读取效率。
技术实现思路
本申请实施例的目的是提供一种数据查询方法及系统,既无需占用过多的本地内存空间,降低了数据缓存成本,又能够从本地磁盘中快速读取相应的数据,提高数据查询请求的响应效率,同时结合零拷贝技术将数据传输至网卡接口,减少了数据拷贝次数,进一步提高了客户端的数据查询效率。为解决上述技术问题,本申请实施例是这样实现的:本申请实施例提供了一种数据查询方法,包括:接收客户端针对目标业务数据的查询请求,其中,所述查询请求携带有所述目标业务数据的数据标识,所述查询请求是所述客户端根据数据分区服务器返回的目标设备标识发送的,所述目标设备标识是所述数据分区服务器根据所述数据标识在多个分布式服务器中选取的所述目标业务数据所在的分布式服务器的标识信息;在本地内存中存储的索引文件信息中,根据所述数据标识,查询所述目标业务数据的存储位置信息,其中,所述索引文件信息包括:业务数据的数据标识与存储位置信息之间的对应关系;基于所述目标业务数据对应的所述存储位置信息,从本地磁盘中读取所述目标业务数据,其中,所述本地磁盘中存储有数据分区服务器预先分配的包含多个业务数据的数据分区文件;利用零拷贝技术将读取到的所述目标业务数据传输至预设网卡接口,以通过所述网卡接口将所述目标业务数据发送至所述客户端。本申请实施例提供了一种数据查询系统,包括:客户端和多个分布式服务器;所述客户端,用于向分布式服务器发送针对目标业务数据的查询请求,以及接收所述分布式服务器返回的所述目标业务数据,其中,所述查询请求是所述客户端根据数据分区服务器返回的目标设备标识发送的,所述目标设备标识是所述数据分区服务器根据所述数据标识在多个分布式服务器中选取的所述目标业务数据所在的分布式服务器的标识信息;所述分布式服务器,用于接收所述查询请求;并在本地内存中存储的索引文件信息中,根据所述数据标识,查询所述目标业务数据的存储位置信息,其中,所述索引文件信息包括:业务数据的数据标识与存储位置信息之间的对应关系;以及,基于所述目标业务数据对应的所述存储位置信息,从本地磁盘中读取所述目标业务数据,其中,所述本地磁盘中存储有数据分区服务器预先分配的包含多个业务数据的数据分区文件;以及,利用零拷贝技术将读取到的所述目标业务数据传输至预设网卡接口,以通过所述网卡接口将所述目标业务数据发送至所述客户端。本申请实施例提供了一种数据查询设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器实现以下流程:接收客户端针对目标业务数据的查询请求,其中,所述查询请求携带有所述目标业务数据的数据标识,所述查询请求是所述客户端根据数据分区服务器返回的目标设备标识发送的,所述目标设备标识是所述数据分区服务器根据所述数据标识在多个分布式服务器中选取的所述目标业务数据所在的分布式服务器的标识信息;在本地内存中存储的索引文件信息中,根据所述数据标识,查询所述目标业务数据的存储位置信息,其中,所述索引文件信息包括:业务数据的数据标识与存储位置信息之间的对应关系;基于所述目标业务数据对应的所述存储位置信息,从本地磁盘中读取所述目标业务数据,其中,所述本地磁盘中存储有数据分区服务器预先分配的包含多个业务数据的数据分区文件;利用零拷贝技术将读取到的所述目标业务数据传输至预设网卡接口,以通过所述网卡接口将所述目标业务数据发送至所述客户端。本申请实施例提供了一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现以下流程:接收客户端针对目标业务数据的查询请求,其中,所述查询请求携带有所述目标业务数据的数据标识,所述查询请求是所述客户端根据数据分区服务器返回的目标设备标识发送的,所述目标设备标识是所述数据分区服务器根据所述数据标识在多个分布式服务器中选取的所述目标业务数据所在的分布式服务器的标识信息;在本地内存中存储的索引文件信息中,根据所述数据标识,查询所述目标业务数据的存储位置信息,其中,所述索引文件信息包括:业务数据的数据标识与存储位置信息之间的对应关系;基于所述目标业务数据对应的所述存储位置信息,从本地磁盘中读取所述目标业务数据,其中,所述本地磁盘中存储有数据分区服务器预先分配的包含多个业务数据的数据分区文件;利用零拷贝技术将读取到的所述目标业务数据传输至预设网卡接口,以通过所述网卡接口将所述目标业务数据发送至所述客户端。本申请实施例中的数据查询方法及系统,接收客户端针对目标业务数据的查询请求;在本地内存中存储的索引文件信息中,根据数据标识,查询目标业务数据的存储位置信息;基于目标业务数据对应的存储位置信息,从本地磁盘中读取目标业务数据;利用零拷贝技术将读取到的目标业务数据传输至预设网卡接口,以通过网卡接口将目标业务数据发送至客户端。通过将业务数据存储到本地磁盘中,且将对应的索引信息缓存到本地内存中,其中,预先通过数据分区服务器将大数据分区处理得到多个分区文件,将各分区文件分配给对应的分布式服务器进行数据存储,并由分布式服务器针对各自存储的分区文件生成相应的索引信息,后续在接收到数据查询请求后,直接基于本地内存中的索引信息,快速定位待查询数据在本地磁盘中的存储位置,这样既无需占用过多的本地内存空间,降低了数据缓存成本,又能够从本地磁盘中快速读取相应的数据,提高数据查询请求的响应效率,同时结合零拷贝技术将数据传输至网卡接口,减少了数据拷贝次数,进一步提高了客户端的数据查询效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的数据查询处理的应用场景示意图;图2为本申请实施例提供的数据查询方法的第一种流程示意图;图3为本申请实施例提供的数据查本文档来自技高网...

【技术保护点】
1.一种数据查询方法,其特征在于,所述方法包括:分布式服务器接收客户端针对目标业务数据的查询请求,其中,所述查询请求携带有所述目标业务数据的数据标识,所述查询请求是所述客户端根据数据分区服务器返回的目标设备标识发送的,所述目标设备标识是所述数据分区服务器根据所述数据标识在多个分布式服务器中选取的所述目标业务数据所在的分布式服务器的标识信息;在本地内存中存储的索引文件信息中,根据所述数据标识,查询所述目标业务数据的存储位置信息,其中,所述索引文件信息包括:业务数据的数据标识与存储位置信息之间的对应关系;基于所述目标业务数据对应的所述存储位置信息,从本地磁盘中读取所述目标业务数据,其中,所述本地磁盘中存储有数据分区服务器预先分配的包含多个业务数据的数据分区文件;利用零拷贝技术将读取到的所述目标业务数据传输至预设网卡接口,以通过所述网卡接口将所述目标业务数据发送至所述客户端。

【技术特征摘要】
1.一种数据查询方法,其特征在于,所述方法包括:分布式服务器接收客户端针对目标业务数据的查询请求,其中,所述查询请求携带有所述目标业务数据的数据标识,所述查询请求是所述客户端根据数据分区服务器返回的目标设备标识发送的,所述目标设备标识是所述数据分区服务器根据所述数据标识在多个分布式服务器中选取的所述目标业务数据所在的分布式服务器的标识信息;在本地内存中存储的索引文件信息中,根据所述数据标识,查询所述目标业务数据的存储位置信息,其中,所述索引文件信息包括:业务数据的数据标识与存储位置信息之间的对应关系;基于所述目标业务数据对应的所述存储位置信息,从本地磁盘中读取所述目标业务数据,其中,所述本地磁盘中存储有数据分区服务器预先分配的包含多个业务数据的数据分区文件;利用零拷贝技术将读取到的所述目标业务数据传输至预设网卡接口,以通过所述网卡接口将所述目标业务数据发送至所述客户端。2.根据权利要求1所述的方法,其特征在于,在接收客户端针对目标业务数据的查询请求之前,还包括:接收所述数据分区服务器发送的数据分区文件,其中,所述数据分区文件是所述数据分区服务器对大数据进行分区处理得到、并根据数据分区文件的文件标识和分布式服务器的设备标识发送的;将接收到的所述数据分区文件存放在本地磁盘中,其中,所述数据分区文件包括:多个业务数据;根据各所述业务数据在所述本地磁盘中的存储位置信息,生成所述数据分区文件的索引文件信息;将所述索引文件信息存储至本地内存中。3.根据权利要求2所述的方法,其特征在于,所述数据分区文件是通过如下方式得到的:所述数据分区服务器对多个待分区的业务数据进行预设处理,得到各所述待分区的业务数据对应的键值对,其中,所述键值对包括:数据标识和数据体;针对每个所述待分区的业务数据,对该待分区的业务数据的所述数据标识进行哈希处理,得到该待分区的业务数据的哈希值;根据各所述待分区的业务数据的所述哈希值,对所述多个待分区的业务数据进行分区处理,得到多个数据分区文件。4.根据权利要求3所述的方法,其特征在于,在根据各所述待分区的业务数据的所述哈希值,对所述多个待分区的业务数据进行分区处理,得到多个数据分区文件之后,还包括:所述数据分区服务器利用操作系统提供的文件拷贝功能向对应的分布式服务器发送拷贝指令,其中,所述拷贝指令携带有所述数据分区文件。5.根据权利要求3所述的方法,其特征在于,所述根据各所述待分区的业务数据的所述哈希值,对所述多个待分区的业务数据进行分区处理,得到多个数据分区文件,包括:将各所述待分区的业务数据的所述哈希值与预设分区数量相除,得到所述业务数据对应的余数,其中,所述预设分区数量与分布式服务器的数量相等;将余数相同的至少一个所述业务数据划分到一个数据分区文件中,其中,所述数据分区文件的文件标识与其包含的业务数据对应的余数一一对应,各所述余数与分布式服务器的设备标识具有预设对应关系。6.根据权利要求2所述的方法,其特征在于,所述业务数据包括:数据标识和数据体,所述数据分区文件包括业务数据对应的所述数据体;所述根据各所述业务数据在所述本地磁盘中的存储位置信息,生成所述数据分区文件的索引文件信息,包括:针对所述数据分区文件中的每个数据体,确定该数据体在所述本地磁盘中的存储位置信息与该数据体对应的所述数据标识之间的对应关系;根据各所述业务数据对应的所述对应关系,生成所述数据分区文件的索引文件信息。7.根据权利要求2所述的方法,其特征在于,若所述索引文件信息还存储于本地磁盘中;在本地内存中存储的索引文件信息中,根据所述数据标识,查询所述目标业务数据的存储位置信息...

【专利技术属性】
技术研发人员:王李平李涛
申请(专利权)人:郑州阿帕斯科技有限公司
类型:发明
国别省市:河南,41

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

1