CN109388658B - 一种数据确定方法和装置 - Google Patents
一种数据确定方法和装置 Download PDFInfo
- Publication number
- CN109388658B CN109388658B CN201811105375.9A CN201811105375A CN109388658B CN 109388658 B CN109388658 B CN 109388658B CN 201811105375 A CN201811105375 A CN 201811105375A CN 109388658 B CN109388658 B CN 109388658B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- intermediate result
- query
- service request
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供了一种数据确定方法和装置。方法包括:在接收到针对目标数据的服务请求后,基于服务请求携带的指示信息,查询第一存储器中是否存储有确定目标数据需要的中间结果;若命中,则从第一存储器中获得中间结果;若未命中,则基于指示信息,从第二存储器中获得参照数据,并对参照数据进行数据处理,获得中间结果;基于中间结果,确定目标数据。本申请实施例中,服务端若直接从第一存储器中查找到中间结果,则不必再通过计算获取。一方面,能够有效降低了服务端处理服务请求的资源消耗,进而在服务请求突增场下降低服务端系统发生崩溃的概率;另一方面,还能够提高服务端处理服务请求的效率,进而提升服务端的吞吐量。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据确定方法和装置。
背景技术
在客户端升级配置的场景下,客户端向服务端发起升级服务请求,以获取升级数据。升级数据需要服务端对升级服务请求中数据进行数据处理后才能获得。服务端在执行数据处理时,需要消耗大量的处理资源以用于计算。在大规模升级请求并发的情况下,服务端系统很容易因资源耗尽造成崩溃,从而无法再为客户端提供任何服务。
不单是上述客户端升级配置的场景,客户端向服务端发起的任何需要进行数据处理的服务请求都有可能使服务端系统面临资源耗尽。
有鉴于此,当前有必要提出一种技术方案,能够降低服务器向客户端处理服务请求所产生的资源消耗。
发明内容
本申请实施例的目的是提供一种数据确定方法和装置,用于降低服务端处理服务请求的资源消耗,进而降低了服务端系统发生崩溃的概率,保证服务端能够更加稳定地提供服务。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,本申请实施例提供了一种数据确定方法,包括:
在接收到针对目标数据的服务请求后,基于所述服务请求携带的指示信息,查询第一存储器中是否存储有确定所述目标数据需要的中间结果;
若查询命中,则从所述第一存储器中获得所述中间结果;
若查询未命中,则基于所述指示信息,从第二存储器中获得参照数据,并对所述参照数据进行数据处理,获得所述中间结果;
基于所述中间结果,确定所述目标数据。
第二方面,本申请实施例提供了一种数据确定装置,包括:
查询模块,用于在接收到针对目标数据的服务请求后,基于所述服务请求携带的指示信息,查询第一存储器中是否存储有确定所述目标数据需要的中间结果;
第一获取模块,用于若查询命中,则从所述第一存储器中获得所述中间结果;
第二获取模块,若查询未命中,则基于所述指示信息,从第二存储器中获得参照数据,并对所述参照数据进行数据处理,获得所述中间结果;
确定模块,基于所述中间结果,确定所述目标数据。
第三方面,本申请实施例提供了一种服务端设备,包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如上述第一方面所述的数据确定方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现如上述第一方面所述的数据确定方法的步骤。
本申请实施例中,服务端在接收到服务请求后,优先从第一存储器中查找确定目标数据的中间结果。在未查找到中间结果时,再通过第二存储器查找到参照数据,之后对参照数据进行数据处理,以计算出中间结果。显然,服务端若直接从第一存储器中查找到中间结果,则不必再通过计算获取。一方面,能够有效降低了服务端处理服务请求的资源消耗,进而在服务请求突增场下降低了服务端系统发生崩溃的概率,保证服务端能够更为稳定地提供服务;另一方面,还能够提高服务端处理服务请求的效率,进而大幅提升了服务端的吞吐量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据确定方法的第一种流程示意图;
图2为本申请实施例提供的数据确定方法的第二种流程示意图;
图3为本申请实施例提供的数据确定装置的模块示意图;
图4为本申请实施例提供的服务端设备的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
目前客户端向服务端发起的大部分服务请求都需要服务端进行数据计算。服务端在进行数据计算时,会消耗大量的处理资源(处理资源主要是指服务端的CPU资源和内存资源),在大规模服务请求并发的情况下,服务端系统很容易出崩溃,从而无法向客户端提供服务。
在服务请求突增的场景下,服务端的处理资源尤为重要。因此,针对服务端处理服务请求需要消耗大量资源的问题,本申请提供一种解决方案。
一方面,本发明的实施例提供一种数据确定方法,如图1所示,包括:
步骤S102,在接收到针对目标数据的服务请求后,基于服务请求携带的指示信息,查询第一存储器中是否存储有确定目标数据需要的中间结果。
针对步骤S102需要说明的是:
本申请实施例并不对服务请求后进行限定。
作为示例性介绍,上述服务请求可以是客户端发起的。例如:服务请求可以是客户端需要升级配置而向服务端发起的升级服务请求,该升级服务请求用于请求服务端反馈升级数据,因此升级数据即上述目标数据;再例如,服务请求可以是客户端向服务端发起的付费服务请求,该付费服务请求用于购买服务端的指定产品,服务端基于付费服务请求确定的付费验证数据即目标数据。
此外,第一存储器可以为内存储器,例如内部缓存处理器。相比于外存储器,内存储器用于存储小型数据,并具有优先的访问权。本发明实施例中,服务端在处理不同服务请求时,可将数据处理过程中的中间结果存储在第一存储器中,以便后续直接拿来使用。
步骤S104,若查询命中,则从第一存储器中获得中间结果。
针对步骤S104需要说明的是:
查询命中是指从第一存储器查询获取到中间结果。
在本申请实施例的应用场景中,若服务器先前已经处理过上述服务请求,并将当时处理过上述服务请所执行的数据处理过程中的中间结果存储至第一存储器,则本次再处理上述服务请求,即可从第一存储器中直接获取中间结果,从而不需要通过数据处理计算出中间结果。
步骤S106,若查询未命中,则基于指示信息,从第二存储器中获得参照数据,并对照数据进行数据处理,获得中间结果。
针对步骤S106需要说明的是:
参照数据可以视为目标数据的样本,两者具有一定的特征重合度或特征关联度。中间结果可以是参照数据与目标数据重合的特征信息和/或关联的特征信息。在服务端获取到参照数据后,需要对参照数据进行一定的数据处理,获取中间结果,从而后续可以基于该中间结果进一步确定出目标数据。
此外,第二存储器可以为外存储器,例如外部缓存处理器。相比于上述第一存储器,第二存储器用于存储大型数据,且具有低于第一存储器的访问优先权。本申请实施例中,第二存储器用于存储大量的参照数据,作为各类别目标数据的样本库。
步骤S108,基于上述中间结果,确定目标数据。
针对步骤S108需要说明的是:
本申请实施例的中间结果不应狭义理解为是确定目标数据的中间数据,而是确定目标数据的中间过程。
在获取中间结果后,可以从该中间结果开始运行,确定出目标数据,以便后续基于该目标数据,提供上述服务请求所对应的相关服务。由于服务端提供服务的过程并非本申请的改进点,因此本文不再举例赘述。
综上所述,本申请实施例中,服务端在接收到服务请求后,优先从第一存储器中查找确定目标数据的中间结果。在未查找到中间结果时,再通过第二存储器查找到参照数据,之后对参照数据进行数据处理,以计算出中间结果。显然,服务端若直接从第一存储器中查找到中间结果,则不必再通过计算获取。一方面,能够有效降低了服务端处理服务请求的资源消耗(如CPU资源和内存资源等),进而在服务请求突增场下降低了服务端系统发生崩溃的概率,保证服务端能够更为稳定地提供服务;另一方面,还能够提高服务端处理服务请求的效率,进而大幅提升了服务端的吞吐量。
具体地,在上述基础之上,本申请实施例的数据确定方法还可以将上述步骤S106所确定到的中间结果保存至第一存储器中,以便后续再次处理上述服务请求时能够直接从第一存储器中获取中间结果。
即,本申请实施例的数据确定方法在执行上述步骤S106时,还包括:
若查询未命中,则在对参照数据进行数据处理,得到中间结果后,将中间结果记录至第一存储器。
通过上文介绍可以知道,第一存储器作为内存储器,容量较小,因此在实际应用中,可能无法保存所有目标数据的中间结果。
有鉴于此,作为合理方案,本申请实施例可以仅将经常使用的中间结果存储在第一存储器中。
下面对存储中间结果的方法进行详细介绍。
示例性地,假设本申请实施例的服务请求为用于将源数据更新为目标数据的更新请求,则指示信息包括源数据的特征参数。服务端基于源数据的特征参数可以匹配查找到作为目标数据样本的参考数据。
首先,本申请实施例的数据确定方法记录特征参数用在查询的使用次数和/或使用频率;
其中,记录的特征参数用在查询的使用次数和/或使用频率越多,则表示通过其确定出的中间结果越频繁地被用于确定目标数据。
在将中间结果记录至第一存储器时,具体包括:
若特征参数用在查询的使用次数和/或使用频率超出已记录的预设比例的所有特征参数时,将中间结果存储至第一存储器。
对上述步骤示例说明如下。
本申请实施例可以构建一计数器,用于统计所有特征参数用在查询中间结果的使用次数和/或使用频率。
假设当前记录有4000个特征参数被用在查询中间结果,即特征参数1、特征参数2,……,特征参数4000,不同特征参数对应有的不同的目标数据以及中间结果。
若第一存储器只能保存2000个中间结果,则服务端需要将用在查询的使用次数和/或使用频率前50%的特征参数存储在第一存储器中。
也就是在执行上述步骤S106时,基于接收到的服务请求中的特征参数没有在第一存储器中找到对应的中间结果,若该特征参数用在查询的使用次数和/或使用频率在本次累计后恰好超出其他50%的特征参数,则将该特征参数对应的中间结果存储在第一存储器。
显然,上述这种存储方法可以使服务端从第一存储器查询中间结果的命中率非常高,从而有效节省了服务端处理服务请求的时间,使服务端的处理效率得到了提高,进而大幅提升了服务端的吞吐量。
此外,由于第一存储器的容量是有限的,当第一存储器的容量不足时,本申请实施例的数据确定方法还需删除第一存储器中的一些中间结果,以保证第一存储器在有效的存储空间下,以最大效益为目的,存储中间结果。
即,本申请实施例的数据确定方法还可以记录第一存储器的所有中间结果的查询命中次数,在第一存储器的已用容量达到或趋近于最大容量时,删除近期查询命中次数少于预设标准的中间结果。
对技术效果示例说明如下。
本申请实施例可以构建一计数器,用于统计第一存储器的所有中间结果的查询命中次数。
假设第一存储器存储了2000个中间结果,已经达到最大容量。
在执行上述步骤S106时,基于上述策略确定出本次需要将一个先前未存储在第一存储器的中间结果添加至第一存储器。
假设在添加前,第一存储器中有100个中间结果近期的查询命中次数少于预设标准,则表明该有100个中间结果近期查询效益出现了下降,此时可以将这100个中间结果从第一存储器删除,之后将步骤S106确定出的中间结果存储至第一存储器。
当然,除上述删除方法外,本申请实施例也可以使用末尾淘汰机制,删除第一存储器中的中间结果。例如,第一存储器达到或趋近于最大容量时,删除掉近期查询命中次数最少的一个或不少与一个的中间结果。
其中,删除中间结果的个数可以根据实际需求进行配置。
比如,一次只能删除一个中间结果,在第一存储器达到最大容量后,每当需要存储一个新的中间结果时,删除第一存储器中一个原有的中间结果,从而保证第一存储器存储的中间结果始终达到最大数量上限,以保证较高水准的查询命中收益。
显然,基于上述中间结果的存储和删除机制,本申请实施例可以保证第一存储器存储的是最近一段时间频繁用于确定目标数据的中间结果,从而使服务端在处理各类别服务请求时,能够有更多的几率从第一存储器中找到需要的中间结果,进而更加有效地降低服务器的资源消耗。
此外,在执行上述步骤106以对参照数据进行数据处理的步骤,包括:
步骤1061,对参照数据进行反序列化处理;
在实际应用中,参照数据一般采用的是Json格式,并不能直接被数据处理,通过反序列化可以使参照数据转换为能被数据处理的内存对象(内存对象是应用程序操作内存的单位)。
步骤1062,对参照数据进行数据清洗,得到数据已去冗余、规约的中间清洗数据;
其中,去冗余是指去除掉参照数据中对确定目标数据没有意义的元素,通过上文介绍可以知道,对确定目标数据没有意义的元素可以是参照数据中与目标数据没有重合度或没有关联的信息。规约是指将对象中一些属性值按照既定规则进行调整,比如:参照数据中一些值大于数据处理要求的某个阈值,则将其设置为小于阈值的既定值;参照数据中一些值不符合规则规范,将其设置为无效;参照数据中一些值本身是另一种格式形式的字符串,将其按照相应格式进行解析,并构建相应属性来保存其解析后的结果。上述去冗余和规约过程产生的结果数据称为中间清洗数据。
步骤1063,对中间清洗数据进行数据整理,得到数据已排序、扩展的中间整理数据;
其中,数据整理过程是后续业务处理的基础,目的是将数据整理成便于业务处理的形态,方便后续业务处理要求,这个过程包括:将数据的某些属性按规定顺序进行排序、将某些属性通过外部接口进行数据丰富等等,这个过程产生的数据称为中间整理数据。
步骤1064,基于中间清洗数据和/或中间整理数据,确定中间结果。
其中,中间清洗数据和/或中间整理数据是确定目标数据的中间数据,本申请实施例基于该中间清洗数据和/或中间整理数据确定到的中间结果是确定目标数据的过程,而并非是中间数据。
下面结合对本申请实施例的数据确定方法的主要流程进行示例介绍。
如图2所示,本申请实施例的数据确定方法的流程主要包括:
客户端向服务端发送服务请求,该服务请求携带有指示信息;
服务端在接收到客户端发送的服务请求后,根据指示信息,查询内部缓存(即第一存储器)是否存储有对应的中间结果;
若查询命中,则执行以下流程:
服务端根据命中的内部缓存的中间结果,确定目标数据;
服务端向客户端反馈服务响应,该服务响应携带有的目标数据。
若查询未命中,则执行以下流程:
服务端向外部缓存(即第二存储器)发送携带有上述指示信息的参照数据查询请求;
外部缓存基于参照数据查询请求中的指示信息,本地确定出对应的参照数据,并向服务端反馈携带有该参照数据的参照数据查询响应。
服务端获得参照数据查询响应中的参照数据后,对参照数据进行数据清洗,获得中间清洗数据,并根据中间清洗数据确定第一中间结果以存储至内部缓存;
服务端进一步对中间清洗数据进行数据整理,获得中间整理数据,并根据中间整理数据确定第二中间结果以存储至内部缓存;
服务端根据中间结果(第一中间结果或第二中间结果),确定目标数据;
若需要向客户端反馈目标数据时,则服务端向客户端发送携带有目标数据的服务响应。
下面结合一个实际应用,对申请实施例的数据确定方法进行详细介绍。
本实际应用的场景是客户端向服务端发起升级服务请求,则对应的数据确定方法主要包括:
步骤一:客户端在发现本地配置需要升级时,基于当前应用的策略向服务端发起升级服务请求(例如周期性发起)。
其中,升级服务请求携带有需要升级的源数据的特征参数,包括:客户端属性a=99、版本号version=1、s=game、id=19以及p=m。
步骤二:客户端将升级服务请求中携带的特征参数,按照协议进行包装。
其中,协议下的数据包结构如下:第1字节为协议版本号、第2-5字节组成一个4字节数值表示数据体长度、第6-9字节为数据体的校验值、剩下的字节为数据体内容,是请求数据的二进制形式。
步骤三:服务端收到升级服务请求后,首先根据步骤二约定的协议,把携带的数据反解出来,得到源数据的特征参数:a=99、version=1、s=game、id=19以及p=m。
步骤四:服务端首先根据特征参数game尝试从本地二级缓存(即第一存储器)中获取中间结果,如果缓存没后命中,那么从外部缓存redis中根据请求数据中的特征参数s=game进行数据查询,获取到参照数据:{"version":2,"a":130,"id":19,"x":{"t":5,v:"CN,US,CE","f":3}}。
参照数据的为Json格式,因此进行反序列化,将Json格式的参照数据转化为内存对象:version=2,a=130,id=19,[t=5,v="CN,US,CE",f=3,p="m"]。
然后进行数据清洗。其中,t=5,按照定义,5表示国家码,所以将t的值重置为“country”;按照业务定义,a的值最多不能大于100,所以将其设置为100;f不符合规则规范(f只能为1或2),将其设置为0;将v进行解析,并构建成hash表{"CN":1,"US":1,"CE":1}。最终得到中间清理数据为:version=2,a=100,[t=country,v={"CN":1,"US":1,"CE":1},f=0]。
紧接着进行数据整理,根据id=19,从外部接口中获取到p=m,最后得到中间整理数据为:version=2,a=130,p=m,[t=country,v={"CN":1,"US":1,"CE":1},f=0]。
在这个步骤中,查看计数器,发现特征参数s=game的历史出现次数为13023,频率为58次近一分钟,符合缓存条件,因此根据产生的中间清理结果数据和中间整理数据确定中间结果,并将中间结果保存至二级缓存中。
步骤五:服务端根据步骤四产生的中间结果进行业务逻辑处理,请求数据为:a=99,version=1,s=game,id=19,p=m,整理数据结果为version=2,a=100,p=m,[t=country,v={"CN":1,"US":1,"CE":1},f=0]。首先,根据客户端IP通过IP库查询得到客户端所在国家为CN,然后从参照数据中t=country的v数据中查询,命中CN,由于f=0,表示可以更新;接下来比较p值,请求数据和参照数据中的p的值都为m,匹配;最后比较版本,请求中版本号为1,服务端版本号为2,服务端版本号大于请求版本号,表示数据需要更新。
服务端按照协定格式将升级数据进行打包,格式如下:第1字节为协议版本号、第2-5字节组成一个4字节数值表示数据体长度、第6-9字节为数据体的校验值、剩下的字节为数据体内容,是二进制形式的:a=100。客户端收到升级数据,进行升级,将本地的a属性由99变为100,升级流程结束。
可见,上述实际应用引入本地二级缓存来保存中间结果,避免服务端后续再重复计算中间结果。在服务请求突增的场景下,CPU和内存资源尤为重要,任一资源的不足会蔓延到整个服务,导致服务整体不可用;通过减少中间结果的重复计算,可直接降低了服务端对CPU的资源及内存资源的占用,从而显著提高服务的整体性能,进而提升服务端的吞吐量。
当然,上述客户端进行配置升级的应用场景仅用于对本申请实施例的数据确定方法进行示例性介绍。需要说明的是,但凡是需要服务端对参照数据进行数据处理的应用场景,都可被本申请实施例的数据确定方法缓存中间结果,从而达到降低服务端资源消耗的效果。
此外,本申请实施例并不限制第一存储器的数量。在实际应用中,第一存储器可以为多个。作为示例性介绍,假设第一存储器包括一级缓存、二级缓存和三级缓存。在查询第一存储器的中间结果时,先从一级缓存中获取中间结果;若未命中,再从二级缓存中获取中间结果;若依然未命中,再从三级缓存中获取中间结果;当三级缓存也为记录中间结果,则再从第二存储器中获得参照数据,以计算出中间结果。
以上是对本申请实施例的数据确定方法的介绍,与之对应地,本申请实施例还提供一种数据确定装置,如图3所示,包括:
查询模块31,用于在接收到针对目标数据的服务请求后,基于服务请求携带的指示信息,查询第一存储器中是否存储有确定目标数据需要的中间结果;
第一获取模块32,用于若查询命中,则从第一存储器中获得所述中间结果;
第二获取模块33,若查询未命中,则基于指示信息,从第二存储器中获得参照数据,并对参照数据进行数据处理,获得中间结果;
确定模块34,基于上述中间结果,确定目标数据。
本申请实施例中,服务端在接收到服务请求后,优先从第一存储器中查找确定目标数据的中间结果。在未查找到中间结果时,再通过第二存储器查找到参照数据,之后对参照数据进行数据处理,以计算出中间结果。显然,服务端若直接从第一存储器中查找到中间结果,则不必再通过计算获取。一方面,能够有效降低了服务端处理服务请求的资源消耗,进而在服务请求突增场下降低了服务端系统发生崩溃的概率,保证服务端能够更为稳定地提供服务;另一方面,能够提高服务端处理服务请求的效率,进而大幅提升了服务端的吞吐量。
具体地,本申请实施例的数据确定装置可以将通过数据处理确定到的中间结果保存至第一存储器中,以便后续再次处理目标服务时直接从第一存储器中获取。即,本申请实施例的数据确定装置还包括:
存储模块,用于若查询未命中,则在对所述参照数据进行数据处理,得到所述中间结果后,将所述中间结果记录至所述第一存储器。
进一步地,存储模块可以将经常使用的中间结果存储在第一存储器中。
作为示例性介绍,假设本申请实施例的服务请求为用于将源数据更新为目标数据的更新请求,则指示信息包括源数据的特征参数。服务端基于源数据的特征参数可以匹配查找到作为目标数据样本的参考数据。
本申请实施例的数据确定装置可以包括:第一记录模块,用于记录所述特征参数用在查询的使用次数和/或使用频率;
对应地,存储模块具体用于:若所述特征参数用在查询的使用次数和/或使用频率超出已记录的预设比例的所有特征参数时,将所述中间结果存储至所述第一存储器。
例如:存储模块内部构件计时器以用于统计所有特征参数用在查询中间结果的使用次数和/或使用频率。假设当前记录有4000个特征参数被用在查询中间结果,即特征参数1、特征参数2,……,特征参数4000,不同特征参数对应有的不同的目标数据以及中间结果。其中,第一存储器只能保存2000个中间结果,则服务端需要将用在查询的使用次数和/或使用频率前50%的特征参数存储在第一存储器中。
基于上述存储模块,本申请实施例的数据确定装置可以让第一存储器中的中间结果在查询命中上更具有效益。
此外,在第一存储器的空间不足时,本申请实施例的数据确定装置还可以优选地删除一些查询效益较低的中间结果。即,本申请实施例的数据确定装置还包括:
第二记录模块,用于记录所述第一存储器的所有中间结果的查询命中次数;
删除模块,用于在所述第一存储器的已用容量达到或趋近于最大容量时,删除近期查询命中次数少于预设标准的中间结果。
例如:产出模块内部构件计时器以用于统计第一存储器的所有中间结果的查询命中次数。假设第一存储器存储了2000个中间结果,已经达到最大容量。上述存储模块确定出本次需要将一个先前未存储在第一存储器的中间结果添加至第一存储器。假设在添加前,第一存储器中有100个中间结果近期的查询命中次数少于预设标准,则表明该有100个中间结果近期查询效益出现了下降,此时删除模块将这100个中间结果删除后,存储模块再将需要添加的中间结果存储至第一存储器。
当然,除上述删除方式外,删除模块也可以使用末尾淘汰机制,删除第一存储器中的中间结果。例如,第一存储器达到或趋近于最大容量时,则删除掉近期查询命中次数最少的一个或不少与一个的中间结果。
其中,删除中间结果的个数可以由删除模块根据实际需求进行配置。
比如,一次只能删除一个中间结果,在第一存储器达到最大容量后,每当需要存储一个新的中间结果时,删除第一存储器中一个原有的中间结果,从而保证第一存储器存储的中间结果始终达到最大数量上限,以保证较高水准的查询命中收益。
显然,基于上述存储模块和删除模块,可以保证第一存储器存储的是最近一段时间频繁用于确定目标数据的中间结果,从而使服务端在处理各类别服务请求时,能够有更多的几率从第一存储器中找到需要的中间结果,从而更加有效地降低服务器的资源消耗。
具体地,本申请实施例的第二获取模块具体用于:
对所述参照数据进行数据清洗,得到数据已去冗余、规约的中间清洗数据;
其中,去冗余是指去除掉参照数据中对确定目标数据没有意义的元素,通过上文介绍可以知道,对确定目标数据没有意义的元素可以是参照数据中与目标数据没有重合度或没有关联的信息。规约是指将对象中一些属性值按照既定规则进行调整,比如:参照数据中一些值大于数据处理要求的某个阈值,则将其设置为小于阈值的既定值;参照数据中一些值不符合规则规范,将其设置为无效;参照数据中一些值本身是另一种格式形式的字符串,将其按照相应格式进行解析,并构建相应属性来保存其解析后的结果。上述去冗余和规约过程产生的结果数据称为中间清洗数据。
对所述中间清洗数据进行数据整理,得到数据已排序、扩展的中间整理数据;
其中,数据整理过程是后续业务处理的基础,目的是将数据整理成便于业务处理的形态,方便后续业务处理要求,这个过程包括:将数据的某些属性按规定顺序进行排序、将某些属性通过外部接口进行数据丰富等等,这个过程产生的数据称为中间整理数据。
基于中间清洗数据和/或中间整理数据,确定中间结果。
其中,中间清洗数据和/或中间整理数据是确定目标数据的中间数据,本申请实施例基于该中间清洗数据和/或中间整理数据,确定出确定目标数据的中间结果,该中间结果是确定目标数据的过程,而并非是中间数据。
在实际应用中,参照数据一般采用的是Json格式,并不能直接被数据处理,针对该情况,本申请实施例的第二获取模块还可以用于:在对所述参照数据进行数据清洗前,对所述参照数据进行反序列化处理,以使参照数据转换为能被数据处理的内存对象。
此外,本申请实施例中第一存储器可以为内存储器,例如内部缓存处理器;第二存储器可以为外存储器,例如外部缓存处理器。其中,第一存储器用于存储小型数据,并具有优先的访问权。第二存储器用于存储大型数据,访问权优先级低于第一存储器。显然本申请实施例中,小型数据指中间结果,大型数据指参照数据。当服务端要获取中间结果时,首先以较快的读取速度从内部的第一存储器中查找,如果找到就立即确定目标业务;如果没有找到,就用相对较慢的读取速度从外部的第二存储器中获得参照数据,并进行数据处理以计算出中间结果,同时服务端可以把计算出的中间结果添加至第一存储器,使得以后从第一存储器中直接获取中间结果,不必再调用第二存储器以及执行数据处理流程。正是这样的读取机制,使服务端从第一存储器读取中间结果的命中率非常高,这大大节省了服务端处理服务请求的时间,从而提高了工作效率和工作性能,进而大幅提升服务端的吞吐量。
以上是本申请实施例的数据确定装置的介绍。需要说明的申请实施例的数据确定装置是申请实施例的数据确定方法的执行主体。因此改数据确定装置以及该数据确定方法均能够实现相同的技术效果。此外,申请实施例的数据确定装置包括但不限于是:手机、平板电脑、PC、可穿戴设备等智能终端,或者本申请实施例的控制装置也可以是装配在这些智能终端中具有控制功能的硬件。
此外,如图4所示,本申请实施例还提供了一种服务端设备。
其中,服务端设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器401和存储器402,存储器402中可以存储有一个或一个以上存储应用程序或数据。其中,存储器402可以是短暂存储或持久存储。存储在存储器402的应用程序可以包括一个或一个以上模块(图4未示出),每个模块可以包括对服务端设备中的一系列计算机可执行指令。
更进一步地,处理器401可以设置为与存储器402通信,在服务端设备上执行存储器402中的一系列计算机可执行指令。
服务端设备还可以包括一个或一个以上电源403,一个或一个以上有线或无线网络接口404,一个或一个以上输入输出接口405,一个或一个以上键盘406等。
在一个具体的实施例中,服务端设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现以下流程:
在接收到针对目标数据的服务请求后,基于所述服务请求携带的指示信息,查询第一存储器中是否存储有确定所述目标数据需要的中间结果;
若查询命中,则从所述第一存储器中获得所述中间结果;
若查询未命中,则基于所述指示信息,从第二存储器中获得参照数据,并对所述参照数据进行数据处理,获得所述中间结果;
基于所述中间结果,确定所述目标数据。
可见,本申请实施例的服务端设备在接收到服务请求后,优先从第一存储器中查找确定目标数据的中间结果。在未查找到中间结果时,再通过第二存储器查找到参照数据,之后对参照数据进行数据处理,以计算出中间结果。显然,服务端若直接从第一存储器中查找到中间结果,则不必再通过计算获取。一方面,能够有效降低了服务端处理服务请求的资源消耗,进而在服务请求突增场下降低了服务端系统发生崩溃的概率,保证服务端能够更为稳定地提供服务;另一方面,能够提高服务端处理服务请求的效率,进而大幅提升了服务端的吞吐量。
可选地,所述计算机可执行指令被所述处理器执行时,若查询未命中,则在对所述参照数据进行数据处理,得到所述中间结果后,将所述中间结果记录至所述第一存储器。
可选地,所述服务请求为用于将源数据更新为目标数据的更新请求,所述指示信息包括所述源数据的特征参数。
所述计算机可执行指令被所述处理器执行时,还包括:
记录所述特征参数用在查询的使用次数和/或使用频率;
其中,将所述中间结果记录至所述第一存储器的步骤,包括:
若所述特征参数用在查询的使用次数和/或使用频率超出已记录的预设比例的所有特征参数时,将所述中间结果存储至所述第一存储器。
可选地,所述计算机可执行指令被所述处理器执行时,还包括:
记录所述第一存储器的所有中间结果的查询命中次数;
在所述第一存储器的已用容量达到或趋近于最大容量时,删除近期查询命中次数少于预设标准的中间结果。
可选地,所述计算机可执行指令被所述处理器执行对所述参照数据进行数据处理,获得所述中间结果的步骤,包括:
对所述参照数据进行数据清洗,得到数据已去冗余、规约的中间清洗数据;
对所述中间清洗数据进行数据整理,得到数据已排序、扩展的中间整理数据;
基于中间清洗数据和/或中间整理数据,确定中间结果。
可选地,所述计算机可执行指令被所述处理器执行对所述参照数据进行数据整理,获得所述中间结果的步骤,还包括:
在对所述参照数据进行数据清洗前,对所述参照数据进行反序列化处理。
可选地,所述第一存储器为内存储器,所述第二存储器为外存储器。
此外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现以下流程:
在接收到针对目标数据的服务请求后,基于所述服务请求携带的指示信息,查询第一存储器中是否存储有确定所述目标数据需要的中间结果;
若查询命中,则从所述第一存储器中获得所述中间结果;
若查询未命中,则基于所述指示信息,从第二存储器中获得参照数据,并对所述参照数据进行数据处理,获得所述中间结果;
基于所述中间结果,确定所述目标数据。
本申请实施例中,服务端在接收到服务请求后,优先从第一存储器中查找确定目标数据的中间结果。在未查找到中间结果时,再通过第二存储器查找到参照数据,之后对参照数据进行数据处理,以计算出中间结果。显然,服务端若直接从第一存储器中查找到中间结果,则不必再通过计算获取。一方面,能够有效降低了服务端处理服务请求的资源消耗,进而在服务请求突增场下降低了服务端系统发生崩溃的概率,保证服务端能够更为稳定地提供服务;另一方面,能够提高服务端处理服务请求的效率,进而大幅提升了服务端的吞吐量。
可选地,所述计算机可执行指令被处理器执行时,若查询未命中,则在对所述参照数据进行数据处理,得到所述中间结果后,将所述中间结果记录至所述第一存储器。
可选地,所述服务请求为用于将源数据更新为目标数据的更新请求,所述指示信息包括所述源数据的特征参数。
所述计算机可执行指令被处理器执行时,还包括:
记录所述特征参数用在查询的使用次数和/或使用频率;
其中,所述计算机可执行指令被处理器执行将所述中间结果记录至所述第一存储器的步骤,包括:
若所述特征参数用在查询的使用次数和/或使用频率超出已记录的预设比例的所有特征参数时,将所述中间结果存储至所述第一存储器。
可选地,所述计算机可执行指令被处理器执行时,还包括:
记录所述第一存储器的所有中间结果的查询命中次数;
在所述第一存储器的已用容量达到或趋近于最大容量时,删除近期查询命中次数少于预设标准的中间结果。
可选地,所述计算机可执行指令被处理器执行对所述参照数据进行数据处理,获得所述中间结果的步骤,包括:
对所述参照数据进行数据清洗,得到数据已去冗余、规约的中间清洗数据;
对所述中间清洗数据进行数据整理,得到数据已排序、扩展的中间整理数据;
基于中间清洗数据和/或中间整理数据,确定中间结果。
可选地,所述计算机可执行指令被处理器执行对所述参照数据进行数据处理,获得所述中间结果的步骤,还包括:
在对所述参照数据进行数据清洗前,对所述参照数据进行反序列化处理。
可选地,所述第一存储器为内存储器,所述第二存储器为外存储器。
其中,所述的计算机可读存储介质包括只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种数据确定方法,应用于服务端,其特征在于,包括:
在接收到针对目标数据的服务请求后,基于所述服务请求携带的指示信息,查询第一存储器中是否存储有确定所述目标数据需要的中间结果,所述中间结果表征基于所述服务请求确定所述目标数据的数据处理过程中得到的中间数据,所述数据处理过程包括反序列化处理、数据清洗和数据整理;
若查询命中,则从所述第一存储器中获得所述中间结果;
若查询未命中,则基于所述指示信息,从第二存储器中获得参照数据,并对所述参照数据进行数据处理,获得所述中间结果,所述参照数据和所述目标数据具有特征重合度或特征关联度,所述中间结果为所述参照数据与所述目标数据重合的特征信息和/或关联的特征信息;
基于所述中间结果,确定所述目标数据。
2.根据权利要求1所述的数据确定方法,其特征在于,还包括:
若查询未命中,则在对所述参照数据进行数据处理,得到所述中间结果后,将所述中间结果记录至所述第一存储器。
3.根据权利要求2所述的数据确定方法,其特征在于,
所述服务请求为用于将源数据更新为目标数据的更新请求,所述指示信息包括所述源数据的特征参数。
4.根据权利要求3所述的数据确定方法,其特征在于,还包括:
记录所述特征参数用在查询的使用次数和/或使用频率;
将所述中间结果记录至所述第一存储器的步骤,包括:
若所述特征参数用在查询的使用次数和/或使用频率超出已记录的预设比例的所有特征参数时,将所述中间结果存储至所述第一存储器。
5.根据权利要求1所述的数据确定方法,其特征在于,还包括:
记录所述第一存储器的所有中间结果的查询命中次数;
在所述第一存储器的已用容量达到或趋近于最大容量时,删除近期查询命中次数少于预设标准的中间结果。
6.根据权利要求1所述的数据确定方法,其特征在于,
对所述参照数据进行数据处理,获得所述中间结果的步骤,包括:
对所述参照数据进行数据清洗,得到数据已去冗余、规约的中间清洗数据;
对所述中间清洗数据进行数据整理,得到数据已排序、扩展的中间整理数据;
基于所述中间清洗数据和/或所述中间整理数据,确定所述中间结果。
7.根据权利要求6所述的数据确定方法,其特征在于,
对所述参照数据进行数据整理,获得所述中间结果的步骤,还包括:
在对所述参照数据进行数据清洗前,对所述参照数据进行反序列化处理。
8.根据权利要求1所述的数据确定方法,其特征在于,
所述第一存储器为内存储器,所述第二存储器为外存储器。
9.一种数据确定装置,应用于服务端,其特征在于,包括:
查询模块,用于在接收到针对目标数据的服务请求后,基于所述服务请求携带的指示信息,查询第一存储器中是否存储有确定所述目标数据需要的中间结果,所述中间结果表征基于所述服务请求确定所述目标数据的数据处理过程中得到的中间数据,所述数据处理过程包括反序列化处理、数据清洗和数据整理;
第一获取模块,用于若查询命中,则从所述第一存储器中获得所述中间结果;
第二获取模块,若查询未命中,则基于所述指示信息,从第二存储器中获得参照数据,并对所述参照数据进行数据处理,获得所述中间结果,所述参照数据和所述目标数据具有特征重合度或特征关联度,所述中间结果为所述参照数据与所述目标数据重合的特征信息和/或关联的特征信息;
确定模块,基于所述中间结果,确定所述目标数据。
10.根据权利要求9所述的数据确定装置,其特征在于,还包括:
存储模块,用于若查询未命中,则在对所述参照数据进行数据处理,得到所述中间结果后,将所述中间结果记录至所述第一存储器。
11.根据权利要求10所述的数据确定装置,其特征在于,还包括:
所述服务请求为用于将源数据更新为目标数据的更新请求,所述指示信息包括所述源数据的特征参数。
12.根据权利要求11所述的数据确定装置,其特征在于,还包括:
第一记录模块,用于记录所述特征参数用在查询的使用次数和/或使用频率;
所述存储模块具体用于:若所述特征参数用在查询的使用次数和/或使用频率超出已记录的预设比例的所有特征参数时,将所述中间结果存储至所述第一存储器。
13.根据权利要求9所述的数据确定装置,其特征在于,还包括:
第二记录模块,用于记录所述第一存储器的所有中间结果的查询命中次数;
删除模块,用于在所述第一存储器的已用容量达到或趋近于最大容量时,删除近期查询命中次数少于预设标准的中间结果。
14.根据权利要求9所述的数据确定装置,其特征在于,
所述第二获取模块具体用于:
对所述参照数据进行数据清洗,得到数据已去冗余、规约的中间清洗数据;
对所述中间清洗数据进行数据整理,得到数据已排序、扩展的中间整理数据;
基于所述中间清洗数据和/或所述中间整理数据,确定所述中间结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811105375.9A CN109388658B (zh) | 2018-09-21 | 2018-09-21 | 一种数据确定方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811105375.9A CN109388658B (zh) | 2018-09-21 | 2018-09-21 | 一种数据确定方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109388658A CN109388658A (zh) | 2019-02-26 |
CN109388658B true CN109388658B (zh) | 2022-05-17 |
Family
ID=65418960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811105375.9A Active CN109388658B (zh) | 2018-09-21 | 2018-09-21 | 一种数据确定方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109388658B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312381A (zh) * | 2020-07-31 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 数据处理方法和装置 |
CN115186003A (zh) * | 2022-09-14 | 2022-10-14 | 天云融创数据科技(北京)有限公司 | 一种基于云计算的数据管理方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697133A (zh) * | 2009-10-26 | 2010-04-21 | 中兴通讯股份有限公司 | 软件升级方法、软件升级系统以及客户端 |
CN105354057A (zh) * | 2015-10-23 | 2016-02-24 | 努比亚技术有限公司 | 信息处理方法及服务器 |
CN106357546A (zh) * | 2015-07-21 | 2017-01-25 | 中兴通讯股份有限公司 | 路由器集群的升级系统、方法及装置 |
CN106780027A (zh) * | 2016-12-08 | 2017-05-31 | 北京金融资产交易所有限公司 | 一种数据处理系统和方法 |
CN107506445A (zh) * | 2017-08-25 | 2017-12-22 | 郑州云海信息技术有限公司 | 云数据系统中数据查询的响应方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8275761B2 (en) * | 2008-05-15 | 2012-09-25 | International Business Machines Corporation | Determining a density of a key value referenced in a database query over a range of rows |
CN102479223B (zh) * | 2010-11-25 | 2014-06-04 | 中国移动通信集团浙江有限公司 | 数据查询方法及系统 |
CN103177035A (zh) * | 2011-12-26 | 2013-06-26 | 中国银联股份有限公司 | 一种在数据库中查询数据的装置及方法 |
CN107623702B (zh) * | 2016-07-13 | 2020-09-11 | 阿里巴巴集团控股有限公司 | 一种数据缓存方法、装置及系统 |
GB201615747D0 (en) * | 2016-09-15 | 2016-11-02 | Gb Gas Holdings Ltd | System for data management in a large scale data repository |
CN108241685B (zh) * | 2016-12-26 | 2020-08-25 | 华为技术有限公司 | 数据查询的方法和查询客户端 |
-
2018
- 2018-09-21 CN CN201811105375.9A patent/CN109388658B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697133A (zh) * | 2009-10-26 | 2010-04-21 | 中兴通讯股份有限公司 | 软件升级方法、软件升级系统以及客户端 |
CN106357546A (zh) * | 2015-07-21 | 2017-01-25 | 中兴通讯股份有限公司 | 路由器集群的升级系统、方法及装置 |
CN105354057A (zh) * | 2015-10-23 | 2016-02-24 | 努比亚技术有限公司 | 信息处理方法及服务器 |
CN106780027A (zh) * | 2016-12-08 | 2017-05-31 | 北京金融资产交易所有限公司 | 一种数据处理系统和方法 |
CN107506445A (zh) * | 2017-08-25 | 2017-12-22 | 郑州云海信息技术有限公司 | 云数据系统中数据查询的响应方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109388658A (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108009236B (zh) | 一种大数据查询方法、系统、计算机及存储介质 | |
CN107832406B (zh) | 海量日志数据的去重入库方法、装置、设备及存储介质 | |
CN110427368A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110502546B (zh) | 一种数据处理方法及装置 | |
CN108694075B (zh) | 处理报表数据的方法、装置、电子设备和可读存储介质 | |
WO2018036549A1 (zh) | 分布式数据库查询方法、装置及管理系统 | |
CN106503008B (zh) | 文件存储方法和装置及文件查询方法和装置 | |
CN109299101B (zh) | 数据检索方法、装置、服务器和存储介质 | |
WO2021203319A1 (zh) | 数据查询方法、装置及服务器 | |
CN109388658B (zh) | 一种数据确定方法和装置 | |
US20240078234A1 (en) | Apparatus, method and storage medium for database pagination | |
CN110134738A (zh) | 分布式存储系统资源预估方法、装置 | |
CN113342839A (zh) | 数据处理方法、装置、终端设备和存储介质 | |
WO2022253131A1 (zh) | 数据解析方法、装置、计算机设备和存储介质 | |
CN110321364A (zh) | 信用卡管理系统的交易数据查询方法、装置及终端 | |
US20240289333A1 (en) | Metadata search via n-gram index | |
CN110032578B (zh) | 一种海量数据查询缓存的方法及装置 | |
CN111488736A (zh) | 自学习分词方法、装置、计算机设备和存储介质 | |
US20220342888A1 (en) | Object tagging | |
CN114398520A (zh) | 数据检索方法、系统、装置、电子设备及存储介质 | |
CN113885801A (zh) | 一种内存数据的处理方法及装置 | |
CN113051271A (zh) | 一种冷热数据分离方法、装置及其设备 | |
CN113010539A (zh) | 一种数据处理方法及装置 | |
CN106156210B (zh) | 一种确定应用标识匹配列表的方法和装置 | |
CN111125108A (zh) | 基于Lucene的HBASE二级索引方法、装置及计算机设备 |
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 |