CN110457344B - 预计算模型生成、预计算方法、装置、设备及存储介质 - Google Patents

预计算模型生成、预计算方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110457344B
CN110457344B CN201810430385.3A CN201810430385A CN110457344B CN 110457344 B CN110457344 B CN 110457344B CN 201810430385 A CN201810430385 A CN 201810430385A CN 110457344 B CN110457344 B CN 110457344B
Authority
CN
China
Prior art keywords
query
type
logs
threshold
feature vector
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
Application number
CN201810430385.3A
Other languages
English (en)
Other versions
CN110457344A (zh
Inventor
刘树通
李金康
孔德振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN201810430385.3A priority Critical patent/CN110457344B/zh
Publication of CN110457344A publication Critical patent/CN110457344A/zh
Application granted granted Critical
Publication of CN110457344B publication Critical patent/CN110457344B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种预计算模型生成、预计算方法、装置、设备及存储介质。其中,所述方法包括:获取历史查询日志;其中,每条查询日志中包含至少一种查询数据;根据所述查询数据中的查询类型对所述查询日志进行分组,得到每种查询类型的查询日志;根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量;确定决策阈值,根据每种查询类型的查询特征向量与决策阈值确定是否需要生成预计算模型;对于需要生成预计算模型的查询类型,根据该查询类型的查询特征向量生成预计算模型。

Description

预计算模型生成、预计算方法、装置、设备及存储介质
技术领域
本申请涉及预计算技术领域,尤其涉及一种预计算模型生成、预计算方法、装置、设备及存储介质。
背景技术
预计算是一种加快数据查询速度,减少数据查询响应时间的技术。预计算通常是进行数据查询之前执行的,其可以将原先需要在数据查询过程中进行的计算量较大的工作预先完成;这样,在数据查询过程中涉及的计算量相应会减少,从而可以更快的返回查询结果。
在相关技术中,预计算的执行需要依赖预计算模型。一般的,对于不同类型的查询,通常可以预先设置对应的预计算模型;如此,每当接收到用户发送的查询请求后,服务器都可以查询到对应的预计算模型进行预计算。但是,服务器预先设置的预计算模型一般是固定的,通常都是由工作人员基于相关业务经验针对不同查询类型设置对应的预计算模型。然而,这样设置的预计算模型需要凭借工作人员的业务经验,不仅生成效率较低,而且无法适应快速变化的业务需求。例如,每当业务发生变化时、或者新增业务时,基于旧的预计算模型可能会出现错误、甚至无法使用。
发明内容
有鉴于此,本申请提供一种预计算模型生成、预计算方法、装置、设备及存储介质,用于解决上述预计算模型生成灵活性不足、预计算效果不理想的问题。
具体地,本申请是通过如下技术方案实现的:
一种预计算模型生成方法,所述方法包括:
获取历史查询日志;其中,每条查询日志中包含至少一种查询数据;
根据所述查询数据中的查询类型对所述查询日志进行分组,得到每种查询类型的查询日志;
根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量;
确定决策阈值,根据每种查询类型的查询特征向量与决策阈值确定是否需要生成预计算模型;
对于需要生成预计算模型的查询类型,根据该查询类型的查询特征向量生成预计算模型。
可选的,所述获取历史查询日志,具体包括:
获取最近一个预设周期内所有用户的历史查询日志。
可选的,所述查询数据包括:查询类型、查询开始时刻、查询结束时刻、查询频次、查询平均耗时、查询最长耗时、查询最短耗时、查询优先级、查询标识、请求类型中的至少一种。
可选的,所述查询类型由查询事实表和查询维度表确定。
可选的,所述根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量,具体包括:
获取相同查询类型的查询日志包含的每一种查询数据;
将所述每一种查询数据作为查询特征向量中的一个元素,从而构建查询特征向量。
可选的,所述决策阈值,具体包括至少一种下述阈值:
所述查询频次对应的第一阈值;
所述查询平均耗时对应的第二阈值;
所述查询最长耗时对应的第三阈值;
所述查询最短耗时对应的第四阈值;
所述查询优先级对应的第五阈值。
可选的,所述确定第一阈值,具体包括:
统计相同查询类型对应的查询日志的数量,得到所述查询类型对应的查询频次;
从所述查询频次中选取一个查询频次作为第一阈值。
可选的,所述确定第二阈值,具体包括:
计算相同查询标识下每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔累加后除以所述第一阈值,将得到的值确定为第二阈值。
可选的,所述确定第三阈值,具体包括:
计算每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔最长的时间间隔确定为第三阈值。
可选的,所述确定第四阈值,具体包括:
计算每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔最短的时间间隔确定为第四阈值。
可选的,所述根据所述查询特征向量与决策阈值确定是否需要生成预计算模型,具体包括:
将所述查询特征向量中的查询频次与第一阈值进行比较,得到第一比较结果;
将所述查询特征向量中的查询平均耗时与第二阈值进行比较,得到第二比较结果;
将所述查询特征向量中的查询最长耗时与第三阈值进行比较,得到第三比较结果;
将所述查询特征向量中的查询最短耗时与第四阈值进行比较,得到第四比较结果;
将所述查询特征向量中的查询优先级与第五阈值进行比较,得到第五比较结果;
根据第一、第二、第三、第四、第五比较结果构建结果向量;
计算所述结果向量的模,在所述结果向量的模大于所述结果向量长度的一半时,确定需要生成预计算模型。
可选的,在所述根据所述查询类型对所述查询日志进行分组,得到每种查询类型的查询日志之前,所述方法还包括:
在所述查询日志的请求类型为预览查询、维度表查询或者查询重试时,将该条查询日志删除。
可选的,在所述根据所述查询类型对所述查询日志进行分组,得到每种查询类型的查询日志之后,所述方法还包括:
将具有相同查询标识的查询日志进行合并成一条查询日志。
一种预计算方法,所述方法应用如前任一所述的预计算模型生成方法生成的预计算模型进行预计算,包括:
接收用户查询请求,所述查询请求中包含查询类型和查询数据;
根据所述查询类型查询对应的目标预计算模型;
基于查询到的目标预计算模型对所述查询数据进行预计算。
一种预计算模型生成装置,所述装置包括:
获取单元,获取历史查询日志;其中,每条查询日志中包含至少一种查询数据;
分组单元,根据所述查询数据中的查询类型对所述查询日志进行分组,得到每种查询类型的查询日志;
构建单元,根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量;
确定单元,确定决策阈值,根据每种查询类型的查询特征向量与决策阈值确定是否需要生成预计算模型;
生成单元,对于需要生成预计算模型的查询类型,根据该查询类型的查询特征向量生成预计算模型。
一种预计算装置,所述装置包括:
接收单元,接收用户查询请求,所述查询请求中包含查询类型和查询数据;
查询单元,根据所述查询类型查询对应的目标预计算模型;
预计算单元,基于查询到的目标预计算模型对所述查询数据进行预计算。
一种存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一项所述的预计算模型生成方法。
一种存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一项所述的预计算模型生成方法。
一种设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器被配置为上述任一项所述的预计算模型生成方法。
一种设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器被配置为上述任一项所述的预计算模型生成方法。
本申请实施例,提供了一种预计算模型生成、预计算方案,根据历史的查询日志生成不同查询类型的预计算模型,由于历史查询日志可以反映查询热点,因此这样生成的预计算模型贴合实际查询需求。例如,在业务发生变化后,由于采集的历史查询日志也相应变化,因此第一服务器可以快速做出反应,生成符合新业务的预计算模型。
附图说明
图1是本申请一示例性实施例示出的一种预计算模型生成方法的流程图;
图2是本申请一示例性实施例示出的一种预计算方法的流程图;
图3是本申请一示例性实施例示出的一种预计算模型生成装置的硬件结构图;
图4是本申请一示例性实施例示出的一种预计算模型生成装置的模块示意图;
图5是本申请一示例性实施例示出的一种预计算装置的硬件结构图;
图6是本申请一示例性实施例示出的一种预计算装置的模块示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请中,预计算模型生成的方案可以应用在生成预计算模型的服务器(以下简称为第一服务器)中。预计算的方案可以应用在预计算的服务器(以下简称为第二服务器)中。通常,所述第一服务器和所述第二服务器可以是不同的服务器。但,有的实施例中,所述第一服务器和所述第二服务器可以是同一个服务器;本申请并不进行限定。
图1是本申请一示例性实施例示出的一种预计算模型生成方法流程图,所述方法可以应用在第一服务器中,该方法具体可以包括如下步骤:
步骤110:获取历史查询日志;其中,每条查询日志包含至少一种查询数据。
在一实施例中,第一服务器可以预先在用户使用的客户端中进行埋点(EventTracking),从而采集用户历史发起查询请求时的查询类型和查询数据。
所述埋点可以是指针对特定用户行为或者事件进行捕获、处理和发送的相关技术及其实时过程。
本申请实施例中,可以是在用户发起查询请求时,触发埋点程序采集查询类型和查询数据,并可以将采集到的查询类型和查询数据以查询日志的方式存储。当到达一个预设周期后,埋点程序可以自动将该预设周期内采集到的查询日志发送给第一服务器。
因此,所述历史查询日志可以是指所有用户的历史查询日志。
在一实施例中,所述获取历史查询日志,具体可以包括:
获取最近一个预设周期内所有用户的历史查询日志。
由于最近一个预设周期内所有用户的历史查询日志可以反映出近期的查询热点;因此基于这样的历史查询日志生成的预计算模型符合近期真实的查询类型的预计算模型。通常周期性更新不同查询类型的预计算模型,可以更好的提供用户查询服务,使得用户始终保持较好的查询体验,增加用户粘性。
步骤120:根据所述查询数据中的查询类型对所述查询日志进行分组,得到每种查询类型的查询日志。
如前所述,预计算模型对应了查询类型,即不同查询类型可以对应有不同的预计算模型;因此,需要将用户历史查询日志按照查询类型进行分组。然后,可以分别针对不同查询类型的查询日志进行后续处理。
在实际应用中,所述查询类型可以根据查询数据中的查询事实表和查询维度表确定。相同查询事实表和查询维度表的查询日志可以认为是同一类的查询;因此,可以按照查询事实表和查询维度表进行分组后,对于不同查询事实表和查询维度表的查询日志进行后续处理。
其中,所述查询数据可以包括:查询事实表、查询维度表、查询开始时刻、查询结束时刻、查询语义、查询频次、查询平均耗时、查询最长耗时、查询最短耗时、查询优先级、查询标识、请求类型等中的至少一种。
其中,所述查询事实表即为包含具体数据的表。一般的可以基于查询请求的SQL语句分析得出。
所述查询维度表即为查询事实表中数据所对应的维度。一般的一个查询事实表可以和一个或者多个查询维度表相关联。
所述查询开始时刻可以是指一次数据查询的发起时刻。例如客户端发送查询请求时的时刻。
所述查询开始时刻可以是指一次数据查询的结束时刻。例如客户端接收到服务器返回的查询结果的时刻。
所述查询语义可以是指查询请求的目的。一般的根据查询请求的SQL语句可以确定查询语义。
所述查询频次可以是指历史相同查询标识的查询日志的数量。可以反映用户历史查询次数。
所述查询平均耗时可以是指历史每次查询耗时累加的时长与查询频次的比值。可以反映服务器响应用户查询的快慢。
所述查询最长耗时可以是指历史查询耗时最长的时长。
所述查询最短耗时可以是指历史查询耗时最短的时长。
所述查询优先级可以是指发起查询请求的查询方优先级等级。例如,查询方可以包括业务用户、运营方人员、开发人员等,所述业务用户具体是指普通的使用者。以具体外卖场景为例,业务用户可以是指点餐用户、外卖商家、配送员,运营方人员可以是指外卖平台的运维人员,开发人员可以是指外卖平台的开发人员。不同的查询方可以具有不同的查询优先级。一般的,为例保证业务用户的正常查询需要,业务用户的查询请求是最优先考虑的;这样,在查询处理量较大时,可以优先处理业务用户的查询请求。通常,业务用户的查询优先级最高、运营方人员的优先级次之,开发人员的查询优先级再次之;并且,可以针对不同的查询优先级设置对应的量化后的数值;例如,业务用户的查询优先级可以设置为1,运营方人员的查询优先级可以设置为2,开发人员的查询优先级可以设置为3。
所述请求类型可以是指查询请求的类型。例如事实表查询、维度表查询、预览查询等。
所述查询标识可以是指查询请求的标识。一般的,同一个查询请求对应有一个唯一的查询标识。
在一实施例中,第一服务器可以过滤所述获取到的历史查询日志中无效的查询日志。具体地,在所述步骤120之前,所述方法还可以包括:
在所述查询日志的请求类型为预览查询、维度表查询或者查询重试时,将该条查询日志删除。一般的,在本领域中预览查询、维度表查询或者查询重试等查询通常视为无效的查询;而事实表查询通常视为有效的查询。以下结合外卖场景下的查询为例加以说明,如果用户进行业务查询例如查询订单、查询商家信息、查询配送员实时位置等属于事实表查询的都可以视为有效的查询,而如果是查询重试(例如查询订单失败的重试查询)则可以视为无效的查询。
通过该实施例,第一服务器可以自动感知无效查询,并自动过滤掉这些无效查询的查询日志;不仅降低了人工干预,还减少后续处理量、提升了整体处理效率。
在实际应用中,一个查询请求会记录有2条查询日志,即发起查询时的日志(以下称为第一日志)和查询结束时的日志(以下称为第二日志)。这样的话,同样的查询标识会有2条不同的查询日志,并且这2条查询日志分别记录了不同的查询数据,例如第二日志记录有查询结果,而第一日志没有。为此,在一实施例中,第一服务器可以将相同查询标识的查询日志合并,从而使得每个查询请求都对应一条完整的查询日志。具体地,在所述步骤120之后,所述方法还可以包括:
将具有相同查询标识的查询日志进行合并成一条查询日志。
通过该实施例,第一服务器可以自动将具有相同查询标识的查询日志合并;不仅降低了人工干预,还减少后续处理量、提升了整体处理效率。
在一实施例中,为了更好的提升处理效率,所述第一服务器可以将所述获取到的查询日志写入到消息队列中。以kafka(一种消息队列)为例,可以将步骤110中获取到的查询日志写入到kafka中;然后,依次消费kafak中的消息(即查询日志),执行前述过滤无效的查询日志和/或合并查询日志的实施例。可选的,可以将合并后的查询日志写入到搜索引擎例如ES(ElasticSearch)分布式搜索引擎,以及将查询标识写入到kafka中;便于后续处理时可以高效的根据kafka中的查询标识从搜索引擎中获取对应的查询日志。
步骤130:根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量。
依然以kafka为例,第一服务器可以拉取kafka中的查询标识;并根据所述查询标识从ES中读取每个查询标识对应的查询日志的至少一种查询数据。在读取了查询数据之后,可以根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量。
如前所述,所述查询数据可以包括:查询事实表、查询维度表、查询开始时刻、查询结束时刻、查询语义、查询频次、查询平均耗时、查询最长耗时、查询最短耗时、查询优先级、查询标识、请求类型等中的至少一种。
在一实施例中,所述步骤130具体包括:
获取相同查询类型的查询日志包含的每一种查询数据;
将所述每一种查询数据作为查询特征向量中的一个元素,从而构建查询特征向量。
举例说明,假设某查询标识的查询日志包含以下查询数据:查询事实表的字段为A值为a;查询维度表的字段为B值为b;查询开始时刻的字段为C值为c;查询结束时刻的字段为D值为d。根据这些查询数据可以构建该查询标识对应的查询特征向量,即可以构建一个4个元素的查询特征向量即[A:a,B:b,C:c,D:d]。
值得一提的是,由于进行根据查询类型进行了分组;因此,对于每一种查询类型,都可以构建一个对应的查询特征向量。假设存在N种查询类型时,通常可以构建出N个查询特征向量。
步骤140:确定决策阈值,根据每种查询类型的查询特征向量与决策阈值确定是否需要生成预计算模型。
在一实施例中,所述决策阈值,具体包括至少一种下述阈值:
所述查询频次对应的第一阈值;
所述查询平均耗时对应的第二阈值;
所述查询最长耗时对应的第三阈值;
所述查询最短耗时对应的第四阈值;
所述查询优先级对应的第五阈值。
在一种实现方式中,上述阈值可以是通过历史查询日志计算确定的。
举例说明,从ES中查询最近30天查询日志,假设有N条查询日志的记录(也可以是直接使用前述获取到的历史查询日志);
1、针对查询频次对应的第一阈值,计算方式如下:
统计相同查询类型对应的查询日志的数量,得到所述查询类型对应的查询频次;
从所述查询频次中选取一个查询频次作为第一阈值。
例如,对所述查询频次进行排序后,取值最大的前50%个查询频次,在将其中值最小确定为第一阈值,即Min(top(查询频次)N*50%)。
2、针对查询平均耗时对应的第二阈值,计算方式如下:先求出平均耗时然后跟第一阈值是相同的计算方式求第二阈值
计算相同查询标识下每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔累加后除以所述第一阈值,将得到的值确定为第二阈值。
3、针对查询最长耗时对应的第三阈值,计算方式如下:
计算每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔最长的时间间隔确定为第三阈值。
4、针对查询最短耗时对应的第四阈值,计算方式如下:
计算每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔最短的时间间隔确定为第四阈值。
在另一种实现方式中,上述全部或者部分阈值可以是人为预先设置的经验值。例如,第五阈值可以是预设的,假设查询优先级分为5级,分别为1、2、3、4、5;那么第五阈值可以设置为该5级中的任意一级。
再例如,查询第三阈值、第四阈值也可以是预设的,通常可以基于经验值设置。随着计算机技术的不断发展,特别是人工智能的进步,这些阈值还可以是通过机器学习计算得到的。例如,基于历史确定的阈值,通过机器学习算法可以计算出一个最优的阈值。再有的,阈值还可以是基于大数据技术计算得到的。例如,通过海量数据,发现大多数设定的阈值均为x时,本次确定阈值也可以设定为x。
其中,在确定了决策阈值之后,可以将前述构建的查询特征向量中查询优先级、查询频次、查询平均耗时、查询最长耗时、查询最短耗时这五个计算特征分别与对应的阈值进行比较,即所述根据每种查询类型的查询特征向量与决策阈值确定是否需要生成预计算模型,可以包括:
将所述查询特征向量中的查询频次与第一阈值进行比较,得到第一比较结果;例如在查询频次大于第一阈值时,所述第一比较结果可以记为1,反之,所述第一比较结果可以记为0;
将所述查询特征向量中的查询平均耗时与第二阈值进行比较,得到第二比较结果;例如在查询平均耗时大于第二阈值时,所述第二比较结果可以记为1,反之,第二比较结果可以记为0;
将所述查询特征向量中的查询最长耗时与第三阈值进行比较,得到第三比较结果;例如在查询最长耗时大于第三阈值时,所述第三比较结果可以记为1,反之,所述第三比较结果可以记为0;
将所述查询特征向量中的查询最短耗时与第四阈值进行比较,得到第四比较结果;例如在查询最短耗时大于第四阈值时,所述第四比较结果可以记为1,反之,所述第四比较结果可以记为0;
将所述查询特征向量中的查询优先级与第五阈值进行比较;例如在第五阈值大于查询优先级时,所述第五比较结果可以记为1,反之,所述第五比较结果可以记为0;
根据每个元素的比较结果构成结果向量。假设上述五个比较结果分别为1,1,1,1,1;则结果向量为[1,1,1,1,1]。
然后,计算所述结果向量的模,在所述结果向量的模大于所述结果向量长度的一半时,确定需要生成预计算模型;
在所述结果向量的模不大于所述结果向量长度的一半时,确定不需要生成预计算模型。
如此,针对每种查询类型都可以确定是否需要生成对应的预计算模型。
本申请引入了自适应决策阈值确定方案,可以根据实际查询需求(即历史查询日志)动态确定、调整预计算模型生成过程中需要用到的决策阈值,从而更为准确地判定是否需要生成预计算模型。
步骤150:对于需要生成预计算模型的查询类型,根据该查询类型的查询特征向量生成预计算模型。
对于每一种查询类型(可以是根据查询事实表和查询维度表确定),如果需要生成预计算模型,则第一服务器可以根据该查询类型的查询数据特征向量生成预计算模型;由于基于已有数据生成预计算模型是本领域常用的技术,本申请中就不对其进行详细描述。值得一提的是,本实施例生成的预计算模型适用于所有用户,即不同的用户如果发起相同查询类型的查询请求,可以是使用同一个预计算模型进行预计算处理。
在一实施例中,每一种查询类型的预计算模型均可以分配一个唯一的模型标识;并可以在每次生成预计算模型之后,将模型标识下发给用户。使得用户进行查询时,在查询请求中携带本次查询类型对应预计算模型的模型标识,从而便于第二服务器根据该模型标识路由到预计算模型。
本申请根据历史的查询日志生成不同查询类型的预计算模型,由于历史查询日志可以反映查询热点,因此这样生成的预计算模型贴合实际查询需求。例如,在业务发送变化后,由于采集的历史查询日志也相应变化,因此第一服务器可以快速做出反映,生成符合新业务的预计算模型。
图2是本申请一示例性实施例示出的一种预计算的方法流程图,所述方法应用前述任一所述方法生成的预计算模型进行预计算,该方法以第二服务器侧进行描述,具体可以包括如下步骤:
步骤210:接收用户查询请求,所述查询请求中包含查询类型和查询数据。
步骤220:根据所述查询类型查询对应的目标预计算模型;
所述查询类型和查询数据与前述实施例中相同;
即所述查询类型可以表示由查询事实表和查询维度表确定。
步骤230:基于查询到的目标预计算模型对所述查询数据进行预计算。
本申请根据用户历史的查询日志生成符合用户实际需要的预计算模型,由于预计算模型符合用户实际需要,可以使得用户查询更为快速,提升了用户体验。
本申请可以广泛应用于新兴行业如外卖配送行业中,在这些新兴行业的即席查询场景中一般可以采用ETL生成预计算模型实现预计算,从而可以取消复杂的建模过程,同时可以简化预计算实现逻辑,提升预计算模型与实际需要的契合度,也保留了预计算的灵活性。
在一实施例中,如果用户已经收到第一服务器下发的模型标识,由于查询类型与模型标识一一对应,因此,查询请求也可以包含模型标识;如此,第二服务器可以基于该模型标识快速路由到对应的预计算模型;具体地,预计算方法可以包括:
接收用户查询请求,所述查询请求中包含模型标识和查询数据。
根据所述模型标识查询对应的目标预计算模型;
基于查询到的目标预计算模型对所述查询数据进行预计算。
与前述预计算模型生成方法的实施例相对应,本申请还提供了预计算模型生成装置的实施例。
本申请预计算模型生成装置的实施例可以应用在服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本申请预计算模型生成装置所在的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中通常根据该预计算模型生成的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图4,在一种软件实施方式中,该预计算模型生成装置可以包括:
获取单元310,获取历史查询日志;其中,每条查询日志中包含至少一种查询数据;
分组单元320,根据所述查询数据中的查询类型对所述查询日志进行分组,得到每种查询类型的查询日志;
构建单元330,根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量;
确定单元340,确定决策阈值,根据每种查询类型的查询特征向量与决策阈值确定是否需要生成预计算模型;
生成单元350,对于需要生成预计算模型的查询类型,根据该查询类型的查询特征向量生成预计算模型。
在一种可选的实施例中:
所述获取单元310,具体包括:
获取最近一个预设周期内所有用户的历史查询日志。
在一种可选的实施例中:
所述查询数据包括:查询类型、查询开始时刻、查询结束时刻、查询频次、查询平均耗时、查询最长耗时、查询最短耗时、查询优先级、查询标识、请求类型中的至少一种。
在一种可选的实施例中:
所述查询类型由查询事实表和查询维度表确定。
在一种可选的实施例中:
所述构建单元330,具体包括:
获取相同查询类型的查询日志包含的每一种查询数据;
将所述每一种查询数据作为查询特征向量中的一个元素,从而构建查询特征向量。
在一种可选的实施例中:
所述决策阈值,具体包括至少一种下述阈值:
所述查询频次对应的第一阈值;
所述查询平均耗时对应的第二阈值;
所述查询最长耗时对应的第三阈值;
所述查询最短耗时对应的第四阈值;
所述查询优先级对应的第五阈值。
在一种可选的实施例中:
所述确定第一阈值,具体包括:
统计相同查询类型对应的查询日志的数量,得到所述查询类型对应的查询频次;
从所述查询频次中选取一个查询频次作为第一阈值。
在一种可选的实施例中:
所述确定第二阈值,具体包括:
计算相同查询标识下每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔累加后除以所述第一阈值,将得到的值确定为第二阈值。
在一种可选的实施例中:
所述确定第三阈值,具体包括:
计算每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔最长的时间间隔确定为第三阈值。
在一种可选的实施例中:
所述确定第四阈值,具体包括:
计算每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔最短的时间间隔确定为第四阈值。
在一种可选的实施例中:
所述根据所述查询特征向量与决策阈值确定是否需要生成预计算模型,具体包括:
将所述查询特征向量中的查询频次与第一阈值进行比较,得到第一比较结果;
将所述查询特征向量中的查询平均耗时与第二阈值进行比较,得到第二比较结果;
将所述查询特征向量中的查询最长耗时与第三阈值进行比较,得到第三比较结果;
将所述查询特征向量中的查询最短耗时与第四阈值进行比较,得到第四比较结果;
将所述查询特征向量中的查询优先级与第五阈值进行比较,得到第五比较结果;
根据第一、第二、第三、第四、第五比较结果构建结果向量;
计算所述结果向量的模,在所述结果向量的模大于所述结果向量长度的一半时,确定需要生成预计算模型。
在一种可选的实施例中:
在所述分组单元320之前,所述装置还包括:
在所述查询日志的请求类型为预览查询、维度表查询或者查询重试时,将该条查询日志删除。
在一种可选的实施例中:
在所述分组单元320之后,所述装置还包括:
将具有相同查询标识的查询日志进行合并成一条查询日志。
与前述预计算方法的实施例相对应,本申请还提供了预计算装置的实施例。
本申请预计算装置的实施例可以应用在服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请预计算装置所在的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中通常根据该预计算的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图6,在一种软件实施方式中,该预计算装置可以包括:
接收单元410,接收用户查询请求,所述查询请求中包含查询类型和查询数据;
查询单元420,根据所述查询类型查询对应的目标预计算模型;
预计算单元430,基于查询到的目标预计算模型对所述查询数据进行预计算。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上图4描述了预计算模型生成装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取历史查询日志;其中,每条查询日志中包含至少一种查询数据;
根据所述查询数据中的查询类型对所述查询日志进行分组,得到每种查询类型的查询日志;
根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量;
确定决策阈值,根据每种查询类型的查询特征向量与决策阈值确定是否需要生成预计算模型;
对于需要生成预计算模型的查询类型,根据该查询类型的查询特征向量生成预计算模型。
可选的,所述获取历史查询日志,具体包括:
获取最近一个预设周期内所有用户的历史查询日志。
可选的,所述查询数据包括:查询类型、查询开始时刻、查询结束时刻、查询频次、查询平均耗时、查询最长耗时、查询最短耗时、查询优先级、查询标识、请求类型中的至少一种。
可选的,所述查询类型由查询事实表和查询维度表确定。
可选的,所述根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量,具体包括:
获取相同查询类型的查询日志包含的每一种查询数据;
将所述每一种查询数据作为查询特征向量中的一个元素,从而构建查询特征向量。
可选的,所述决策阈值,具体包括至少一种下述阈值:
所述查询频次对应的第一阈值;
所述查询平均耗时对应的第二阈值;
所述查询最长耗时对应的第三阈值;
所述查询最短耗时对应的第四阈值;
所述查询优先级对应的第五阈值。
可选的,所述确定第一阈值,具体包括:
统计相同查询类型对应的查询日志的数量,得到所述查询类型对应的查询频次;
从所述查询频次中选取一个查询频次作为第一阈值。
可选的,所述确定第二阈值,具体包括:
计算相同查询标识下每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔累加后除以所述第一阈值,将得到的值确定为第二阈值。
可选的,所述确定第三阈值,具体包括:
计算每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔最长的时间间隔确定为第三阈值。
可选的,所述确定第四阈值,具体包括:
计算每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔最短的时间间隔确定为第四阈值。
可选的,所述根据所述查询特征向量与决策阈值确定是否需要生成预计算模型,具体包括:
将所述查询特征向量中的查询频次与第一阈值进行比较,得到第一比较结果;
将所述查询特征向量中的查询平均耗时与第二阈值进行比较,得到第二比较结果;
将所述查询特征向量中的查询最长耗时与第三阈值进行比较,得到第三比较结果;
将所述查询特征向量中的查询最短耗时与第四阈值进行比较,得到第四比较结果;
将所述查询特征向量中的查询优先级与第五阈值进行比较,得到第五比较结果;
根据第一、第二、第三、第四、第五比较结果构建结果向量;
计算所述结果向量的模,在所述结果向量的模大于所述结果向量长度的一半时,确定需要生成预计算模型。
可选的,在所述根据所述查询类型对所述查询日志进行分组,得到每种查询类型的查询日志之前,还包括:
在所述查询日志的请求类型为预览查询、维度表查询或者查询重试时,将该条查询日志删除。
可选的,在所述根据所述查询类型对所述查询日志进行分组,得到每种查询类型的查询日志之后,还包括:
将具有相同查询标识的查询日志进行合并成一条查询日志。
以上图6描述了预计算装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收用户查询请求,所述查询请求中包含查询类型和查询数据;
根据所述查询类型查询对应的目标预计算模型;
基于查询到的目标预计算模型对所述查询数据进行预计算。
在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (20)

1.一种预计算模型生成方法,其特征在于,所述方法包括:
当业务发生变化时,获取历史查询日志;其中,每条查询日志中包含至少一种查询数据;
根据所述查询数据中的查询类型对所述查询日志进行分组,得到每种查询类型的查询日志;
根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量;
确定决策阈值,根据每种查询类型的查询特征向量与决策阈值确定是否需要生成预计算模型;
对于需要生成预计算模型的查询类型,根据该查询类型的查询特征向量生成预计算模型。
2.根据权利要求1所述的方法,其特征在于,所述获取历史查询日志,具体包括:
获取最近一个预设周期内所有用户的历史查询日志。
3.根据权利要求1所述的方法,其特征在于,所述查询数据包括:查询类型、查询开始时刻、查询结束时刻、查询频次、查询平均耗时、查询最长耗时、查询最短耗时、查询优先级、查询标识、请求类型中的至少一种。
4.根据权利要求3所述的方法,其特征在于,所述查询类型由查询事实表和查询维度表确定。
5.根据权利要求1或3所述的方法,其特征在于,所述根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量,具体包括:
获取相同查询类型的查询日志包含的每一种查询数据;
将所述每一种查询数据作为查询特征向量中的一个元素,从而构建查询特征向量。
6.根据权利要求3所述的方法,其特征在于,所述决策阈值,具体包括至少一种下述阈值:
所述查询频次对应的第一阈值;
所述查询平均耗时对应的第二阈值;
所述查询最长耗时对应的第三阈值;
所述查询最短耗时对应的第四阈值;
所述查询优先级对应的第五阈值。
7.根据权利要求6所述的方法,其特征在于,确定所述第一阈值,具体包括:
统计相同查询类型对应的查询日志的数量,得到所述查询类型对应的查询频次;
从所述查询频次中选取一个查询频次作为第一阈值。
8.根据权利要求6所述的方法,其特征在于,确定所述第二阈值,具体包括:
计算相同查询标识下每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔累加后除以所述第一阈值,将得到的值确定为第二阈值。
9.根据权利要求6所述的方法,其特征在于,确定所述第三阈值,具体包括:
计算每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔最长的时间间隔确定为第三阈值。
10.根据权利要求6所述的方法,其特征在于,确定所述第四阈值,具体包括:
计算每条查询日志的查询结束时刻和查询开始时刻的时间间隔;
将时间间隔最短的时间间隔确定为第四阈值。
11.根据权利要求6所述的方法,其特征在于,所述根据所述查询特征向量与决策阈值确定是否需要生成预计算模型,具体包括:
将所述查询特征向量中的查询频次与第一阈值进行比较,得到第一比较结果;
将所述查询特征向量中的查询平均耗时与第二阈值进行比较,得到第二比较结果;
将所述查询特征向量中的查询最长耗时与第三阈值进行比较,得到第三比较结果;
将所述查询特征向量中的查询最短耗时与第四阈值进行比较,得到第四比较结果;
将所述查询特征向量中的查询优先级与第五阈值进行比较,得到第五比较结果;
根据第一、第二、第三、第四、第五比较结果构建结果向量;
计算所述结果向量的模,在所述结果向量的模大于所述结果向量长度的一半时,确定需要生成预计算模型。
12.根据权利要求4所述的方法,其特征在于,在所述根据所述查询类型对所述查询日志进行分组,得到每种查询类型的查询日志之前,所述方法还包括:
在所述查询日志的请求类型为预览查询、维度表查询或者查询重试时,将该条查询日志删除。
13.根据权利要求4所述的方法,其特征在于,在所述根据所述查询类型对所述查询日志进行分组,得到每种查询类型的查询日志之后,所述方法还包括:
将具有相同查询标识的查询日志进行合并成一条查询日志。
14.一种预计算方法,其特征在于,所述方法应用如权利要求1至13任一所述方法生成的预计算模型进行预计算,包括:
接收用户查询请求,所述查询请求中包含查询类型和查询数据;
根据所述查询类型查询对应的目标预计算模型;
基于查询到的目标预计算模型对所述查询数据进行预计算。
15.一种预计算模型生成装置,其特征在于,所述装置包括:
获取单元,当业务变化时,获取历史查询日志;其中,每条查询日志中包含至少一种查询数据;
分组单元,根据所述查询数据中的查询类型对所述查询日志进行分组,得到每种查询类型的查询日志;
构建单元,根据每种查询类型的查询日志包含的查询数据,构建每种查询类型的查询特征向量;
确定单元,确定决策阈值,根据每种查询类型的查询特征向量与决策阈值确定是否需要生成预计算模型;
生成单元,对于需要生成预计算模型的查询类型,根据该查询类型的查询特征向量生成预计算模型。
16.一种预计算装置,其特征在于,所述装置对如权利要求1所述方法生成的预计算模型进行预计算,包括:
接收单元,接收用户查询请求,所述查询请求中包含查询类型和查询数据;
查询单元,根据所述查询类型查询对应的目标预计算模型,所述目标预计算模型是通过判断是否需要生成预计算模型后的预计算模型;
预计算单元,基于查询到的目标预计算模型对所述查询数据进行预计算。
17.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-13中任一项所述的方法。
18.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求14所述的方法。
19.一种预计算模型生成设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器被配置为上述权利要求1-13中任一项所述的方法。
20.一种预计算设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器被配置为上述权利要求14所述的方法。
CN201810430385.3A 2018-05-08 2018-05-08 预计算模型生成、预计算方法、装置、设备及存储介质 Active CN110457344B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810430385.3A CN110457344B (zh) 2018-05-08 2018-05-08 预计算模型生成、预计算方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810430385.3A CN110457344B (zh) 2018-05-08 2018-05-08 预计算模型生成、预计算方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110457344A CN110457344A (zh) 2019-11-15
CN110457344B true CN110457344B (zh) 2021-06-04

Family

ID=68472071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810430385.3A Active CN110457344B (zh) 2018-05-08 2018-05-08 预计算模型生成、预计算方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110457344B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965991B (zh) * 2021-03-08 2023-12-08 咪咕文化科技有限公司 预计算结果生成方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106056209A (zh) * 2016-05-23 2016-10-26 大连理工大学 一种基于循环神经网络的查询词项权重学习方法
CN106612241A (zh) * 2015-10-27 2017-05-03 中国移动通信集团浙江有限公司 一种业务控制方法及装置
CN106997386A (zh) * 2017-03-28 2017-08-01 上海跬智信息技术有限公司 一种olap预计算模型、自动建模方法及自动建模系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9881265B2 (en) * 2015-01-30 2018-01-30 Oracle International Corporation Method and system for implementing historical trending for business records

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106612241A (zh) * 2015-10-27 2017-05-03 中国移动通信集团浙江有限公司 一种业务控制方法及装置
CN106056209A (zh) * 2016-05-23 2016-10-26 大连理工大学 一种基于循环神经网络的查询词项权重学习方法
CN106997386A (zh) * 2017-03-28 2017-08-01 上海跬智信息技术有限公司 一种olap预计算模型、自动建模方法及自动建模系统

Also Published As

Publication number Publication date
CN110457344A (zh) 2019-11-15

Similar Documents

Publication Publication Date Title
CN109104336B (zh) 服务请求处理方法、装置、计算机设备及存储介质
CN109117275B (zh) 基于数据分片的对账方法、装置、计算机设备及存储介质
CN104978324B (zh) 一种数据处理方法和装置
CN112187512B (zh) 一种基于流量监控的端口自动扩容方法、装置和设备
US11455640B2 (en) Transaction indicator monitoring methods, apparatuses, and devices
CN109144791A (zh) 数据转存方法、装置和数据管理服务器
CN113918622B (zh) 基于区块链的信息溯源方法及系统
CN110457344B (zh) 预计算模型生成、预计算方法、装置、设备及存储介质
CN114385463A (zh) 数据采集方法、装置以及电子设备
CN105893150B (zh) 接口调用频度控制、接口调用请求处理方法及装置
CN116866440A (zh) 一种集群节点选择调度方法、装置、电子设备和存储介质
CN112148920A (zh) 数据管理方法
JP6916096B2 (ja) インスタンス利用促進システム
CN1231747A (zh) 业务数据库系统中负载情况的监测
CN107515864A (zh) 监控工作流的方法及设备
CN113448747B (zh) 数据传输方法、装置、计算机设备和存储介质
US11736562B1 (en) Method and system for achieving high availability of service under high-load scene in distributed system
CN114841559A (zh) 基于指标距离的指标去重方法及装置
CN106600250B (zh) 区块链去中心化到中心化的用户标识方法和装置
CN112597223B (zh) 一种一致性数据采集方法和系统
CN116701293B (zh) 一种基于arm集群服务器的多通道数据并行传输方法及系统
CN1231748A (zh) 业务数据库系统中的事件记录
CN115664951B (zh) 一种自适应工业数据采集方法、系统及存储介质
CN109919470B (zh) 客资信息的分发方法及装置
CN111814001B (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