CN110427538B - 一种数据查询方法、存储方法、装置及电子设备 - Google Patents
一种数据查询方法、存储方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110427538B CN110427538B CN201910692997.4A CN201910692997A CN110427538B CN 110427538 B CN110427538 B CN 110427538B CN 201910692997 A CN201910692997 A CN 201910692997A CN 110427538 B CN110427538 B CN 110427538B
- Authority
- CN
- China
- Prior art keywords
- data
- key
- key value
- value pair
- queried
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Abstract
本发明实施例提供了一种数据存储方法、数据查询方法及相关装置、电子设备。该方法包括:接收数据查询请求,该数据查询请求中携带有待查询数据所属的对象的对象标识以及待查询数据的数据标签;确定包括待查询数据的数据标签的标签集合;根据待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,得到存储待查询数据的父键值对中的键;根据存储待查询数据的父键值对中的键,查找存储待查询数据的父键值对中的键值;从所查找到的键值中的子键值对处,获取子键值对中的键为待查询数据的数据标签的子键值对,将所获取的子键值对中的键值确定为数据查询请求的查询结果。本发明可以提升数据的查询效率。
Description
技术领域
本发明涉及数据的存储和查询技术领域,特别是涉及一种数据查询方法、存储方法、装置及电子设备。
背景技术
在数据的存储和查询技术领域中,针对一个对象,可能存有多个数据标签,且每个数据标签都有对应的值。相应的,在处理对任一对象的数据查询请求时,针对该数据查询请求所请求查询的各个数据标签,分别执行查询操作,并将查询到的多个值整合为该数据查询请求的查询结果。
然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
当处理的数据查询请求数量增多时,现有的数据查询方法所需执行的查询操作数量倍增,这无疑会降低查询效率,从而影响整个业务系统的运行性能。因此,急需一种数据查询方法,以提升数据的查询效率。
发明内容
本发明实施例的目的在于提供一种数据查询方法、存储方法、装置及电子设备,以提升数据的查询效率。具体技术方案如下:
第一方面,本发明实施例提供了一种数据查询方法,所述数据为采用键值对的方式存储的数据,存储所述数据的父键值对中的键为:根据所述数据所属的对象的对象标识以及标签集合的集合标识确定的键;所述父键值对中的键值包括子键值对,且所述标签集合包括所有所述子键值对中的键;其中,针对每一所述子键值对,该子键值对中的键为所述数据的一个数据标签,且该子键值对中的键值为该数据标签对应的值;该方法包括:
接收数据查询请求,所述数据查询请求中携带有待查询数据所属的对象的对象标识以及所述待查询数据的数据标签;
确定包括所述待查询数据的数据标签的标签集合;
根据所述待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键;
根据存储所述待查询数据的父键值对中的键,查找存储所述待查询数据的父键值对中的键值;
从所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对,将所获取的子键值对中的键值确定为所述数据查询请求的查询结果。
可选地,任一所述子键值对中的键为第一数据标签,所述第一数据标签为属于全量更新类型的数据的数据标签。
可选地,存储所述数据的键值对还包括第二键值对,所述第二键值对中的键为:根据所述数据所属的对象的对象标识以及所述数据的第二数据标签确定的键,所述第二数据标签为不属于全量更新类型的数据的数据标签;
在所述确定包括所述待查询数据的数据标签的标签集合的步骤之前,所述方法还包括:
确定所述待查询数据的数据标签的标签种类;
针对所述待查询数据的数据标签中,标签种类为所述第一数据标签的数据标签,继续执行从所述确定包括所述待查询数据的数据标签的标签集合,直至所述从所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对的步骤;
针对所述待查询数据的数据标签中,标签种类为所述第二数据标签的数据标,根据所述第二数据标签以及所述待查询数据所属的对象的对象标识,得到存储所述待查询数据的第二键值对中的键;根据存储所述待查询数据的第二键值对中的键,查找存储所述待查询数据的第二键值对中的键值;
所述将所获取的子键值对中的键值确定为所述数据查询请求的查询结果,包括:
将所获取的子键值对中的键值以及所查找到的第二键值对中的键值,均确定为所述数据查询请求的查询结果。
可选地,存储所述数据的父键值对中的键为根据所述数据所属的对象的对象标识、对象类别以及标签集合的集合标识确定的键;存储所述数据的第二键值对中的键为根据所述数据所属的对象的对象标识、对象类别以及第二数据标签确定的键;
所述根据所述待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键的步骤,包括:
根据所述待查询数据所属的对象的对象标识、对象类型以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键;
所述根据所述第二数据标签以及所述待查询数据所属的对象的对象标识,得到存储所述待查询数据的第二键值对中的键,包括:
根据所述待查询数据所属的对象的对象标识、对象类型以及所述第二数据标签,得到存储所述待查询数据的第二键值对中的键;
其中,所述对象类型为根据所述待查询数据所属的对象的对象标识确定的。
第二方面,本发明实施例提供了一种数据存储方法,所述方法包括:
获取待存储数据所属的对象的对象标识、所述待存储数据的所有数据标签以及每个所述数据标签对应的值;
针对任一所述数据标签,根据该数据标签以及该数据标签对应的值,得到子键值对;其中,所述子键值对中的键为该数据标签,所述子键值对中的键值为该数据标签对应的值;
生成所述所有数据标签的标签集合的集合标识;
根据所述对象标识以及所述集合标识,得到父键值对中的键,根据所述所有数据标签对应的子键值对,得到所述父键值对中的键值;
将所得到的父键值对作为所述待存储数据的存储结果。
可选地,针对任一所述数据标签,在根据该数据标签以及该数据标签对应的值,得到子键值对之前,所述方法还包括:
判断该数据标签是否属于全量更新类型的数据的数据标签;
如果是,执行所述根据该数据标签以及该数据标签对应的值,得到子键值对的步骤;
所述生成所述所有数据标签的标签集合的集合标识,包括:
针对属于全量更新类型的数据的所有数据标签的标签集合,生成该标签集合的集合标识。
可选地,当判断结果为否时,所述方法还包括:
根据该数据标签以及该数据标签对应的值,得到第二键值对;其中,所述第二键值对中的键为该数据标签,所述第二键值对中的键值为该数据标签对应的值;
所述将所述父键值对作为所述待存储数据的存储结果,包括:
将所得到的父键值对和第二键值对均作为所述待存储数据的存储结果。
可选地,所述方法还包括:
获取待存储数据所属的对象的对象类型;
所述根据所述对象标识以及所述集合标识,得到父键值对中的键的步骤,包括:
根据所述对象标识、所述集合标识以及所述对象类型,得到父键值对中的键。
第三方面,本发明实施例提供了一种数据查询装置,所述数据为采用键值对的方式存储的数据,存储所述数据的父键值对中的键为:根据所述数据所属的对象的对象标识以及标签集合的集合标识确定的键;所述父键值对中的键值包括子键值对,且所述标签集合包括所有所述子键值对中的键;其中,针对每一所述子键值对,该子键值对中的键为所述数据的一个数据标签,且该子键值对中的键值为该数据标签对应的值;该装置包括:
接收模块,用于接收数据查询请求,所述数据查询请求中携带有待查询数据所属的对象的对象标识以及所述待查询数据的数据标签;
第一确定模块,用于确定包括所述待查询数据的数据标签的标签集合;
第二确定模块,用于根据所述待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键;
第一查找模块,用于根据存储所述待查询数据的父键值对中的键,查找存储所述待查询数据的父键值对中的键值;
第三确定模块,用于从所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对,将所获取的子键值对中的键值确定为所述数据查询请求的查询结果。
可选地,任一所述子键值对中的键为第一数据标签,所述第一数据标签为属于全量更新类型的数据的数据标签。
可选地,存储所述数据的键值对还包括第二键值对,所述第二键值对中的键为:根据所述数据所属的对象的对象标识以及所述数据的第二数据标签确定的键,所述第二数据标签为不属于全量更新类型的数据的数据标签;所述装置还包括:第四确定模块、第五确定模块以及第二查找模块;
所述第四确定模块,用于在所述第一确定模块被触发之前,确定所述待查询数据的数据标签的标签种类;
所述第五确定模块,用于针对所述第四确定模块确定的、所述待查询数据的数据标签中,标签种类为所述第二数据标签的数据标,根据所述第二数据标签以及所述待查询数据所属的对象的对象标识,得到存储所述待查询数据的第二键值对中的键;
所述第二查找模块,用于根据存储所述待查询数据的第二键值对中的键,查找存储所述待查询数据的第二键值对中的键值;
所述第一确定模块,具体用于:针对所述第四确定模块确定的、所述待查询数据的数据标签中,标签种类为所述第一数据标签的数据标签,确定包括所述待查询数据的数据标签的标签集合;
所述第三确定模块,具体用于:从所述第一查找模块所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对;将所获取的子键值对中的键值以及所述第二查找模块所查找到的第二键值对中的键值,均确定为所述数据查询请求的查询结果。
可选地,存储所述数据的父键值对中的键为根据所述数据所属的对象的对象标识、对象类别以及标签集合的集合标识确定的键;存储所述数据的第二键值对中的键为根据所述数据所属的对象的对象标识、对象类别以及第二数据标签确定的键;
所述第二确定模块,具体用于:
根据所述待查询数据所属的对象的对象标识、对象类型以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键;
所述第五确定模块,具体用于:根据所述待查询数据所属的对象的对象标识、对象类型以及所述第二数据标签,得到存储所述待查询数据的第二键值对中的键;
其中,所述对象类型为根据所述待查询数据所属的对象的对象标识确定的。
第四方面,本发明实施例提供了一种数据存储装置,所述装置包括:
第一获取模块,用于获取待存储数据所属的对象的对象标识、所述待存储数据的所有数据标签以及每个所述数据标签对应的值;
子键值对获得模块,用于针对任一所述数据标签,根据该数据标签以及该数据标签对应的值,得到子键值对;其中,所述子键值对中的键为该数据标签,所述子键值对中的键值为该数据标签对应的值;
生成模块,用于生成所述所有数据标签的标签集合的集合标识;
父键值对获得模块,用于根据所述对象标识以及所述集合标识,得到父键值对中的键,根据所述所有数据标签对应的子键值对,得到所述父键值对中的键值;
确定模块,用于将所得到的父键值对作为所述待存储数据的存储结果。
可选地,所述装置还包括:判断模块;
所述判断模块,用于在所述子键值对获得模块被触发之前,针对任一所述数据标签,判断该数据标签是否属于全量更新类型的数据的数据标签;如果是,触发所述子键值对获得模块;
所述生成模块,具体用于:
针对所有属于全量更新类型的数据的数据标签的标签集合,生成该标签集合的集合标识。
可选地,所述装置还包括:第二键值对获得模块;
所述第二键值对获得模块,用于当判断结果为否时,根据该数据标签以及该数据标签对应的值,得到第二键值对;其中,所述第二键值对中的键为该数据标签,所述第二键值对中的键值为该数据标签对应的值;
所述确定模块,具体用于:
将所得到的父键值对和第二键值对均作为所述待存储数据的存储结果。
可选地,所述装置还包括:第二获取模块;
所述第二获取模块,用于获取待存储数据所属的对象的对象类型;
所述父键值对获得模块根据所述对象标识以及所述集合标识,得到父键值对中的键,包括:根据所述对象标识、所述集合标识以及所述对象类型,得到父键值对中的键。
第五方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的数据查询方法。
第六方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的数据存储方法。
本发明实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的数据查询方法。
本发明实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的数据存储方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的数据查询方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的数据存储方法。
本发明实施例提供的一种数据查询方法中,所接收到的数据查询请求中携带有待查询数据所属的对象的对象标识以及所述待查询数据的数据标签;进而,根据该数据查询请求,可以确定包括待查询数据的数据标签的标签集合;根据待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,可以得到存储待查询数据的父键值对中的键;根据存储待查询数据的父键值对中的键,可以查找存储待查询数据的父键值对中的键值;然后,从所查找到的键值中的子键值对处,获取子键值对中的键为待查询数据的数据标签的子键值对,将所获取的子键值对中的键值确定为数据查询请求的查询结果。可见,采用本方案,可以一次性查询到数据查询请求所请求查询的各个数据标签对应的值,而无需针对每个数据标签,分别执行查询操作,且无需对所查到的各个数据标签对应的值进行整合。因此,本方案可以提升数据的查询速率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种数据查询方法的流程示意图;
图2为本发明实施例提供的一种数据存储方法的流程示意图;
图3为本发明实施例提供的一种数据查询装置的结构示意图;
图4为本发明实施例提供的一种数据存储装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图;
图6为本发明实施例提供的另一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提升数据的查询速率,本发明实施例提供了一种数据查询方法、存储方法、装置及电子设备。
本发明实施例中,数据为采用键值对的方式存储的数据,存储数据的父键值对中的键为:根据数据所属的对象的对象标识以及标签集合的集合标识确定的键;父键值对中的键值包括子键值对,且标签集合包括所有子键值对中的键;其中,针对每一子键值对,该子键值对中的键为数据的一个数据标签,且该子键值对中的键值为该数据标签对应的值。因此,每个父键值对的键值,可以存储该父键值对的键所对应对象的所有数据标签和数据标签对应的值。
可以理解的是,所谓的键值对,就是键和键值所共同组成的对;所谓的父键值对和子键值对,是相对而言的,具体是指父键值对的键值中存储有子键值对。
首先,对本发明实施例提供的一种数据存储方法进行详细说明,如图1所示,本发明实施例提供的一种数据存储方法,可以包括如下步骤:
S101:接收数据查询请求,该数据查询请求中携带有待查询数据所属的对象的对象标识以及待查询数据的数据标签。
这里,待查询数据所属的对象的类别存在多种。举例而言,假设待查询数据所属的对象为一人员,那么该对象的对象标识可以为该人员的身份标识;假设待查询数据所属的对象为一手机用户,那么该对象的对象标识可以为该手机用户的手机号。
另外,数据查询请求中所携带的待查询数据的数据标签,可以有一个或多个。
S102:确定包括待查询数据的数据标签的标签集合。
上述已经提到,标签集合包括所有子键值对中的键,且每个子键值对中的键为数据的一个数据标签。因此,根据标签集合中任意一个或多个数据标签,就可以确定包括这些数据标签的标签集合。
在实际应用中,同一对象的数据的数据标签,可以形成一个标签集合,利用该标签集合的集合标识,可以表征这些数据标签。在存储数据的载体中,例如在缓存中,存储对象的数据时,可以根据对象标识以及该集合标识生成父键值对中的键;而父键值对中的键值,则可以为多个以子键值对的方式存储的数据标签和数据标签对应的值。这样,在存储数据后,数据标签与标签集合的归属关系已经确定,故在查找数据时,利用该归属关系,就可以确定待查询数据的数据标签的标签集合。
S103:根据待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,得到存储待查询数据的父键值对中的键。
上述已经提到,存储数据的父键值对中的键为:根据数据所属的对象的对象标识以及标签集合的集合标识确定的键。因此,在S102中已经确定包括待查询数据的数据标签的标签集合后,对该标签集合的集合标识和该对象标识进行组合,就可以得到存储待查询数据的父键值对中的键。
S104:根据存储待查询数据的父键值对中的键,查找存储待查询数据的父键值对中的键值。
可以理解的是,由于数据均为采用键值对的方式存储的,故根据S103中得到的父键值对中的键,就可以查找到相应的键值。
S105:从所查找到的键值中的子键值对处,获取子键值对中的键为待查询数据的数据标签的子键值对,将所获取的子键值对中的键值确定为数据查询请求的查询结果。
可以理解的是,存储待查询数据的父键值对的键值中,存有待查询数据所属的对象的所有数据标签和数据标签对应的值。因此,从这些数据标签中,可以获取子键值对中的键为待查询数据的数据标签的子键值对,所获取的子键值对中的键值,即为待查询数据的数据标签对应的值,即数据查询请求所要的查询结果。
举例而言,假设存储待查询数据的父键值对的键值中,有3个子键值对:键1-A,键2-B以及键3-C;其中,A、B、C分别为键1、键2、键3的键值;假设待查询数据的数据标签为键2,那么,从存储待查询数据的父键值对的键值中,可以获得包含有键2的键值对:键2-B;相应的,就可以得到键2的值为B。这里,B即为数据查询请求的查询结果。
本发明实施例提供的一种数据查询方法中,所接收到的数据查询请求中携带有待查询数据所属的对象的对象标识以及所述待查询数据的数据标签;进而,根据该数据查询请求,可以确定包括待查询数据的数据标签的标签集合;根据待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,可以得到存储待查询数据的父键值对中的键;根据存储待查询数据的父键值对中的键,可以查找存储待查询数据的父键值对中的键值;然后,从所查找到的键值中的子键值对处,获取子键值对中的键为待查询数据的数据标签的子键值对,将所获取的子键值对中的键值确定为数据查询请求的查询结果。可见,采用本方案,可以一次性查询到数据查询请求所请求查询的各个数据标签对应的值,而无需针对每个数据标签,分别执行查询操作,且无需对所查到的各个数据标签对应的值进行整合。因此,本方案可以提升数据的查询速率。
可选地,在一种实现方式中,任一子键值对中的键为第一数据标签,该第一数据标签为属于全量更新类型的数据的数据标签。
这里,全量更新类型的数据的过期时间是固定的。以对象为手机用户而言,手机用户的手机号码的归属地、运营商和用户名字,均为全量更新类型的数据。这是因为,如果手机用户不变更手机号,那么这三种数据都不会过期,也就是说,这三种数据的过期时间,取决于手机用户何时变更手机号。
可以理解的是,由于全量更新类型的数据的过期时间是固定的,故全量更新类型的数据更为适合以上述所示的父键值对中存储子键值对的方式进行存储。这是因为在存储时,可以为父键值对的键值中所存有的全量更新类型的数据设置统一的过期时间。
可选地,在一种实现方式中,本发明实施例提供的数据查询方法中,存储数据的键值对还包括第二键值对,该第二键值对中的键为:根据数据所属的对象的对象标识以及数据的第二数据标签确定的键,且该第二数据标签为不属于全量更新类型的数据的数据标签。这里,不属于全量更新类型的数据,如增量更新类型的数据和实时更新类型的数据等等。
相应的,在确定包括待查询数据的数据标签的标签集合的步骤之前,本发明实施例提供的数据查询方法,还可以包括:
确定所述待查询数据的数据标签的标签种类;
针对待查询数据的数据标签中,标签种类为所述第一数据标签的数据标签,继续执行S102-S104以及S105中从所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对的步骤;
针对待查询数据的数据标签中,标签种类为第二数据标签的数据标,根据该第二数据标签以及待查询数据所属的对象的对象标识,得到存储待查询数据的第二键值对中的键;根据存储待查询数据的第二键值对中的键,查找存储待查询数据的第二键值对中的键值;
可以理解的是,在查询数据时,可以首先确定所述待查询数据的数据标签的标签种类,从而可以针对不同标签种类的数据标签,采用相应的查询方法进行数据查询。相应的,S105中,将所获取的子键值对中的键值确定为数据查询请求的查询结果,可以包括:
将所获取的子键值对中的键值以及所查找到的第二键值对中的键值,均确定为数据查询请求的查询结果。
可以理解的是,数据查询请求所请求查询数据,既可能包含全量更新类型的数据,也可能包含不属于全量更新类型的数据。由于不属于全量更新类型的各数据之间,过期时间是不定的,故相对并不适于以上述所示的父键值对中存储子键值对的方式进行存储。如果集中存储,如果那么在查询数据时,所查询到的数据,有的已过期,而有的还未过期,那么所查询的数据就包含了无效数据。因此,在存储不属于全量更新类型的数据时,采用第二键值对的方式进行存储,这样,不同数据分属于不同的第二键值对,不会因过期时间的不同而互相干扰。相应的,在待查询数据的数据标签中包含有第二数据标签时,根据第二数据标签以及对象标识,得到存储待查询数据的第二键值对中的键,进而查找到存储待查询数据的第二键值对中的键值。然后,将所查找到的第二键值对中的键值以及查询第一数据标签时所获取的子键值对中的键值,均确定为数据查询请求的查询结果。这样,当数据查询请求所请求查询的各个数据标签中,既有第一数据标签,又有第二数据标签时,各个数据标签对应的值均可以被查到。
可选地,在一种实现方式中,存储数据的父键值对中的键可以为根据数据所属的对象的对象标识、对象类别以及标签集合的集合标识确定的键;并且,存储数据的第二键值对中的键为根据数据所属的对象的对象标识、对象类别以及第二数据标签确定的键;
相应的,根据待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,得到存储待查询数据的父键值对中的键的步骤,可以包括:
根据待查询数据所属的对象的对象标识、对象类型以及所确定的标签集合的集合标识,得到存储待查询数据的父键值对中的键;
并且,根据第二数据标签以及待查询数据所属的对象的对象标识,得到存储待查询数据的第二键值对中的键,可以包括:
根据待查询数据所属的对象的对象标识、对象类型以及第二数据标签,得到存储待查询数据的第二键值对中的键;
其中,对象类型为根据待查询数据所属的对象的对象标识确定的。
该实现方式中,对象类别也可以理解为数据维度。举例而言,当对象标识为一个手机号码时,对象为一个手机用户,那么对象类别就是手机用户;当对象标识为一个人员姓名时,对象为一个人员,那么对象类别就是人;当对象标识为一个学校名称时,对象为一个学校,那么对象类别就是学校;可见,不同的对象类别,可以代表不同的数据维度。
这里,在得到存储待查询数据的父键值对中的键或第二键值对中的键时,将对象类型纳入考量因素,所带来的有益效果可以包括:避免分属于不同对象类别的对象的对象标识重复。例如,当商品对象和人员对象的对象标识有可能出现相同的情况。
为了更好地说明本发明实施例提供的数据查询方法,下面对查询数据时所涉及的父键值对、子键值对以及第二键值对的存储格式,进行示例性的说明。
示例性的,对于父键值对的键所包含的对象类型、对象标识以及集合标识,可以采用预设的第一分隔符将这三项分隔存储,例如:对象类型|集合标识|对象标识;对于父键值对的键值所包含的多个子键值对,可以采用预设的第二分隔符将多个子键值对分隔存储,以及将每个子键值对的键和键值分隔存储,例如:键:值#键:值#键:值;或者,将父键值对的键值所包含的多个子键值对存储为集合的形式,例如:{“键”:“值”,“键”:“值”,“键”:“值”}。在实际应用中,集合也可以采用JSON(Java Script Object Notation,对象表示法)格式来存储。
基于同一发明构思,本发明实施例还提供了一种数据存储方法,如图2所示,该数据存储方法可以包括如下步骤:
S201:获取待存储数据所属的对象的对象标识、待存储数据的所有数据标签以及每个数据标签对应的值。
其中,待存储数据所属的对象的对象的类别存在多种。举例而言,假设待存储数据所属的对象为一人员,那么该对象的对象标识可以为该人员的身份标识;假设待存储数据所属的对象为一手机用户,那么该对象的对象标识可以为该手机用户的手机号。
可以理解的是,待存储数据的所有数据标签,均是待存储数据所属的对象的数据的数据标签,当然,这些数据标签的对应的值,即是待存储数据所属的对象的数据。
在实际应用中,为了提高存储效率以及节省存储空间,可以将同一对象的可同时存储的所有数据作为待存储数据进行存储。
S202:针对任一数据标签,根据该数据标签以及该数据标签对应的值,得到子键值对;其中,该子键值对中的键为该数据标签,该子键值对中的键值为该数据标签对应的值。
这里,根据该数据标签以及该数据标签对应的值,得到子键值对,可以具体为将该数据标签作为将要生成的子键值对中的键,并将该数据标签对应的值作为该子键值对中的键值。
可以理解的是,所谓的键值对,就是键和键值所共同组成的对。这里所说的子键值对,是相应于父键值对而言的,为了方案清楚,将在S204中对父键值对进行说明。
S203:生成待存储数据的所有数据标签的标签集合的集合标识。
这里,待存储数据的所有数据标签,可以形成一个标签集合,为该标签集合生成集合标识后,该集合标识,就可以表征该标签集合里的所有数据标签,从而实现将多个数据标签聚合为一个集合标识。
可以理解的是,步骤S201中所获得的待存储数据的所有数据标签,为属于待存储数据的、利用同一个集合标识所可以表征的所有数据标签。例如,步骤S201中所获得的待存储数据的所有数据标签,均可以为属于全量更新类型的数据的数据标签,当然,并不局限于此。其中,全量更新类型的数据,为过期时间固定的数据。例如手机用户的手机号码的归属地、运营商和用户名字等等。
S204:根据对象标识以及集合标识,得到父键值对中的键,根据待存储数据的所有数据标签对应的子键值对,得到父键值对中的键值。
可以理解的是,每个父键值对的键,既包含待存储数据所属对象的对象标识,又包含该对象的数据标签所形成的标签集合的集合标识。因此,当将任一对象的可同时存储的所有数据作为待存储数据进行存储时,父键值对的键,既可表征待存储数据所属对象,又可表征该对象的所有数据标签;相应的,父键值对的键值,可以存有该对象的可同时存储的所有数据;其中,父键值对的键值中,每一个子键值对,存储该对象的一种数据。
另外,由于父键值对的键值中存储有子键值对,故称其为父键值对。
S205:将所得到的父键值对作为待存储数据的存储结果。
本发明实施例提供的一种数据存储方法中,可以将待存储数据的所有数据标签以及每个数据标签对应的值,一次性存入一个父键值对中。无需再针对每个数据标签执行存储操作。可见,采用本方案,既可以提升存储效率,又能够节省存储空间。并且,在后续的数据查询阶段,可以一次性的将待查询数据所属对象的所有数据一次性查到,无需逐个查询。因此,采用本方案还可以帮助数据查询阶段的查询效率的提升。
可选地,在一种实现方式中,针对每一数据标签,在根据该数据标签以及该数据标签对应的值,得到子键值对之前,本发明实施例提供的数据存储方法,还可以包括:
判断该数据标签是否属于全量更新类型的数据的数据标签;
如果是,执行所述根据该数据标签以及该数据标签对应的值,得到子键值对的步骤;
可以理解的是,由于全量更新类型的数据的过期时间是固定的,这样便于在存储时,为父键值对的键值中所存有的全量更新类型的数据设置统一的过期时间。因此,全量更新类型的数据更为适合以父键值对中存储子键值对的方式进行存储。
相应的,生成待存储数据的所有数据标签的标签集合的集合标识,可以包括:
针对属于全量更新类型的数据的所有数据标签的标签集合,生成该标签集合的集合标识。
另外,对于不属于全量更新类型的数据,存储方法与现有的数据存储方法相同或相似。为了方案清楚及完整,后续对待存储数据既有全量更新类型的数据,又有不属于全量更新类型的数据时的存储过程进行示例性的说明。
可选地,在一种实现方式中,本发明实施例提供的数据存储方法,还可以包括:
获取待存储数据所属的对象的对象类型;
相应的,所述根据该对象的对象标识以及所述集合标识,生成父键值对中的键的步骤,可以包括:
根据所述对象类型、该对象的对象标识以及所述集合标识,生成父键值对中的键。
其中,对象类别也可以理解为数据维度。举例而言,当对象标识为一个手机号码时,对象为一个手机用户,那么对象类别就是手机用户;当对象标识为一个人员姓名时,对象为一个人员,那么对象类别就是人;当对象标识为一个学校名称时,对象为一个学校,那么对象类别就是学校;可见,不同的对象类别,可以代表不同的数据维度。
这里,根据所述对象类型、该对象的对象标识以及所述集合标识,生成父键值对中的键,所带来的有益效果可以包括:避免所存储的父键值对中,出现分属于不同对象类别的对象的对象标识重复的现象。例如,商品对象的对象标识和人员对象的对象标识有可能出现相同的情况。
为了方案清楚及完整,下面对待存储数据既有全量更新类型的数据,又有不属于全量更新类型的数据时的存储过程进行示例性的说明。在说明时,为了便于区分,以第一数据标签来表征属于全量更新类型的数据的数据标签,以第二数据标签来表征不属于全量更新类型的数据的数据标签。其中,不属于全量更新类型的数据如增量更新类型的数据和实时更新类型的数据等等。这些类型的数据的特点在于数据的过期时间不定。
示例性的,针对每一数据标签,当判断得到该数据标签为不属于全量更新类型的数据的数据标签时,即判断得到该数据标签为第二数据标签时,本发明实施例提供的数据存储方法,还可以包括:
根据待存储数据所属的对象的对象标识以及该第二数据标签,得到第二键值对中的键,并将第二数据标签对应的值作为第二键值对中的键值。
其中,对于待存储数据中的各个第一数据标签,可以生成这些第一数据标签的标签集合的集合标识,并按照S204所示的步骤得到一个父键值对。此时,待存储数据的每一数据标签以及该数据标签所对应的数据,均已被存入到父键值对或一个第二键值对中。然后,将所得到的父键值对和第二键值对均作为所述待存储数据的存储结果。
可以理解的是,任一第二键值对中的键值,只有一个第二数据标签对应的值。这样,可以将过期时间不定的不同数据分开存储,从而避免集中存储所造成的部分数据未过期,部分数据已过期的无效存储的情况。
另外,在一种实现方式中,根据待存储数据所属的对象的对象标识以及第二数据标签,得到第二键值对中的键,可以包括:
根据待存储数据所属的对象的对象类型、对象标识以及第二数据标签,得到第二键值对中的键。
可以理解的是,根据待存储数据所属的对象的对象类型、对象标识以及第二数据标签,得到第二键值对中的键时,加入对象类型这一维度的目的在于:避免所存储的第二键值对中,出现分属于不同对象类别的对象的对象标识重复的现象。
为了方案清楚,下面对父键值对、子键值对以及第二键值对的存储格式,进行示例性的说明。
示例性的,对于父键值对的键所包含的对象类型、对象标识以及集合标识,可以采用预设的第一分隔符将这三项分隔,例如,对象类型|集合标识|对象标识;对于父键值对的键值所包含的多个子键值对,可以采用预设的第二分隔符将多个子键值对分隔开,以及将每个子键值对的键和键值分隔开,例如,键:值#键:值#键:值;或者,将父键值对的键值所包含的多个子键值对存储为集合的形式,例如{“键”:“值”,“键”:“值”,“键”:“值”}。在实际应用中,集合的格式也可以是JSON(Java Script Object Notation,对象表示法)格式。
相应于上述的一种数据查询方法,本发明实施例还提供了一种数据查询装置,该装置中,数据为采用键值对的方式存储的数据,存储所述数据的父键值对中的键为:根据所述数据所属的对象的对象标识以及标签集合的集合标识确定的键;所述父键值对中的键值包括子键值对,且所述标签集合包括所有所述子键值对中的键;其中,针对每一所述子键值对,该子键值对中的键为所述数据的一个数据标签,且该子键值对中的键值为该数据标签对应的值;如图3所示,该装置可以包括:
接收模块301,用于接收数据查询请求,所述数据查询请求中携带有待查询数据所属的对象的对象标识以及所述待查询数据的数据标签;
第一确定模块302,用于确定包括所述待查询数据的数据标签的标签集合;
第二确定模块303,用于根据所述待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键;
第一查找模块304,用于根据存储所述待查询数据的父键值对中的键,查找存储所述待查询数据的父键值对中的键值;
第三确定模块305,用于从所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对,将所获取的子键值对中的键值确定为所述数据查询请求的查询结果。
可选地,任一所述子键值对中的键为第一数据标签,所述第一数据标签为属于全量更新类型的数据的数据标签。
可选地,存储所述数据的键值对还包括第二键值对,所述第二键值对中的键为:根据所述数据所属的对象的对象标识以及所述数据的第二数据标签确定的键,所述第二数据标签为不属于全量更新类型的数据的数据标签;所述装置还包括:第四确定模块、第五确定模块以及第二查找模块;
所述第四确定模块,用于在所述第一确定模块被触发之前,确定所述待查询数据的数据标签的标签种类;
所述第五确定模块,用于针对所述第四确定模块确定的、所述待查询数据的数据标签中,标签种类为所述第二数据标签的数据标,根据所述第二数据标签以及所述待查询数据所属的对象的对象标识,得到存储所述待查询数据的第二键值对中的键;
所述第二查找模块,用于根据存储所述待查询数据的第二键值对中的键,查找存储所述待查询数据的第二键值对中的键值;
所述第一确定模块302,具体用于:针对所述第四确定模块确定的、所述待查询数据的数据标签中,标签种类为所述第一数据标签的数据标签,确定包括所述待查询数据的数据标签的标签集合;
所述第三确定模块305,具体用于:从所述第一查找模块所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对;将所获取的子键值对中的键值以及所述第二查找模块所查找到的第二键值对中的键值,均确定为所述数据查询请求的查询结果。
可选地,存储所述数据的父键值对中的键为根据所述数据所属的对象的对象标识、对象类别以及标签集合的集合标识确定的键;存储所述数据的第二键值对中的键为根据所述数据所属的对象的对象标识、对象类别以及第二数据标签确定的键;
所述第二确定模块303,具体用于:
根据所述待查询数据所属的对象的对象标识、对象类型以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键;
所述第五确定模块,具体用于:根据所述待查询数据所属的对象的对象标识、对象类型以及所述第二数据标签,得到存储所述待查询数据的第二键值对中的键;
其中,所述对象类型为根据所述待查询数据所属的对象的对象标识确定的。
本发明实施例提供的一种数据查询装置,所接收到的数据查询请求中携带有待查询数据所属的对象的对象标识以及所述待查询数据的数据标签;进而,根据该数据查询请求,可以确定包括待查询数据的数据标签的标签集合;根据待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,可以得到存储待查询数据的父键值对中的键;根据存储待查询数据的父键值对中的键,可以查找存储待查询数据的父键值对中的键值;然后,从所查找到的键值中的子键值对处,获取子键值对中的键为待查询数据的数据标签的子键值对,将所获取的子键值对中的键值确定为数据查询请求的查询结果。可见,采用本方案,可以一次性查询到数据查询请求所请求查询的各个数据标签对应的值,而无需针对每个数据标签,分别执行查询操作,且无需对所查到的各个数据标签对应的值进行整合。因此,本方案可以提升数据的查询速率。
相应于上述的一种数据存储方法,本发明实施例还提供了一种数据存储装置,如图4所示,该装置可以包括:
第一获取模块401,用于获取待存储数据所属的对象的对象标识、所述待存储数据的所有数据标签以及每个所述数据标签对应的值;
子键值对获得模块402,用于针对任一所述数据标签,根据该数据标签以及该数据标签对应的值,得到子键值对;其中,所述子键值对中的键为该数据标签,所述子键值对中的键值为该数据标签对应的值;
生成模块403,用于生成所述所有数据标签的标签集合的集合标识;
父键值对获得模块404,用于根据所述对象标识以及所述集合标识,得到父键值对中的键,根据所述所有数据标签对应的子键值对,得到所述父键值对中的键值;
确定模块405,用于将所得到的父键值对作为所述待存储数据的存储结果。
可选地,所述装置还包括:判断模块;
所述判断模块,用于在所述子键值对获得模块402被触发之前,针对任一所述数据标签,判断该数据标签是否属于全量更新类型的数据的数据标签;如果是,触发所述子键值对获得模块402;
所述生成模块403,具体用于:
针对属于全量更新类型的数据的所有数据标签的标签集合,生成该标签集合的集合标识。
可选地,所述装置还包括:第二键值对获得模块;
所述第二键值对获得模块,用于当判断结果为否时,根据待存储数据所属的对象的对象标识以及该数据标签,得到第二键值对中的键,并将该数据标签对应的值作为第二键值对中的键值。
所述确定模块405,具体用于:
将所得到的父键值对和第二键值对均作为所述待存储数据的存储结果。
可选地,所述装置还包括:第二获取模块;
所述第二获取模块,用于获取待存储数据所属的对象的对象类型;
所述父键值对获得模块404根据对象的对象标识以及集合标识,生成父键值对中的键,可以包括:
根据对象类型、对象标识以及集合标识,生成父键值对中的键。
所述第二键值对获得模块根据待存储数据所属的对象的对象标识以及该数据标签,得到第二键值对中的键,可以包括:
根据所述对象类型、该对象的对象标识以及数据标签,生成第二键值对中的键。
本发明实施例提供的一种数据存储装置,可以将待存储数据的所有数据标签以及每个数据标签对应的值,一次性存入一个父键值对中。无需再针对每个数据标签执行存储操作。可见,采用本方案,既可以提升存储效率,又能够节省存储空间。并且,在后续的数据查询阶段,可以一次性的将待查询数据所属对象的所有数据一次性查到,无需逐个查询。因此,采用本方案还可以帮助数据查询阶段的查询效率的提升。
基于同一发明构思,根据本发明上述实施例提供的数据查询方法,本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现上述任一所述的数据查询方法。
基于同一发明构思,根据本发明上述实施例提供的数据存储方法,本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述任一所述的数据存储方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的数据查询方法。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的数据存储方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据查询方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据存储方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (16)
1.一种数据查询方法,其特征在于,所述数据为采用键值对的方式存储的数据,存储所述数据的父键值对中的键为:根据所述数据所属的对象的对象标识以及标签集合的集合标识确定的键;所述父键值对中的键值包括子键值对,且所述标签集合包括所有所述子键值对中的键;其中,针对每一所述子键值对,该子键值对中的键为所述数据的一个数据标签,且该子键值对中的键值为该数据标签对应的值;该方法包括:
接收数据查询请求,所述数据查询请求中携带有待查询数据所属的对象的对象标识以及所述待查询数据的数据标签;
确定包括所述待查询数据的数据标签的标签集合;其中,一个标签集合包含同一对象的数据的数据标签;
根据所述待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键;
根据存储所述待查询数据的父键值对中的键,查找存储所述待查询数据的父键值对中的键值;
从所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对,将所获取的子键值对中的键值确定为所述数据查询请求的查询结果;
任一所述子键值对中的键为第一数据标签,所述第一数据标签为属于全量更新类型的数据的数据标签。
2.根据权利要求1所述的方法,其特征在于,存储所述数据的键值对还包括第二键值对,所述第二键值对中的键为:根据所述数据所属的对象的对象标识以及所述数据的第二数据标签确定的键,所述第二数据标签为不属于全量更新类型的数据的数据标签;
在所述确定包括所述待查询数据的数据标签的标签集合的步骤之前,所述方法还包括:
确定所述待查询数据的数据标签的标签种类;
针对所述待查询数据的数据标签中,标签种类为所述第一数据标签的数据标签,继续执行从所述确定包括所述待查询数据的数据标签的标签集合,直至所述从所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对的步骤;
针对所述待查询数据的数据标签中,标签种类为所述第二数据标签的数据标签,根据所述第二数据标签以及所述待查询数据所属的对象的对象标识,得到存储所述待查询数据的第二键值对中的键;根据存储所述待查询数据的第二键值对中的键,查找存储所述待查询数据的第二键值对中的键值;
所述将所获取的子键值对中的键值确定为所述数据查询请求的查询结果,包括:
将所获取的子键值对中的键值以及所查找到的第二键值对中的键值,均确定为所述数据查询请求的查询结果。
3.根据权利要求2所述的方法,其特征在于,存储所述数据的父键值对中的键为根据所述数据所属的对象的对象标识、对象类别以及标签集合的集合标识确定的键;存储所述数据的第二键值对中的键为根据所述数据所属的对象的对象标识、对象类别以及第二数据标签确定的键;
所述根据所述待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键的步骤,包括:
根据所述待查询数据所属的对象的对象标识、对象类型以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键;
所述根据所述第二数据标签以及所述待查询数据所属的对象的对象标识,得到存储所述待查询数据的第二键值对中的键,包括:
根据所述待查询数据所属的对象的对象标识、对象类型以及所述第二数据标签,得到存储所述待查询数据的第二键值对中的键;
其中,所述对象类型为根据所述待查询数据所属的对象的对象标识确定的。
4.一种数据存储方法,其特征在于,所述方法包括:
获取待存储数据所属的对象的对象标识、所述待存储数据的所有数据标签以及每个所述数据标签对应的值;
针对任一所述数据标签,根据该数据标签以及该数据标签对应的值,得到子键值对;其中,所述子键值对中的键为该数据标签,所述子键值对中的键值为该数据标签对应的值;任一所述子键值对中的键为第一数据标签,所述第一数据标签为属于全量更新类型的数据的数据标签;
生成所述所有数据标签的标签集合的集合标识;其中,一个标签集合包含同一对象的数据的数据标签;
根据所述对象标识以及所述集合标识,得到父键值对中的键,根据所述所有数据标签对应的子键值对,得到所述父键值对中的键值;
将所得到的父键值对作为所述待存储数据的存储结果。
5.根据权利要求4所述的方法,其特征在于,针对每一所述数据标签,在根据该数据标签以及该数据标签对应的值,得到子键值对之前,所述方法还包括:
判断该数据标签是否属于全量更新类型的数据的数据标签;
如果是,执行所述根据该数据标签以及该数据标签对应的值,得到子键值对的步骤;
所述生成所述所有数据标签的标签集合的集合标识,包括:
针对属于全量更新类型的数据的所有数据标签的标签集合,生成该标签集合的集合标识。
6.根据权利要求5所述的方法,其特征在于,当判断结果为否时,所述方法还包括:
根据该数据标签以及该数据标签对应的值,得到第二键值对;其中,所述第二键值对中的键为该数据标签,所述第二键值对中的键值为该数据标签对应的值;
所述将所述父键值对作为所述待存储数据的存储结果,包括:
将所得到的父键值对和第二键值对均作为所述待存储数据的存储结果。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取待存储数据所属的对象的对象类型;
所述根据所述对象标识以及所述集合标识,得到父键值对中的键的步骤,包括:
根据所述对象标识、所述集合标识以及所述对象类型,得到父键值对中的键。
8.一种数据查询装置,其特征在于,所述数据为采用键值对的方式存储的数据,存储所述数据的父键值对中的键为:根据所述数据所属的对象的对象标识以及标签集合的集合标识确定的键;所述父键值对中的键值包括子键值对,且所述标签集合包括所有所述子键值对中的键;其中,针对每一所述子键值对,该子键值对中的键为所述数据的一个数据标签,且该子键值对中的键值为该数据标签对应的值;该装置包括:
接收模块,用于接收数据查询请求,所述数据查询请求中携带有待查询数据所属的对象的对象标识以及所述待查询数据的数据标签;
第一确定模块,用于确定包括所述待查询数据的数据标签的标签集合;其中,一个标签集合包含同一对象的数据的数据标签;
第二确定模块,用于根据所述待查询数据所属的对象的对象标识以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键;
第一查找模块,用于根据存储所述待查询数据的父键值对中的键,查找存储所述待查询数据的父键值对中的键值;
第三确定模块,用于从所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对,将所获取的子键值对中的键值确定为所述数据查询请求的查询结果;
任一所述子键值对中的键为第一数据标签,所述第一数据标签为属于全量更新类型的数据的数据标签。
9.根据权利要求8所述的装置,其特征在于,存储所述数据的键值对还包括第二键值对,所述第二键值对中的键为:根据所述数据所属的对象的对象标识以及所述数据的第二数据标签确定的键,所述第二数据标签为不属于全量更新类型的数据的数据标签;所述装置还包括:第四确定模块、第五确定模块以及第二查找模块;
所述第四确定模块,用于在所述第一确定模块被触发之前,确定所述待查询数据的数据标签的标签种类;
所述第五确定模块,用于针对所述第四确定模块确定的、所述待查询数据的数据标签中,标签种类为所述第二数据标签的数据标签,根据所述第二数据标签以及所述待查询数据所属的对象的对象标识,得到存储所述待查询数据的第二键值对中的键;
所述第二查找模块,用于根据存储所述待查询数据的第二键值对中的键,查找存储所述待查询数据的第二键值对中的键值;
所述第一确定模块,具体用于:针对所述第四确定模块确定的、所述待查询数据的数据标签中,标签种类为所述第一数据标签的数据标签,确定包括所述待查询数据的数据标签的标签集合;
所述第三确定模块,具体用于:从所述第一查找模块所查找到的键值中的子键值对处,获取子键值对中的键为所述待查询数据的数据标签的子键值对;将所获取的子键值对中的键值以及所述第二查找模块所查找到的第二键值对中的键值,均确定为所述数据查询请求的查询结果。
10.根据权利要求9所述的装置,其特征在于,存储所述数据的父键值对中的键为根据所述数据所属的对象的对象标识、对象类别以及标签集合的集合标识确定的键;存储所述数据的第二键值对中的键为根据所述数据所属的对象的对象标识、对象类别以及第二数据标签确定的键;
所述第二确定模块,具体用于:
根据所述待查询数据所属的对象的对象标识、对象类型以及所确定的标签集合的集合标识,得到存储所述待查询数据的父键值对中的键;
所述第五确定模块,具体用于:根据所述待查询数据所属的对象的对象标识、对象类型以及所述第二数据标签,得到存储所述待查询数据的第二键值对中的键;
其中,所述对象类型为根据所述待查询数据所属的对象的对象标识确定的。
11.一种数据存储装置,其特征在于,所述装置包括:
第一获取模块,用于获取待存储数据所属的对象的对象标识、所述待存储数据的所有数据标签以及每个所述数据标签对应的值;
子键值对获得模块,用于针对任一所述数据标签,根据该数据标签以及该数据标签对应的值,得到子键值对;其中,所述子键值对中的键为该数据标签,所述子键值对中的键值为该数据标签对应的值;任一所述子键值对中的键为第一数据标签,所述第一数据标签为属于全量更新类型的数据的数据标签;
生成模块,用于生成所述所有数据标签的标签集合的集合标识;其中,一个标签集合包含同一对象的数据的数据标签;
父键值对获得模块,用于根据所述对象标识以及所述集合标识,得到父键值对中的键,根据所述所有数据标签对应的子键值对,得到所述父键值对中的键值;
确定模块,用于将所得到的父键值对作为所述待存储数据的存储结果。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:判断模块;
所述判断模块,用于在所述子键值对获得模块被触发之前,针对任一所述数据标签,判断该数据标签是否属于全量更新类型的数据的数据标签;如果是,触发所述子键值对获得模块;
所述生成模块,具体用于:
针对所有属于全量更新类型的数据的数据标签的标签集合,生成该标签集合的集合标识。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:第二键值对获得模块;
所述第二键值对获得模块,用于当判断结果为否时,根据该数据标签以及该数据标签对应的值,得到第二键值对;其中,所述第二键值对中的键为该数据标签,所述第二键值对中的键值为该数据标签对应的值;
所述确定模块,具体用于:
将所得到的父键值对和第二键值对均作为所述待存储数据的存储结果。
14.根据权利要求11所述的装置,其特征在于,所述装置还包括:第二获取模块;
所述第二获取模块,用于获取待存储数据所属的对象的对象类型;
所述父键值对获得模块根据所述对象标识以及所述集合标识,得到父键值对中的键,包括:
根据所述对象标识、所述集合标识以及所述对象类型,得到父键值对中的键。
15.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-3任一所述的方法步骤。
16.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求4-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910692997.4A CN110427538B (zh) | 2019-07-30 | 2019-07-30 | 一种数据查询方法、存储方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910692997.4A CN110427538B (zh) | 2019-07-30 | 2019-07-30 | 一种数据查询方法、存储方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110427538A CN110427538A (zh) | 2019-11-08 |
CN110427538B true CN110427538B (zh) | 2023-01-20 |
Family
ID=68413098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910692997.4A Active CN110427538B (zh) | 2019-07-30 | 2019-07-30 | 一种数据查询方法、存储方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427538B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061678B (zh) * | 2019-12-10 | 2023-05-23 | 深圳奇迹智慧网络有限公司 | 业务数据处理方法、装置、计算机设备和存储介质 |
CN111309972B (zh) * | 2020-02-25 | 2023-06-30 | 深圳市元征科技股份有限公司 | 一种数据处理方法、装置、终端设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970349A (zh) * | 2012-11-02 | 2013-03-13 | 上海交通大学 | 一种dht网络的存储负载均衡方法 |
CN103164408A (zh) * | 2011-12-09 | 2013-06-19 | 阿里巴巴集团控股有限公司 | 基于垂直搜索引擎的信息存储、查询方法及其装置 |
CN103353873A (zh) * | 2013-06-07 | 2013-10-16 | 携程计算机技术(上海)有限公司 | 基于时间度量数据实时查询服务的优化实现方法及系统 |
CN104115146A (zh) * | 2012-02-14 | 2014-10-22 | 阿尔卡特朗讯公司 | 在分布式系统中存储和搜索带标签的内容项的方法 |
CN109144404A (zh) * | 2017-06-27 | 2019-01-04 | 北京金山安全软件有限公司 | 基于多个dmp的数据存储以及查询方法、装置和电子设备 |
WO2019089888A1 (en) * | 2017-11-01 | 2019-05-09 | Walmart Apollo, Llc | Systems and methods for dynamic hierarchical metadata storage and retrieval |
-
2019
- 2019-07-30 CN CN201910692997.4A patent/CN110427538B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164408A (zh) * | 2011-12-09 | 2013-06-19 | 阿里巴巴集团控股有限公司 | 基于垂直搜索引擎的信息存储、查询方法及其装置 |
CN104115146A (zh) * | 2012-02-14 | 2014-10-22 | 阿尔卡特朗讯公司 | 在分布式系统中存储和搜索带标签的内容项的方法 |
CN102970349A (zh) * | 2012-11-02 | 2013-03-13 | 上海交通大学 | 一种dht网络的存储负载均衡方法 |
CN103353873A (zh) * | 2013-06-07 | 2013-10-16 | 携程计算机技术(上海)有限公司 | 基于时间度量数据实时查询服务的优化实现方法及系统 |
CN109144404A (zh) * | 2017-06-27 | 2019-01-04 | 北京金山安全软件有限公司 | 基于多个dmp的数据存储以及查询方法、装置和电子设备 |
WO2019089888A1 (en) * | 2017-11-01 | 2019-05-09 | Walmart Apollo, Llc | Systems and methods for dynamic hierarchical metadata storage and retrieval |
Also Published As
Publication number | Publication date |
---|---|
CN110427538A (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109741060B (zh) | 信息查询系统、方法、装置、电子设备及存储介质 | |
CN110928874B (zh) | 一种信息处理方法、装置、系统、电子设备及存储介质 | |
CN111352902A (zh) | 日志处理方法、装置、终端设备及存储介质 | |
CN113364853B (zh) | 一种业务服务系统、业务请求方法及网关设备 | |
CN111062013B (zh) | 一种账号过滤方法、装置、电子设备及机器可读存储介质 | |
CN109450969B (zh) | 从第三方数据源服务器中获取数据的方法、装置和服务器 | |
CN109669980B (zh) | 数据跨库访问方法及装置 | |
CN111143371A (zh) | 数据查询方法、装置、设备、系统及介质 | |
CN110427538B (zh) | 一种数据查询方法、存储方法、装置及电子设备 | |
EP3057004B1 (en) | Method and apparatus for sharing environment context | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
CN111367870A (zh) | 一种绘本共享方法、装置和系统 | |
CN111382206A (zh) | 一种数据存储方法及装置 | |
CN113761565B (zh) | 数据脱敏方法和装置 | |
CN110955460B (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN111488371A (zh) | 一种数据查询方法和装置 | |
CN111221742A (zh) | 一种测试案例的更新方法、装置、存储介质和服务器 | |
CN110619204A (zh) | 一种邀请码生成方法、装置、终端设备及存储介质 | |
CN110727895A (zh) | 一种敏感词发送方法、装置、电子设备及存储介质 | |
CN111752964A (zh) | 基于数据接口的数据处理方法及装置 | |
CN110990611B (zh) | 图片缓存方法、装置、电子设备及存储介质 | |
CN110046180B (zh) | 一种用于定位相似实例的方法、装置和电子设备 | |
CN109670114B (zh) | 制图规则推荐方法及装置 | |
CN112612817A (zh) | 数据处理方法、装置、终端设备及计算机可读存储介质 | |
CN113347220B (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 |