CN108090064B - 一种数据查询方法、装置、数据存储服务器及系统 - Google Patents
一种数据查询方法、装置、数据存储服务器及系统 Download PDFInfo
- Publication number
- CN108090064B CN108090064B CN201611026513.5A CN201611026513A CN108090064B CN 108090064 B CN108090064 B CN 108090064B CN 201611026513 A CN201611026513 A CN 201611026513A CN 108090064 B CN108090064 B CN 108090064B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- identifier
- query
- target data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据查询方法、装置、数据存储服务器及系统,客户端通过将包含有用于查询目标数据的至少一个目标标识以及至少一个目标数据属性发送至数据存储服务器,从而使数据存储服务器能够据此获得数据库中每一个目标标识对应的数据包后,直接从数据包中筛选每一个目标数据属性对应的目标数据,实现了对目标数据的结构化查询,且本申请并不依赖于特定的存储结构,具有通用性,提高了数据结构化查询的灵活性以及效率;而且,由于数据存储服务器仅将得到的目标数据发送至客户端,避免了数据包中无关数据发送至客户端对网络资源的占用,大大降低了客户端的数据处理负担。
Description
技术领域
本申请主要涉及数据库应用领域,更具体地说是涉及一种数据查询方法、装置、数据存储服务器及系统。
背景技术
随着互联网web2.0网站的兴起,传统的关系型数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题。所以,目前在大部分互联网应用中,通常采用NoSQL数据库(Not Only SQL,非关系型数据库)进行数据的存储。
其中,键值(Key-Value)存储数据库作为目前常用的一种NoSQL数据库,其数据将按照键值形式存储,能够有效减少读写磁盘的次数,比关系型数据库存储拥有更好的读写性能,且具有较强的扩展性。
然而,由于键值存储数据库中的数据没有结构化,导致其不能很好的支持结构化查询。为了解决这类问题,现有技术中,通常是通过预先定义好一些特定的存储结构,但其只能对按照这些存储结构存储的数据进行结构化查询,具有很大的局限性。
发明内容
有鉴于此,本申请提供了一种数据查询方法、装置、数据存储服务器及系统,实现了对数据库中任意数据的结构化查询,提高了数据结构化查询的灵活性及通用性。
为了实现上述目的,本申请提供了以下技术方案:
本申请实施例提供了一种数据查询方法,包括:
接收客户端发送的数据查询请求,所述数据查询请求至少包括用于查询目标数据的至少一个目标标识以及至少一个目标数据属性;
确定所述至少一个目标标识以及所述至少一个目标数据属性;
获得每一个目标标识对应的数据包,并从获得的数据包中筛选每一个所述目标数据属性对应的目标数据;
将所述目标数据以及所述目标标识反馈至所述客户端。
本申请实施例还提供了一种数据查询装置,包括:
请求接收模块,用于接收客户端发送的数据查询请求,所述数据查询请求至少包括用于查询目标数据的至少一个目标标识以及至少一个目标数据属性;
信息确定模块,用于确定所述至少一个目标标识以及所述至少一个目标数据属性;
目标数据获取模块,用于获得每一个目标标识对应的数据包,并从获得的数据包中筛选每一个目标数据属性对应的目标数据;
目标数据发送模块,用于将所述目标数据以及所述目标标识反馈至所述客户端。
本申请实施例还提供了一种数据存储服务器,包括如上所述的一项所述的数据查询装置。
本申请实施例还提供了一种数据查询系统,包括:
客户端,用于向数据存储服务器发送数据查询请求,所述数据查询请求至少包括用于查询目标数据的至少一个目标标识以及至少一个目标数据属性;
数据存储服务器,用于解析所述数据查询请求,确定所述至少一个目标标识以及所述至少一个目标数据属性,获得数据库中每一个目标标识对应的数据包,并从获得的数据包中筛选具有所述至少一个目标数据属性的目标数据,将所述目标数据以及所述目标标识反馈至所述客户端。
由此可见,与现有技术相比,本申请提供了一种数据查询方法、装置、数据存储服务器及系统,客户端通过将包含有用于查询目标数据的至少一个目标标识以及至少一个目标数据属性发送至数据存储服务器,从而使数据存储服务器能够据此获得数据库中每一个目标标识对应的数据包后,直接从数据包中筛选每一个目标数据属性对应的目标数据,实现了对目标数据的结构化查询,且本申请并不依赖于特定的存储结构,具有通用性,提高了数据结构化查询的灵活性以及效率;而且,由于数据存储服务器仅将得到的目标数据发送至客户端,避免了数据包中无关数据发送至客户端对网络资源的占用,大大降低了客户端的数据处理负担。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据查询系统架构;
图2为本申请实施例提供的一种数据查询方法的流程图;
图3为本申请实施例提供的一种数据查询方法的信令流程图;
图4为本申请实施例提供的另一种数据查询方法的流程图;
图5为本申请实施例提供的另一种数据查询方法的信令流程图;
图6为本申请实施例提供的一种数据查询装置的结构框图;
图7为本申请实施例提供的另一种数据查询装置的结构框图;
图8为本申请实施例提供的又一种数据查询装置的结构框图;
图9为本申请提供的一种数据存储服务器的硬件结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。其中,为了方便理解本申请技术方案,将对下文实施例可能涉及到的技术术语进行解释说明,具体如下:
图1为本申请实施例提供用于实现数据查询方法的系统架构图。参照图1,该系统可以包括:客户端10、数据存储服务器20以及数据库30;
其中,客户端10可以是装载在手机、电脑等用户设备,并与数据存储服务器20通信,以使用户通过客户端10访问数据存储服务器20,以获得所需的目标数据。
在本申请中,客户端10可以是单独开发的应用程序,可以通过应用中心或应用官方网站下载到用户设备本地;也可以是以浏览器的形式存在,本申请对此不作限定。
数据存储服务器20可以是运行在局域网中的一台或多台计算机和数据库管理系统软件共同构成的服务存储设备,为客户应用提供查询、更新、事务管理、索引、高速缓存、安全及多用户存取控制等服务器;当然,数据存储服务器10也可以是在设置在客户端本地的服务存储设备。
由此可见,本申请数据存储服务器20具体可以是本地服务器,也可以是网络侧服务器。通常情况下,若为网络侧的数据存储服务器时,其可以是对应多个客户端的共享数据存储服务器,此时,多个客户端都可以访问该网络侧的数据存储服务器,当然,也可以为一个客户端提供服务的数据存储服务器,本申请对此不作限定。
数据库30可以记录有客户端10运行产生各种数据,并存储客户端10运行并实现某些功能所需的数据。在本申请中,该数据库可以是NoSQL数据库(Not Only SQL,非关系型数据库),更具体地说,可以是键值数据库,则该数据存储服务器20可以是对应于键值数据库的本地服务器或云服务器,用于实现对键值数据库的数据查询、更新、检索、缓存等服务,具体功能可以参照下面方法实施例部分的描述。
在本申请实施例中,数据存储服务器接收到客户端发送的数据查询请求后,将按照该数据查询请求携带的查询要求,从键值数据中查询相应的数据地址,并对该数据地址进行解码,从而获得具有目标数据属性的目标数据,之后,直接将该目标数据发送至客户端。由此可见,本申请利用数据存储服务器不仅能够实现单条数据查询请求的结构化查询,而且还能够按条件查询一批目标数据,不需要客户端针对每一个具体要求发送多次请求,或者得到包含有很多无用数据的查询结果,大大提高了查询效率,降低了客户端负担,另外,本申请并不依赖预设的具体存储模型,能够实现对数据库存储的各种数据的结构化查询。
基于图1所示的系统架构,下面从数据存储服务器的角度对本申请提供的数据查询方法进行介绍,在本申请中,该数据存储服务器可以是NoSQL存储服务器。如图2所示,为本申请实施例提供的一种数据查询方法的流程图,该方法可以包括以下步骤:
步骤S21,接收客户端发送的数据查询请求;
在本申请中,当用户需要查询满足一定要求的数据时,通常会在客户端输入相应的查询要求,从而触发客户端根据该查询要求向数据存储服务器发送相应的数据查询请求。在实际应用中,客户端可以按照预设的网络协议发送该数据查询请求,本申请对该网络协议不作具体限定,如HTTP协议,或者是针对实际需要设定的特定协议等等。
其中,为了使数据存储服务器能够根据该数据查询请求准确且快速查找到目标数据,客户端发送的数据查询请求可以至少包括用于查询目标数据的目标标识以及目标数据属性。当然,根据实际需要,尤其是在进行条件查询时,该数据查询请求还可以包括针对目标数据属性的查询条件。
需要说明书的是,上述目标标识可以是一个或多个,当目标标识为多个时,该目标标识可以是一个标识范围,而目标数据属性也可以是一个或多个,本申请对此不作具体限定。
以查询的数据库为键值数据库为例,由于键值数据库通常采用哈希表的存储结构,每存储一个数据即Value(本申请对该数据的存储形式不作限定),都会增加一个Key,其中,每一个Value可以包括多个列数据(或称为字段),每一个列数据存储的数据类型相同。
基于此,为了查询键值数据库中的目标数据,客户端发送的数据查询请求可以至少包括用于查询目标数据的至少一个目标标识以及至少一个目标数据属性(如字典表中的字段),必要时还可以包括针对该至少一个目标数据属性确定的查询条件等信息。
步骤S22,确定至少一个目标标识以及至少一个目标数据属性;
数据存储服务器可以通过解析数据查询请求,确定用于查询目标数据的目标标识以及目标数据属性,本申请对该解析过程不作限定。
步骤S23,获得每一个目标标识对应的数据包,并从获得的数据包中筛选每一个所述目标数据属性对应的目标数据;
可选的,在本申请中,可以采用映射关系表的方式存储一一对应的标识与数据地址,也就是说,该映射关系表记录了与一个标识一一对应的数据地址,可以表示标识与数据地址之间的一一映射关系。
仍以键值(Key-Value)数据库的数据查询为例,该映射关系表可以是Key-Value的映射关系表示,每一个Key都有与其一一对应的Value,所以,在确定目标Key后,可以从该映射关系表中直接查找与该目标Key一一对应的Value。需要说明的是,本申请对Key和Value的具体存储方式不作限定,可以是名称、数值或文字描述等等,而且,本申请对上述映射关系表的表示形式也不作限定,可以是数据字典表等。
基于此,本申请可以按照预设映射关系表,确定至少一个目标标识映射的数据地址为目标数据地址,从而获得至少一个所述目标数据地址对应的数据包。
可选的,本申请可以利用预设的解码规则,对获得的至少一个数据包进行解码,从而获得每一个所述目标数据属性对应的目标数据。需要说明的是,本申请对该解码规则的具体内容不作限定,其可以与数据库存储数据时采用的编码规则对应,如Goole ProtocolBuffer(简称Protobuf)等。
在实际应用中,由于数据地址对应的数据通常是整块数据,即以数据包等方式存在,所以,在获得目标标识映射的数据地址后,本申请将采用与查询的数据库中数据的编码规则对应的解码规则,对各数据地址对应的数据包进行解码(如Protobuf解码等),从而获得该数据地址对应至少一个目标属性对应数据。其中,每一数据地址对应数据包可以包括至少一个数据属性的数据。
以键值数据库为例,可以对各Key对应的Value数据预先设定规范化的存储方式,如将Protobuf作为该键值数据库存储的Value数据的编码规则。当然,也可以采用其他任意一种支持无模式自解码的编码规则替代Protobuf,实现对键值数据库中Value数据的编码存储,本申请仅以Protobuf为例进行说明,其他编码规则的在本申请实施例中应用方式相同,不再一一详述。
其中,Protobuf是一种混合语言数据标准,用于RPC(RemoteProcedureCallProtocol,远程过程调用协议)系统和持续数据存储系统,其作为一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,适用于数据存储或RPC数据交换格式。其可以应用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。
需要说明的是,本申请对上述数据地址的输出形式以及对应的各数据属性的数据类型等内容不作限定。例如,该数据地址可以是数值,或字符串或文字等,数据属性可以是数据的类型,数据也可以是数值、文字或字符等等。如若该数据属性是名字,相应的数据可以是文字;数据属性是年龄,相应的数据可以是数字。
步骤S24,将该目标数据以及目标标识反馈至客户端。
可选的,在本实施例中,若目标标识是一个标识,那么,可以直接将这一个目标标识与获得的目标数据发送至客户端,以便客户端确定目标数据是哪个标识的,进而利用该标识执行预设操作,如向预设界面输出目标数据等。当目标标识是多个时,数据存储服务器可以将得到的所有目标数据与目标标识,按照两者之间的对应关系组成列表,再将该列表发送至客户端输出。其中,数据存储服务器反馈至客户端的目标数据和目标标识可以以数据包的方式发送。
综上所述,在本申请实施例中,由于客户端发送的数据查询请求包含有用于查询目标数据的至少一个目标标识以及至少一个目标数据属性,数据存储服务器查找到该目标标识对应的数据包,并从该数据包中筛选出每一个目标数据属性对应的目标数据后,才将该目标数据发送至客户端,不仅使数据存储服务器不依赖任何特定的数据结果,实现了对任意数据的结构化查询,提高了数据查询灵活性和效率,而且,由于避免了数据包中无用数据向客户端的方式,大大减少了向客户端传输数据的数据量,即减少了对网络资源的占用,另外,由于不需要客户端解码数据包,减少了客户端负担。
下面将以对键值数据库的结构化查询为例,对查询单个Key对应的目标数据的应用场景为例对本申请上述方案进行说明,参照图3所示的信令图,该流程可以包括:
步骤S31,客户端将用于查询目标数据的目标Key以及目标字段发送至数据存储服务器;
步骤S32,数据存储服务器获取目标Key映射的Value数据包;
在键值数据库中,Key与Value是一一对应关系,每一个Value都可以对应至少一个字段,每一个字段内可以存储一类数据。如字段1:姓名、字段2:年龄、字段3:性别等,可以根据实际应用确定各字段存储的数据类型,本申请在此不再一一详述。
由此可见,在查询键值数据库时,根据Key得到的实际上是一个Value数据块即数据包,如由上述字段1、字段2以及字段3的数据构成的数据包,而不是某一个具体数据。
步骤S33,数据存储服务器利用预设解码规则,针对目标字段对该Value数据包中的进行解码,得到目标数据;
如上文描述,在键值数据库进行存储数据时,可以利用Protobuf等编码规则对Value数据进行数据结构化编码,那么,步骤S33此处对Value数据包的解码方法与该编码方式对应,也可以利用Protobuf等方式进行解码,本申请对利用Protobuf进行数据编码以及解码的过程不作限定。
例如,当需要查询目标Key=100,目标字段为年龄的数据,在键值数据库中查找到Key=100对应的Value数据包,即字段1姓名、字段2年龄以及字段3性别这3列数据打包好的数据包(如采用上述Protobuf方式进行数据打包,但并不局限于此),之后,数据存储服务器就可以利用相应的解码方式(即Protobuf方式),按照该字段2年龄对Value数据包进行解码,从而得到该字段2年龄的数据,如该字段2存储的年龄是25,那么,得到的目标数据则为25。
步骤S34,数据存储服务器将该目标数据以及目标Key反馈至客户端;
步骤S36,客户端利用目标Key对目标数据执行预设操作。
继上文举例,数据存储服务器将会把Key=100以及目标字段的数据为25反馈至客户端,以使客户端输出年龄为25的查询结果;当然,当其他应用中,如当获得的目标数据是实现某种功能的中间量时,可以直接利用该目标Key对该目标数据执行预设操作,以相应功能。由此可见,本申请对客户端对接收到的目标Key以及目标数据的操作不作限定。
综上,本实施例中,在对键值数据库的单Key查询中,由数据存储服务器代替客户端针对目标字段,对查询到的Key对应的Value数据包进行解码(如Protobuf解码),从而得到目标字段对应的目标数据,并将该目标数据反馈至客户端。可见,本申请能够实现对键值数据库中任何数据的结构化查询,不需要依赖预设的具体存储模型,大大提高了数据查询灵活性;而且,由于本申请不是将Key对应的整个Value数据包发送至客户端,再由客户端解析查询目标字段的数据,而只是将目标字段的数据发送至客户端,避免了冗余数据对网络资源的占用,降低了网络以及客户端的负担。
为了满足用户按条件查询数据库的需求,本申请实施例还提供了另一种数据查询方法,这种情况下,客户端发送至数据存储服务器的目标标识可以是多个,且客户端发送至服务器的数据查询请求还可以包括针对至少一个目标数据属性的查询条件,参照图4所示,从数据存储服务器的角度进行介绍,该流程可以包括:
步骤S41,接收客户端发送的数据查询请求;
其中,该数据查询请求可以包括用于查询目标数据的多个目标标识、至少一个目标数据属性以及针对该至少一个目标数据属性的查询条件;
步骤S42,确定多个目标标识、至少一个目标数据属性以及针对该至少一个目标数据属性的查询条件;
步骤S43,按照预设映射关系表,获取多个目标标识一一映射的数据地址;
本实施是按照条件对多个标识的数据进行查询,所以,步骤S43得到的数据地址是对应于每一个目标标识的多个数据地址。其中,对每一个标识对应的数据地址的查询过程与上述实施例给出的对单个标识的数据地址的查询过程类似,本实施例在此不作详述。
步骤S44,针对至少一个目标数据属性,利用预设解码规则,对每一个数据地址对应的数据包进行解码,确定至少一个目标数据属性对应的数据为备选数据;
关于上述步骤S41~步骤S44的实现过程可以参照上述实施例相应部分的描述,本申请在此不再赘述详述。
在本实施例中,由于每一个数据包通常会包括多个数据属性的数据,所以,按照预设解码规则(与数据库中的数据打包规则对应)对多个数据地址对应的数据包进行解码后,将会得到至少一个目标数据属性对应的数据,并将其作为备选数据。
需要说明的是,若在目标标识为多个的情况下,客户端发送的数据查询请求不包括上述查询条件,此时确定的至少一个目标数据属性对应的数据作为目标数据发送客户端。
步骤S45,按照查询条件对获得的备选数据进行筛选,获得目标数据;
由于查询条件是针对至少一个目标数据属性确定的,所以,本实施例可以按照该查询条件从获得至少一个目标数据属性对应的数据中,直接查找到需要的目标数据,即符合该查询条件的数据。其中,所得目标数据是对应与每一个数据地址(或目标标识)的满足实际需要的多个数据。
步骤S46,将得到的所有目标数据与对应的目标标识反馈至客户端。
由此可见,本申请实施例实现了按条件查询多个数据的结构化查询,不需要客户端再针对一个数据发送一次请求,大大提高了数据查询效率以及灵活性;而且,由于本申请数据存储服务器是直接将所得目标数据反馈至客户端,而不是将与各目标标识的数据包发送至客户端,再由客户端从这多个数据包中查询所需的目标数据,节约了网络资源,降低了客户端的数据处理负担。
下面仍以对键值数据库进行按条件的多Key查询为例进行说明,参照图5所示的信令流程图,该流程可以包括:
步骤S51,客户端向数据存储服务器发送数据查询请求;
例如,当用户需要查询100≤Key≤200对应的数据即目标数据时,现有技术中,通常是采用发送多次请求,每一次请求包括一个Key的方式,来依次获得每一个Key对应的目标数据,非常繁琐,且导致网络交互极大,并不可行。或者是查询键值数据中所有数据中,目标字段对应的所有数据,在从中查找需要的目标数据,这就需要发送海量还两次请求,才能将数据库中的数据读取出来,再由客户端查询目标数据,显然也是不可操作的。
针对现有技术中的上述问题,为了获得100≤Key≤200对应的数据,本实施例客户端将同该发送一次数据查询请求,将直接把该目标Key范围告知数据存储服务器,以使数据存储服务器据此得到用户所需的目标数据,可见,该数据查询请求中可以包括目标Key范围(如上100≤Key≤200等,根据实际需要确定)、目标字段以及针对该目标字段的查询条件。
需要说明的是,对于数据查询请求中的目标字段也可以是多个,这种情况下的数据查询过程与本实施例提供的数据查询过程类型,本申请仅以一个目标字段为例进行说明。
步骤S52,数据存储服务器确定目标Key范围、目标字段以及针对该目标字段的查询条件;
在实际应用中,针对客户端发送数据查询请求时所用的网络协议,数据存储服务器采用相应的方式对数据查询请求进行解析,得到该数据查询请求包含的各种内容,本申请对该网络协议类型不作限定。
步骤S53,数据存储服务器查询目标Key范围内的多个Key对应的Value列表;
需要说明的是,数据存储服务器的引擎能够支持范围查找功能。而且,对于查询得到的目标Key范围中的多个Key对应的Value,可以采用数据列表的方式输出,但并不局限于此,本申请在此仅以数据列表的方式为例进行说明。
步骤S54,数据存储服务器利用预设解码规则,针对目标字段对该Value列表对应的各数据包进行解码,得到各数据包中的目标字段的数据组成的列数据列表;
需要说明的是,如上述实施例的描述,数据存储服务器对数据包的解码规则可以包括多种,具体可以根据数据库存储数据时对数据打包的方式确定,如本申请可以采用Protobuf编码方式实现对数据打包以及数据包解码,但并不局限于此。
其中,对每一个Value的数据包的解码规则可以相同,且获得相应目标字段的数据过程可以参照上述获取单个Key对应数据的实施例的描述,本申请在此不再详述。
在本实际应用中,由于每一个Value的数据包中都可能包括有目标字段,所以,对多个数据包解码后得到的目标字段通常会是多个,本实施例可以仍可以采用数据列表的方式输出这多个目标字段的数据,但并不局限于此。
步骤S55,数据存储服务器按照查询条件,对该列数据列表进行筛选,得到目标数据。
举例说明,若查询条件为年龄大于20的全部Value数据,可以采用上述方式获得各Key对应的Value数据包中字段2年龄的全部数据后,在从这些年龄数据中筛选出数值大于20的数据,即为目标数据。
在实际应用中,还可以查询100≤Key≤200对应的年龄大于20的全部Value数据,这种情况下,按照上述方式得到100≤Key≤200对应的各数据包中的字段2年龄的数据后,再从这些数据中出数值大于20的数据,即为目标数据。
可选的,当数据查询请求中的目标字段为多个时,上述查询条件通常是对多个目标字段确定的,那么,此时将从每一个数据包中得到的多个目标字段中筛选出符合该查询条件的目标数据。
步骤S56,数据存储服务器将得到的目标数据及其对应的目标Key按照第二预设规则,生成查询结果列表。
其中,第二预设规则可以是按照目标Key的大小,或者是数据查询请求中多个目标Key的排列方式等规则,本申请对其内容不作限定。
需要说明的是,该查询结果列表中的目标数据以及目标Key是按照其一一对应关系存储的,即查询结果列表能够体现目标数据以及目标Key之间的一一对应关系。
步骤S57,数据存储服务器将查询结果列表发送至客户端;
步骤S58,客户端从查询结果列表中选择第一标识对应的第一数据执行预设操作。
由此可见,数据存储服务器的引擎在支持条件的前提下,本申请将直接由数据存储服务器按照客户端发送的Key范围、目标字段以及查询范围,按照上述方式直接查询目标字段中符合查询条件的目标数据,即按条件的结构化查询,并不需要预设针对这些目标数据的存储模型,扩大了方法适用范围。
而且,数据存储服务器是将查询到的多个目标数据发送至客户端,而不是将各Key对应的Value数据包发送至客户端,避免了大量冗余数据的发送,节约了网络资源,且减少了客户端数据处理的负担。
下面将对本申请实施例提供的数据查询装置进行介绍,主要介绍是实现本申请实施例提供的数据查询方法所需要设置的功能模块架构。
如图6所示,为本申请实施例提供的一种据库结构化查询的实现装置的结构框图,该装置可以应用于数据存储服务器,参照图6,该装置可以包括:
请求接收模块61,用于接收客户端发送的数据查询请求;
其中,所述数据查询请求至少包括用于查询目标数据的至少一个目标标识以及至少一个目标数据属性;
信息确定模块62,用于确定所述至少一个目标标识以及所述至少一个目标数据属性;
目标数据获取模块63,用于获得每一个目标标识对应的数据包,并从获得的数据包中筛选每一个目标数据属性对应的目标数据;
目标数据发送模块64,用于将所述目标数据以及所述目标标识反馈至所述客户端。
可选的,如图7所示,当目标标识为一个时,如对键值数据库中的单个Key对应的数据进行查询时,目标数据获取模块63可以包括:
第一数据获取单元6311,用于获得每一个目标标识对应的数据包;
第一解码获取单元6312,用于利用预设解码规则,对获取的所述目标标识对应的数据包进行解码,获得所述至少一个目标数据属性对应的目标数据。
其中,预设编码规则可以与数据包的编码规则对应,本申请对其不作具体限定。
需要说明的是,在该可选实施例中,获取单个目标标识对应的目标数据的实现过程可以参照上述图3对应的实施例的描述,本实施例在此不再详述。
可选的,如图8所示,当目标标识为多个时,上述数据查询请求还可以包括针对所述至少一个目标数据属性的查询条件,也就是说,按条件查询多个Key对应的数据的应用中,上述目标数据获取模块63可以包括:
第二数据获取单元6321,用于获得每一个目标标识对应的数据包;
第二解码获取单元6322,用于利用预设解码规则,对每一个目标标识对应的数据包进行解码,确定所述至少一个目标数据属性对应的数据为备选数据;
目标数据筛选单元6323,用于按照所述查询条件对获得的所述备选数据进行筛选,获得目标数据。
需要说明的是,关于按条件查询多个目标标识对应的目标数据的实现过程,可以参照上述图5对应的实施例的描述,本申请在此不再详述。而且,在这种情况下,反馈至客户端的目标数据以及目标标识可以通过列表生成单元按照第二预设规则生成查询结果列表,再通过数据传输单元将该数据查询结果发送至客户端,但并不局限于这一种实现方式。
作为本申请另一实施例,对于上述第一数据获取单元6311以及第二数据获取单元6321均可以包括:
目标数据地址获取单元,用于按照预设映射关系表,确定所述至少一个目标标识映射的数据地址为目标数据地址;
可选的,当目标标识为多个时,确定目标数据地址与目标标识相同数据,且可以参照第一预设规则呈列表状态输出,但并不局限于这一种输出方式,且本申请对该第一预设规则的内容不作限定。
数据包获取单元,用于获得至少一个所述目标数据地址对应的数据包。
综上所述,数据存储服务器能够按照上述方案,能够针对至少一个数据属性,对各目标标识对应的数据包进行界面,从而获得目标数据,即实现了对任意数据的结构化查询,提高了数据查询灵活性和通用性,且数据存储服务器没有将数据包中的无用数据发送至客户端,避免了这些无用数据对网络资源的占用,且减轻了客户端数据处理负担。
参照本申请实施例还提供的一种数据存储服务器,该数据存储服务器可以包括上述实施例提供的数据查询装置。本实施例在此针对该数据存储服务器的硬件结构进行介绍。
参照图9,为本申请实施例提供的一种数据存储服务器的硬件结构框图,该数据存储服务器可以包括处理器91、通信接口92、存储器93以及通信总线94;
其中,处理器91、通信接口92、存储器93可以通过通信总线94完成相互间的通信;
可选的,通信接口92可以为通信模块的接口,如GSM模块的接口;
处理器91可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器93可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,处理器91具体用于:
接收客户端发送的数据查询请求,所述数据查询请求至少包括用于查询目标数据的至少一个目标标识以及至少一个目标数据属性;
确定所述至少一个目标标识以及所述至少一个目标数据属性;
获得每一个目标标识对应的数据包,并从获得的数据包中筛选每一个所述目标数据属性对应的目标数据;
将所述目标数据以及所述目标标识反馈至所述客户端。
可选的,当目标标识为一个时,上述获得每一个目标标识对应的数据包,并从获得的数据包中筛选每一个所述目标数据属性对应的目标数据的过程可以包括:
按照预设映射关系表,确定所述目标标识映射的数据地址为目标数据地址;
获得所述目标数据地址对应的数据包;
利用预设解码规则,对获取的所述目标标识对应的数据包进行解码,获得所述至少一个目标数据属性对应的目标数据。
可选的,当目标标识为一个,上述数据查询请求还可以包括针对所述至少一个目标数据属性的查询条件,则上述获得每一个目标标识对应的数据包,并从获得的数据包中筛选每一个所述目标数据属性对应的目标数据的过程可以包括:
按照预设映射关系表,确定所述至少一个目标标识映射的数据地址为目标数据地址;
获得至少一个所述目标数据地址对应的数据包;
利用预设解码规则,对每一个目标标识对应的数据包进行解码,确定所述至少一个目标数据属性对应的数据为备选数据;
按照所述查询条件对获得的所述备选数据进行筛选,获得目标数据。
参照上图1,本申请实施例还提供了一种数据查询系统,该系统可以包括:客户端10以及数据存储服务器20,其中:
客户端10,用于向数据存储服务器20发送数据查询请求,所述数据查询请求至少包括用于查询目标数据的至少一个目标标识以及至少一个目标数据属性;
数据存储服务器20,用于解析所述数据查询请求,确定所述至少一个目标标识以及所述至少一个目标数据属性,获得数据库30中每一个目标标识对应的数据包,并从获得的数据包中筛选具有所述至少一个目标数据属性的目标数据,将所述目标数据以及所述目标标识反馈至客户端10。
可选的,上述客户端10可以是一个或多个。上述数据库可以是NoSQL数据库,具体可以是键值数据库,但并不局限于此。
综上,本申请实施例实现了对数据库中单一数据以及多个数据的结构化查询,不需要针对所需数据预先设定的存储结构,即可采用本申请上述方案实现对任意数据的快速查询,且由于数据存储服务器只是将所得目标数据反馈至客户端,而不是将目标数据所在的整个数据包发送至客户端,避免了冗余数据对网络资源的占用,且减轻了客户端数据处理负担。
此外,需要说明的是,关于上述各实施例中,诸如第一、第二等之类的关系术语仅仅用来将一个操作、单元或模块与另一个操作、单元或模块区分开来,而不一定要求或者暗示这些单元、操作或模块之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者系统中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、服务器以及系统而言,由于其与实施例公开的方法对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (13)
1.一种数据查询方法,其特征在于,包括:
接收客户端发送的数据查询请求,所述数据查询请求至少包括用于查询目标数据的至少一个目标标识以及至少一个目标数据属性;
确定所述至少一个目标标识以及所述至少一个目标数据属性;
根据标识与数据地址之间的映射关系获得每一个目标标识对应的数据包,并从获得的数据包中筛选每一个所述目标数据属性对应的目标数据;
将所述目标数据以及所述目标标识反馈至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述根据标识与数据地址之间的映射关系获得每一个目标标识对应的数据包,包括:
按照预设映射关系表,确定所述至少一个目标标识映射的数据地址为目标数据地址;
获得至少一个所述目标数据地址对应的数据包。
3.根据权利要求1所述的方法,其特征在于,当所述目标标识为一个时,所述从获得的数据包中筛选具有所述至少一个目标数据属性的目标数据,包括:
利用预设解码规则,对获取的所述目标标识对应的数据包进行解码,获得所述至少一个目标数据属性对应的目标数据。
4.根据权利要求1所述的方法,其特征在于,当所述目标标识为多个,所述数据查询请求还包括针对所述至少一个目标数据属性的查询条件,则所述从获得的数据包中筛选具有所述至少一个目标数据属性的目标数据,包括:
利用预设解码规则,对每一个目标标识对应的数据包进行解码,确定所述至少一个目标数据属性对应的数据为备选数据;
按照所述查询条件对获得的所述备选数据进行筛选,获得目标数据。
5.根据权利要求3或4所述的方法,其特征在于,所述预设解码规则与所述数据包的编码规则对应。
6.根据权利要求2所述的方法,其特征在于,当所述目标标识为多个时,确定的多个目标标识映射的数据地址按照第一预设规则呈列表状态输出。
7.根据权利要求4所述的方法,其特征在于,所述将所述目标数据以及所述目标标识反馈至所述客户端,包括:
将确定的目标数据以及与每一个目标数据对应的目标标识按照第二预设规则,生成查询结果列表;
将所述查询结果列表反馈至客户端,以使客户端从所述查询结果列表中选择第一标识对应的第一数据执行预设操作。
8.一种数据查询装置,其特征在于,包括:
请求接收模块,用于接收客户端发送的数据查询请求,所述数据查询请求至少包括用于查询目标数据的至少一个目标标识以及至少一个目标数据属性;
信息确定模块,用于确定所述至少一个目标标识以及所述至少一个目标数据属性;
目标数据获取模块,用于根据标识与数据地址之间的映射关系获得每一个目标标识对应的数据包,并从获得的数据包中筛选每一个目标数据属性对应的目标数据;
目标数据发送模块,用于将所述目标数据以及所述目标标识反馈至所述客户端。
9.根据权利要求8所述的装置,其特征在于,所述目标数据获取模块包括:
目标数据地址获取单元,用于按照预设映射关系表,确定所述至少一个目标标识映射的数据地址为目标数据地址;
数据包获取单元,用于获得至少一个所述目标数据地址对应的数据包。
10.根据权利要求8所述的装置,其特征在于,当所述目标标识为一个时,所述目标数据获取模块包括:
第一数据获取单元,用于获得每一个目标标识对应的数据包;
第一解码获取单元,用于利用预设解码规则,对获取的所述目标标识对应的数据包进行解码,获得所述至少一个目标数据属性对应的目标数据。
11.根据权利要求8所述的装置,其特征在于,当所述目标标识为多个,所述数据查询请求还包括针对所述至少一个目标数据属性的查询条件,则所述目标数据获取模块包括:
第二数据获取单元,用于获得每一个目标标识对应的数据包;
第二解码获取单元,用于利用预设解码规则,对每一个目标标识对应的数据包进行解码,确定所述至少一个目标数据属性对应的数据为备选数据;
目标数据筛选单元,用于按照所述查询条件对获得的所述备选数据进行筛选,获得目标数据。
12.一种数据存储服务器,其特征在于,包括如权利要求8~11任意一项所述的数据查询装置。
13.一种数据查询系统,其特征在于,包括:
客户端,用于向数据存储服务器发送数据查询请求,所述数据查询请求至少包括用于查询目标数据的至少一个目标标识以及至少一个目标数据属性;
数据存储服务器,用于解析所述数据查询请求,确定所述至少一个目标标识以及所述至少一个目标数据属性,根据标识与数据地址之间的映射关系获得数据库中每一个目标标识对应的数据包,并从获得的数据包中筛选具有所述至少一个目标数据属性的目标数据,将所述目标数据以及所述目标标识反馈至所述客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611026513.5A CN108090064B (zh) | 2016-11-21 | 2016-11-21 | 一种数据查询方法、装置、数据存储服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611026513.5A CN108090064B (zh) | 2016-11-21 | 2016-11-21 | 一种数据查询方法、装置、数据存储服务器及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108090064A CN108090064A (zh) | 2018-05-29 |
CN108090064B true CN108090064B (zh) | 2021-10-08 |
Family
ID=62169523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611026513.5A Active CN108090064B (zh) | 2016-11-21 | 2016-11-21 | 一种数据查询方法、装置、数据存储服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108090064B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776678B (zh) * | 2018-05-29 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 基于移动端NoSQL数据库的索引创建方法及装置 |
CN109101595B (zh) * | 2018-07-27 | 2022-07-08 | 郑州云海信息技术有限公司 | 一种信息查询方法、装置、设备及计算机可读存储介质 |
CN109213781B (zh) * | 2018-08-27 | 2023-05-02 | 平安科技(深圳)有限公司 | 风控数据查询方法及装置 |
CN111292107A (zh) * | 2018-12-06 | 2020-06-16 | 北京嘀嘀无限科技发展有限公司 | 用户数据处理方法、装置、电子设备及存储介质 |
CN109726202B (zh) * | 2018-12-18 | 2020-11-17 | 北京新唐思创教育科技有限公司 | 一种区块链数据存储方法及计算机存储介质 |
WO2020237878A1 (zh) * | 2019-05-30 | 2020-12-03 | 平安科技(深圳)有限公司 | 数据去重方法、装置、计算机设备以及存储介质 |
CN111090804B (zh) * | 2019-12-12 | 2024-03-08 | 聚好看科技股份有限公司 | 数据过滤方法、装置及计算机存储介质 |
CN111159199B (zh) * | 2019-12-31 | 2023-10-24 | 中国建设银行股份有限公司 | 一种指标数据获取方法及装置 |
CN111460298A (zh) * | 2020-03-31 | 2020-07-28 | 深圳市酷开网络科技有限公司 | 业务数据处理方法、装置、计算机设备和存储介质 |
CN111488386B (zh) * | 2020-04-14 | 2023-09-29 | 北京易数科技有限公司 | 数据查询方法和装置 |
CN111586629A (zh) * | 2020-04-24 | 2020-08-25 | 深圳市元征科技股份有限公司 | 一种ZigBee方式下车辆远程诊断方法以及相关装置 |
CN111698324B (zh) * | 2020-06-12 | 2022-12-06 | 北京奇艺世纪科技有限公司 | 一种数据请求方法、装置及系统 |
CN111708848B (zh) * | 2020-06-12 | 2024-02-23 | 北京思特奇信息技术股份有限公司 | 一种数据查询方法、系统及电子设备 |
CN113836177B (zh) * | 2020-06-23 | 2023-05-05 | 易保网络技术(上海)有限公司 | 消耗型业务数据的缓存管理 |
CN111880773A (zh) * | 2020-07-21 | 2020-11-03 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112925954B (zh) * | 2021-03-05 | 2024-05-24 | 北京中经惠众科技有限公司 | 用于在图数据库中查询数据的方法和装置 |
CN113190605A (zh) * | 2021-04-30 | 2021-07-30 | 携程商旅信息服务(上海)有限公司 | 票价展示方法及系统、电子设备及存储介质 |
CN113468388B (zh) * | 2021-06-30 | 2024-05-03 | 深圳集智数字科技有限公司 | 控制方法、装置、服务器及存储介质 |
CN113986384A (zh) * | 2021-10-28 | 2022-01-28 | 数字天堂(北京)网络技术有限公司 | 基于客户端和云端的处理装置、方法、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216840A (zh) * | 2008-01-21 | 2008-07-09 | 金蝶软件(中国)有限公司 | 一种数据查询方法和一种数据查询系统 |
CN101968806A (zh) * | 2010-10-22 | 2011-02-09 | 天津南大通用数据技术有限公司 | 数据存储方法、查询方法及装置 |
CN105574054A (zh) * | 2014-11-06 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 一种分布式缓存范围查询方法、装置及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7606793B2 (en) * | 2004-09-27 | 2009-10-20 | Microsoft Corporation | System and method for scoping searches using index keys |
CN102054007B (zh) * | 2009-11-10 | 2012-10-31 | 北大方正集团有限公司 | 一种检索方法及检索装置 |
CN102890678A (zh) * | 2011-07-20 | 2013-01-23 | 华东师范大学 | 一种基于格雷编码的分布式数据布局方法及查询方法 |
CN103514201B (zh) * | 2012-06-27 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 一种非关系型数据库的数据查询方法和装置 |
US9529865B2 (en) * | 2014-02-12 | 2016-12-27 | Sap Se | Interval based fuzzy database search |
-
2016
- 2016-11-21 CN CN201611026513.5A patent/CN108090064B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216840A (zh) * | 2008-01-21 | 2008-07-09 | 金蝶软件(中国)有限公司 | 一种数据查询方法和一种数据查询系统 |
CN101968806A (zh) * | 2010-10-22 | 2011-02-09 | 天津南大通用数据技术有限公司 | 数据存储方法、查询方法及装置 |
CN105574054A (zh) * | 2014-11-06 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 一种分布式缓存范围查询方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
浅谈NOSQL数据库;南敬宇;《电子技术与软件工程》;20131023(第19期);第229页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108090064A (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108090064B (zh) | 一种数据查询方法、装置、数据存储服务器及系统 | |
KR102097881B1 (ko) | 단축 링크를 처리하는 방법 및 장치, 및 단축 링크 서버 | |
CN109299110B (zh) | 数据查询方法、装置、存储介质和电子设备 | |
US10250526B2 (en) | Method and apparatus for increasing subresource loading speed | |
US10404731B2 (en) | Method and device for detecting website attack | |
US10225231B2 (en) | Method and server of remote information query | |
CN110609844A (zh) | 一种数据更新方法,装置及系统 | |
WO2016070622A1 (zh) | Oid配置、解析方法、客户端、节点及数据库和存储介质 | |
CN107103011B (zh) | 终端数据搜索的实现方法和装置 | |
CN111629081A (zh) | 互联网协议ip地址数据处理方法、装置及电子设备 | |
US20170289243A1 (en) | Domain name resolution method and electronic device | |
CN105005567B (zh) | 兴趣点查询方法和系统 | |
CN112954043B (zh) | 基于网站访问日志识别用户的方法及计算机设备 | |
CN107844488B (zh) | 数据查询方法和装置 | |
CN112579898A (zh) | 企业信息的管理方法、装置及服务器 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN115039090A (zh) | 数据查询方法、装置、服务器及存储介质 | |
CN114116827B (zh) | 一种用户画像数据的查询系统及方法 | |
CN111563199A (zh) | 一种数据处理方法及装置 | |
CN107357557B (zh) | 一种信息更新方法及装置 | |
US11483288B1 (en) | Serialization of firewall rules with user, device, and application correlation | |
US20170163560A1 (en) | Resource object resolution management | |
CN111797334A (zh) | 一种网址访问方法、装置、电子设备及存储介质 | |
CN116842984A (zh) | 一种图形码的解码方法及其制码方法 | |
CN114253925A (zh) | 一种访问数据库日志的方法、服务器、终端以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |