具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
OLAP:联机分析处理(On-Line Analysis Processing)是一种共享多维信息的快速分析技术,OLAP利用多维数据模型使用户从不同角度观察数据,OLAP用于支持复杂的分析操作,侧重于对管理人员的决策支持,可以满足分析人员快速、灵活地进行大数据复量的复杂查询的要求,并且以一种直观、易懂的形式呈现查询结果,辅助决策。
数据立方体:数据立方体(Data Cube)是一个事实表与其多个重要字段的索引组成了一个类似于立方体的数据组织结构。
物化视图:物化视图是包括一个查询结果的数据库对像,是用于预先计算并保存表连接或聚集等耗时较多的操作的结果,在执行查询时,就可以避免进行这些耗时的操作。
维度:是描述与业务主题相关的一组属性,单个属性或属性集合可以构成一个维度,关系型数据库中的表的字段都是维度。
度量:维度的聚合计算,如sum、avg和count等。
粒度:粒度是数据库名词,计算机领域中粒度指系统内存扩展增量的最小值。粒度问题是设计数据仓库的一个最重要方面,粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别,细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。
在本申请中,提供了一种数据查询方法。本申请同时涉及一种数据查询装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例的数据查询方法的流程图,包括步骤102至步骤108。
步骤102:确定目标事实表,从所述目标事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个超时查询语句。
在本申请一个或多个实施例中,每个数据仓库都包含多个事实表,本申请可以根据实际的需求获取对应的目标事实表,即系统可以根据用户的请求或当前的热度确定目标事实表,通过所述目标事实表获取记录有全部查询语句的信息的查询日志,并从所述查询日志中获取执行时间超过查询时间阈值(long_query_time)的多个慢查询语句,即从所述目标事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个超时查询语句。
可选的,所述查询时间阈值可以根据具体的需求进行设定,一般为1秒至10秒;所述预设观察周期可以是用户对所述目标事实表进行查询的前n天,其中,所述n为大于等于1的正整数,例如可以是1、3、5、7、9或14。
步骤104:基于所述多个超时查询语句构建召回集,所述召回集包括覆盖所述多个超时查询语句的查询结果的待预测查询语句。
在本申请一个或多个实施例中,系统以所述目标事实表为单位合并所述多个超时查询语句并构建召回集,所述召回集包括覆盖所述多个超时查询语句的查询结果的待预测查询语句。具体的,对于多个超时查询语句而言,虽然其编写过程或表现形式均不相同,但是还是会存在部分超时查询语句的查询结果存在相互包含的情况,例如对于同一个所述目标事实表,在其查询日志中包括超时查询语句A和超时查询语句B,所述超时查询语句A为“select count(a)from table group by a”,其对应的查询结果为:按照a将所述目标事实表中的数据进行分组然后统计并返回a的数量,所述超时查询语句B为“select count(a,b)from table group by a,b”其对应的查询结果为:按照a,b将所述目标事实表中的数据进行分组然后统计并返回a,b的数量,根据所述超时查询语句B的查询结果进行再计算就可以得到所述超时查询语句A的查询结果,因此可以将所述超时查询语句A与所述超时查询语句B进行合并从而构建一个可以包含多个所述超时查询语句的查询结果且查询语句的数量远低于所述目标事实表的超时查询语句的数量的召回集。在实际应用中,对于一个有大量超时查询语句的所述目标事实表且用户关于的信息比较集中,例如对于存储有关“冬奥会倒计时1000天”相关信息的目标事实表,若用户的查询语句集中于场馆建设情况、交通情况或比赛项目等,则系统就可以构建包含关于场馆建设情况、交通情况和比赛项目的超时查询语句的召回集,即通过关于场馆建设情况、交通情况和比赛项目的超时查询语句覆盖全部关于“冬奥会倒计时1000天”的目标事实表的超时查询语句,从而极大的减少了超时查询语句的数量。
步骤106:获取所述待预测查询语句的特征数据,通过将预测模型应用于所生成的所述待预测查询语句的特征数据来预测所述待预测查询语句是否被命中。
在本申请一个或多个实施例中,系统以自然日为粒度在每日的凌晨根据所述观察周期构建召回集,并获取所述召回集内的每个待预测查询语句的特征数据,然后通过预测模型根据所述每个待预测查询语句的特征数据预测出所述每个待预测查询语句是否被命中,即所述每个待预测查询语句是否会在该自然日内由用户进行查询或能够基于所述待预测查询语句通过计算得到用户需要的查询结果,实现了针对所述目标事实表的天粒度更新的洞察分析。
步骤108:通过计算机集群对被命中的所述待预测查询语句进行预计算,并存储所述被命中的所述待预测查询语句的查询结果。
在本申请一个或多个实施例中,在根据预测的结果确定被命中的所述待预测查询语句之后,系统利用计算机集群通过多台计算机进行通信从而对被命中的所述待预测查询语句提前进行预计算,并存储所述被命中的所述待预测查询语句的查询结果,从而在用户进行查询时系统能够在查询时间阈值的时间内返回查询结果。
本申请通过以事实表为单位通过查询日志收集多个超时查询语句,对所述多个查询语句进行合并和筛选,构建包含覆盖所述多个超时查询语句的查询结果的待预测查询语句的召回集,根据预测模型预测最有可能被查询的待预测查询语句,并对待预测查询语句提前进行查询结果的预计算,从而在用户进行查询时就可以直接返回查询结果,减少了查询所需要的时间,提高了数据查询的速度,同时,系统根据预设的观察周期为基准构建召回集,并从所述召回集中确定进行预计算的待预测查询语句,从而不必对全部的超时查询语句进行预计算,从而减少了预计算结果的存储空间并保证了预测结果的可靠性,提高了查询的效率。
下述结合附图2,以本申请提供的数据查询方法在数据查询的应用为例,对所述数据查询方法进行进一步说明。其中,图2示出了本申请一实施例提供的一种数据查询过程的处理流程图,具体步骤包括步骤202至步骤218。
步骤202:确定目标事实表,从所述目标事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个超时查询语句。
在本申请一个或多个实施例中,每个数据仓库都包含多个事实表,本申请可以根据实际的需求获取对应的目标事实表,即系统可以根据用户的请求或当前的热度确定目标事实表,通过所述目标事实表获取记录有全部查询语句的信息的查询日志,并从所述查询日志中获取执行时间超过查询时间阈值(long_query_time)的多个慢查询语句,即从所述目标事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个超时查询语句。
可选的,所述查询时间阈值可以根据具体的需求进行设定,一般为1秒至10秒;所述预设观察周期可以是用户对所述目标事实表进行查询的前n天,其中,所述n为大于等于1的正整数,例如可以是1、3、5、7、9或14。
步骤204:从第一数据仓库获取所述目标事实表和所述目标事实表对应的目标维度表。
在本申请一个或多个实施例中,所述第一数据仓库中存储有多个事实表,在每个所述事实表中存储有大量用于分析的数据,并且每个所述事实表以其自身为中心,通过主键-外键链接有至少一个相关联的维度表,在维度表中包含了事实表中指定属性的相关信息,并形成数据仓库的星型模式或雪花模式,因此,系统根据用户的请求或当前的热度确定查询的主题之后,系统会从所述第一数据仓库提取对应的所述目标事实表和所述目标事实表对应的目标维度表。
步骤206:基于所述目标事实表和所述目标事实表对应的目标维度表构建多维数据模型。
在本申请一个或多个实施例中,系统可以基于所述目标事实表和所述目标事实表对应的目标维度表构建多维数据模型,所述多维数据模型是为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维度的数据库模型,其基本的应用是为了实现OLAP。其中,每个维度对应于多维数据模型中的一组属性并存放有度量,所述多维数据模型通过数据立方体提供数据的多维视图,并允许预计算和快速访问汇总数据。
步骤208:基于所述目标事实表对应的至少一个数据请求,对所述多个超时查询语句进行归一化处理。
在本申请一个或多个实施例中,所述目标事实表对应有多个不同的数据请求,系统可以根据每个数据请求对应的属性特征对所述多个超时查询语句进行清洗。
在本申请一个或多个实施例中,对所述多个超时查询语句进行归一化处理包括:
获取所述多个超时查询语句中每个所述超时查询语句的查询结果在所述多维数据模型中对应的维度和/或度量。
根据所述维度和/或度量的属性特征,将同一所述维度和/或度量对应的不同所述超时查询语句进行重构。
在本申请一个或多个实施例中,系统通过对不同的所述超时查询语句的查询结果在所述多维数据模型中对应的维度和/或度量为标准,将同一所述维度和/或度量对应的不同所述超时查询语句进行重构,从而将由于撰写方式或表现形式不同而查询结果相同的所述超时查询语句进行了清洗。
步骤210:基于所述多个超时查询语句构建召回集,所述召回集包括覆盖所述多个超时查询语句的查询结果的待预测查询语句。
在本申请一个或多个实施例中,如图3所示,所述超时查询语句为n个,其中,所述n为大于等于2的正整数,基于所述多个超时查询语句构建召回集包括步骤302至步骤320:
步骤302:获取所述n个超时查询语句中每个所述超时查询语句在所述多维数据模型中对应的维度。
步骤304:创建召回集,将覆盖了最多维度的超时查询语句存储在所述召回集内。
在本申请一个或多个实施例中,系统首先创建一个为空集的召回集,并将覆盖了最多维度的超时查询语句存储在所述召回集内,使得此时的召回集包含一个超时查询语句。
步骤306:创建语句集,将除所述召回集内的超时查询语句之外的n-1个超时查询语句存储在所述语句集内。
在本申请一个或多个实施例中,系统创建一个语句集,将除所述召回集内的即所述覆盖了最多维度的超时查询语句之外的其他超时查询语句全部存储在所述语句集内。
步骤308:根据所述召回集内的所述超时查询语句确定所述召回集覆盖的维度。
步骤310:计算所述语句集内的第i个超时查询语句的维度与所述召回集覆盖的维度的并集,得到并集覆盖维度,其中,1≤i≤n-1。
步骤312:判断所述并集覆盖维度是否大于所述召回集覆盖的维度。若否,执行步骤314;若是,则执行步骤316。
步骤314:则将i自增1并继续执行步骤310;
步骤316:将所述第i个超时查询语句添加到所述召回集内。
在本申请一个或多个实施例中,在保证所述语句集内所述超时查询语句的数量不变的情况下,系统将所述第i个超时查询语句添加到所述召回集内,使得所述召回集内超时查询语句的数量发生改变。
步骤318:根据所述召回集内的所述超时查询语句重新确定所述召回集覆盖的维度。
步骤320:判断所述召回集覆盖的维度是否覆盖所述多维数据模型。若否,则执行步骤314;若是,则执行步骤322。
步骤322:确定所述召回集内的所述超时查询语句为待预测查询语句。
在本申请一个或多个实施例中,在所述召回集覆盖的维度能够覆盖所述多维数据模型的情况下,则确定所述召回集内的所述超时查询语句为待预测查询语。
本申请在构建召回集的过程中,将构建过程转化为集合覆盖问题,即系统要找到若干个最小的子集(超时查询语句),使得子集的并集(召回集)等于合集(多维数据模型),其构建方案采用贪婪算法,即在循环的过程中每一步选择局部的最优解,最终得到全局的最优解。
步骤212:获取所述待预测查询语句的特征数据,通过将预测模型应用于所生成的所述待预测查询语句的特征数据来预测所述待预测查询语句是否被命中。
在本申请一个或多个实施例中,如图4所示,获取所述待预测查询语句的特征数据包括步骤402至步骤410:
步骤402:获取所述待预测查询语句在所述预设观察周期内的被命中数量。
步骤404:获取所述目标事实表在所述预设观察周期内的查询数量、所述查询数量的统计特征、属性信息和时间特征信息。
可选的,所述查询数量的统计特征包括独立访客(Unique Visitor)的数量和访问量(Page View)。
步骤406:获取所述待预测查询语句的查询结果在所述多维数据模型中对应的维度的统计特征和维度覆盖量。
其中,所述维度覆盖量为所述待预测查询语句在所述多维数据模型中对应的维度对于其他超时查询语句在所述多维数据模型中对应的维度的命中量。
步骤408:获取所述待预测查询语句的查询结果在所述多维数据模型中对应的度量的统计特征和度量覆盖量。
其中,所述度量覆盖量为所述待预测查询语句在所述多维数据模型中对应的度量对于其他超时查询语句在所述多维数据模型中对应的度量的命中量。
步骤410:根据所述待预测查询语句的查询结果在所述多维数据模型中对应的维度的查询频次,确定所述待预测查询语句的特征数据。
在本申请一个或多个实施例中,系统可以判断所述待预测查询语句的查询结果在所述多维数据模型中对应的维度的查询频次是否为所述目标事实表前Top N的查询维度,其中,所述N为大于等于1的正整数。
本申请通过获取所述召回集中每个所述待预测查询语句的多种特征数据作为输入,从而使得所述预测模型能够准确可靠的预测出所述召回集中每个所述待预测查询语句是否会被命中。
步骤214:从所述多维数据模型中获取被命中的所述待预测查询语句的查询结果。
在本申请一个或多个实施例中,系统通过计算机集群进行所述待预测查询语句的查询预计算,从所述多维数据模型中获取被命中的所述待预测查询语句的查询结果。
步骤216:将所述被命中的所述待预测查询语句的查询结果存储至第二数据仓库。
可选的,所述第二数据仓库可以是OLAP引擎的加速数据库。
步骤218:生成所述待预测查询语句的查询结果对应的数据立方体。
在本申请一个或多个实施例中,系统根据所述待预测查询语句的查询结果,从所述目标事实表的所述多维数据模型中抽取对应的数据信息,从而生成所述待预测查询语句的查询结果对应的数据立方体,从而实现OLAP引擎的实际应用。例如,如图5所示,图5展示了一个基于物品总销售数据的业务事实表生成的数据立方体,其维度包括时间、地区和物品名称。
需要注意的是,所述数据立方体只是多维模型的一个形象的说法,所述数据立方体本身只有三维,但多维模型不仅限于三维模型,可以组合更多的维度,但一方面是出于更方便地解释和描述,同时也是给思维成像和想象的空间;另一方面是为了与传统关系型数据库的二维表区别开来,于是就有了数据立方体的表达。
本申请借助于贪婪算法分析查询日志中的多个超时查询语句,然后利用预测模型给出命中的待预测查询语句的建议,使得系统能够提前进行待预测查询语句的预计算并生成数据立方体,在预计算的结果足够小的情况下,可以配合OLAP引擎的加速数据库进行再计算,从而加速数据查询效率。
在本申请中,提供了一种预测模型训练方法。本申请同时涉及一种预测模型训练装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图6示出了根据本申请一实施例的预测模型训练方法的流程图,包括步骤602至步骤604。
步骤602:获取训练样本集合,其中,所述训练样本集合包括多组训练样本以及每组所述训练样本对应的训练标签,每组所述训练样本包括多个样本预测查询语句中每个所述样本预测查询语句对应的特征数据,所述训练标签包括多个样本预测查询语句中每个所述样本预测查询语句被命中或未被命中。
步骤604:通过所述训练样本集合对预测模型进行训练,得到所述预测模型,所述预测模型使得所述训练样本和所述训练标签相关联。
在本申请一个或多个实施例中,系统基于人工智能平台(Platform ofArtificial Intelligence)的参数服务器(Parameter server)并采用二分类方法对所述训练样本集合进行训练,得到所述预测模型。
本申请以样本预测查询语句为样本,以所述样本预测查询语句被命中或未被命中为标签,使用机器学习方法得到预测模型,使得所述预测模型可以结合历史数据中的样本预测查询语句预测对当天的待查询语句进行预测,从而提升了OLAP引擎的查询性能。
在本申请一个或多个实施例中,如图7所示,获取训练样本集合包括步骤702至步骤708:
步骤702:确定样本事实表,从所述样本事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个样本超时查询语句。
在本申请一个或多个实施例中,系统根据用户的请求或当前的热度确定样本事实表,通过所述样本事实表获取记录有全部查询语句的信息的查询日志,并从所述查询日志中获取执行时间超过查询时间阈值(long_query_time)的多个慢查询语句,即从所述样本事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个超时查询语句。
可选的,所述查询时间阈值可以根据具体的需求进行设定,一般为1秒至10秒;所述预设观察周期可以是用户对所述样本事实表进行查询的前n天,其中,所述n为大于等于1的正整数,例如1、3、5、7、9或14。
在本申请一个或多个实施例中,在确定样本事实表之后,还包括:
从第一数据仓库获取所述样本事实表和所述样本事实表对应的样本维度表。
基于所述样本事实表和所述样本事实表对应的样本维度表构建样本数据模型。
在本申请一个或多个实施例中,在构建样本召回集之前,还包括:
基于所述样本事实表对应的至少一个数据请求,对所述多个样本超时查询语句进行归一化处理。
在本申请一个或多个实施例中,对所述多个样本超时查询语句进行归一化处理包括:
获取所述多个样本超时查询语句中每个所述样本超时查询语句的查询结果在所述样本数据模型中对应的维度和/或度量。
根据所述维度和/或度量的属性特征,将同一所述维度和/或度量对应的不同所述样本超时查询语句进行重构。
步骤704:基于所述多个样本超时查询语句构建样本召回集,所述样本召回集包括覆盖所述多个样本超时查询语句的查询结果的样本预测查询语句。
在本申请一个或多个实施例中,系统基于所述样本事实表合并样本超时查询语句,构建样本召回集,所述样本召回集中样本超时查询语句的数量远低于所述样本事实表对应的样本超时查询语句的数量。具体的,所述样本事实表对应有n条样本超时查询语句,其中n为大于等于1的正整数,则所述样本事实表对应的样本查询集合为Q={query1,query2,query3…queryi…queryn},其中qu eryi为第i条查询,系统的目标是在Q中找到queryi,且queryi可以满足Q中所有样本超时查询语句的需求(含通过再计算方式),同时,每个所述样本超时查询语句的查询结果的差异在于维度和度量,假设所述queryi有j个维度,k个度量,则所述queryi的查询结果可以用集合def(queryi)={Di1,Di2…Dih…Dij,Mi1,Mi2…Mih…Mik}表示,其中Dih表示所述queryi的查询结果的第h个维度,Mh表示所述queryi的查询结果的第h个度量,则在满足def(queryn)包含于所述d ef(queryi)的情况下,所述queryn的查询结果可以通过queryi的查询结果再计算出来,则淘宝召回集的构建转化为利用贪婪算法进行解决的集合覆盖问题,是个多项式复杂程度的非确定性(Non-deterministicPolynomial)问题。
步骤706:获取所述样本召回集内的所述样本预测查询语句对应的特征数据。
在本申请一个或多个实施例中,系统以自然日为粒度在每日的凌晨根据所述观察周期构建样本召回集并获取所述样本召回集内的每个样本预测查询语句的特征数据,实现了针对所述目标事实表的天粒度更新的洞察分析。
在本申请一个或多个实施例中,如图8所示,获取所述样本召回集内的所述样本预测查询语句对应的特征数据包括步骤802至步骤810:
步骤802:获取所述样本预测查询语句在所述预设观察周期内的被命中数量。
步骤804:获取所述样本事实表在所述预设观察周期内的查询数量、所述查询数量的统计特征、属性信息和时间特征信息。
可选的,所述查询数量的统计特征包括独立访客(Unique Visitor)的数量和访问量(Page View)。
步骤806:获取所述样本预测查询语句的查询结果在所述样本数据模型中对应的维度的统计特征和维度覆盖量。
其中,所述维度覆盖量为所述样本预测查询语句在所述样本数据模型中对应的维度对于其他样本超时查询语句在所述样本数据模型中对应的维度的命中量。
步骤808:获取所述样本预测查询语句的查询结果在所述样本数据模型中对应的度量的统计特征和度量覆盖量。
其中,所述度量覆盖量为所述样本预测查询语句在所述样本数据模型中对应的度量对于其他样本超时查询语句在所述样本数据模型中对应的度量的命中量。
步骤810:根据所述样本预测查询语句的查询结果在所述样本数据模型中对应的维度的查询频次,确定所述样本待预测查询语句的特征数据。
在本申请一个或多个实施例中,系统可以判断所述样本预测查询语句的查询结果在所述样本数据模型中对应的维度的查询频次是否为所述样本事实表前Top N的查询维度,其中,所述N为大于等于1的正整数。
本申请通过获取所述召回集中每个所述待预测查询语句的多种特征数据作为样本,对所述预测模型进行训练,体现出样本的多样性和可靠性,使得人工智能平台能够准确可靠的训练出所述预测模型。
步骤708:确定所述样本召回集内的所述样本预测查询语句被命中或未被命中。
在本申请一个或多个实施例中,系统基于人工智能平台(Platform ofArtificial Intelligence)的参数服务器(Parameter server)并采用二分类方法对所述训练样本集合进行训练,得到所述预测模型。
本申请将构建样本召回集的过程转化为集合覆盖问题并利用贪婪算法进行计算从而获取训练样本,实现了对样本事实表对应的样本超时查询语句进行了筛选和提炼,从而提高了预测模型的准确性和可靠性。
与上述方法实施例相对应,本申请还提供了数据查询装置实施例,图9示出了本申请一实施例的数据查询装置的结构示意图。如图9所示,该装置包括:
语句获取模块902,被配置为确定目标事实表,从所述目标事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个超时查询语句;
召回集构建模块904,被配置为基于所述多个超时查询语句构建召回集,所述召回集包括覆盖所述多个超时查询语句的查询结果的待预测查询语句;
预测模块906,被配置为获取所述待预测查询语句的特征数据,通过将预测模型应用于所生成的所述待预测查询语句的特征数据来预测所述待预测查询语句是否被命中;
预计算模块908,被配置为通过计算机集群对被命中的所述待预测查询语句进行预计算,并存储所述被命中的所述待预测查询语句的查询结果。
可选的,所述装置还包括:
表获取模块,被配置为从第一数据仓库获取所述目标事实表和所述目标事实表对应的目标维度表;
模型建立模块,被配置为基于所述目标事实表和所述目标事实表对应的目标维度表构建多维数据模型。
可选的,所述装置还包括:
归一化模块,被配置为基于所述目标事实表对应的至少一个数据请求,对所述多个超时查询语句进行归一化处理。
可选的,所述归一化模块包括:
查询对应单元,被配置为获取所述多个超时查询语句中每个所述超时查询语句的查询结果在所述多维数据模型中对应的维度和/或度量;
重构单元,被配置为根据所述维度和/或度量的属性特征,将同一所述维度和/或度量对应的不同所述超时查询语句进行重构。
可选的,所述超时查询语句为n个,所述召回集构建模块904包括:
第一构建子单元,被配置为获取所述n个超时查询语句中每个所述超时查询语句在所述多维数据模型中对应的维度;
所述第一构建子单元,还被配置为创建召回集,将覆盖了最多维度的超时查询语句存储在所述召回集内;
所述第一构建子单元,还被配置为创建语句集,将除所述召回集内的超时查询语句之外的n-1个超时查询语句存储在所述语句集内;
所述第一构建子单元,还被配置为根据所述召回集内的所述超时查询语句确定所述召回集覆盖的维度;
所述第一构建子单元,还被配置为计算所述语句集内的第i个超时查询语句的维度与所述召回集覆盖的维度的并集,得到并集覆盖维度,其中,1≤i≤n-1;
第一维度判断单元,被配置为判断所述并集覆盖维度是否大于所述召回集覆盖的维度;若否,则返回自增单元;若是,则返回语句添加单元。
所述自增单元,被配置为将i自增1并返回所述第一构建子单元;
所述语句添加单元,被配置为将所述第i个超时查询语句添加到所述召回集内;
第二构建子单元,被配置为根据所述召回集内的所述超时查询语句重新确定所述召回集覆盖的维度;
第二维度判断单元,被配置为判断所述召回集覆盖的维度是否覆盖所述多维数据模型;若是,则返回语句确定单元;若否,则返回自增单元;
所述返回语句确定单元,被配置为确定所述召回集内的所述超时查询语句为待预测查询语句。
可选的,所述预测模块906包括:
第一特征获取单元,被配置为获取所述待预测查询语句在所述预设观察周期内的被命中数量;
第二特征获取单元,被配置为获取所述目标事实表在所述预设观察周期内的查询数量、所述查询数量的统计特征、属性信息和时间特征信息;
第三特征获取单元,被配置为获取所述待预测查询语句的查询结果在所述多维数据模型中对应的维度的统计特征和维度覆盖量;
第四特征获取单元,被配置为获取所述待预测查询语句的查询结果在所述多维数据模型中对应的度量的统计特征和度量覆盖量;
第五特征获取单元,被配置为根据所述待预测查询语句的查询结果在所述多维数据模型中对应的维度的查询频次,确定所述待预测查询语句的特征数据。
可选的,所述预计算模块908包括:
结果查询单元,被配置为从所述多维数据模型中获取被命中的所述待预测查询语句的查询结果;
结果存储单元,被配置为将所述被命中的所述待预测查询语句的查询结果存储至第二数据仓库。
可选的,所述装置还包括:
数据立方体模块,被配置为生成所述待预测查询语句的查询结果对应的数据立方体。
本申请以事实表为单位通过查询日志收集多个超时查询语句,对所述多个查询语句进行合并和筛选,构建包含覆盖所述多个超时查询语句的查询结果的待预测查询语句的召回集,根据预测模型预测最有可能被查询的待预测查询语句,并对待预测查询语句提前进行查询结果的预计算,从而在用户进行查询时就可以直接返回查询结果,减少了查询所需要的时间,提高了数据查询的速度,同时,系统根据预设的观察周期基准构建召回集,并从所述召回集中确定系统进行预计算的待预测查询语句,从而不必对全部的超时查询语句进行预计算,从而减少了预计算结果的存储空间并保证了预测结果的可靠性,提高了查询的效率。
上述为本实施例的一种数据查询装置的示意性方案。需要说明的是,该数据查询装置的技术方案与上述的数据查询方法的技术方案属于同一构思,数据查询装置的技术方案未详细描述的细节内容,均可以参见上述数据查询方法的技术方案的描述。
与上述方法实施例相对应,本申请还提供了预测模型训练装置实施例,图10示出了本申请一实施例的预测模型训练装置的结构示意图。如图10所示,该装置包括:
样本获取模块1002,被配置为获取训练样本集合,其中,所述训练样本集合包括多组训练样本以及每组所述训练样本对应的训练标签,每组所述训练样本包括多个样本预测查询语句中每个所述样本预测查询语句对应的特征数据,所述训练标签包括多个样本预测查询语句中每个所述样本预测查询语句被命中或未被命中;
模型训练模块1004,被配置为通过所述训练样本集合对预测模型进行训练,得到所述预测模型,所述预测模型使得所述训练样本和所述训练标签相关联。
可选的,所述样本获取模块1002包括:
样本表确定单元,被配置为确定样本事实表,从所述样本事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个样本超时查询语句;
样本召回集构建单元,被配置为基于所述多个样本超时查询语句构建样本召回集,所述样本召回集包括覆盖所述多个样本超时查询语句的查询结果的样本预测查询语句;
样本特征获取单元,被配置为获取所述样本召回集内的所述样本预测查询语句对应的特征数据;
标签配置单元,被配置为确定所述样本召回集内的所述样本预测查询语句被命中或未被命中。
可选的,所述装置还包括:
样本表获取模块,被配置为从第一数据仓库获取所述样本事实表和所述样本事实表对应的样本维度表;
样本模型建立模块,被配置为基于所述样本事实表和所述样本事实表对应的样本维度表构建样本数据模型。
可选的,所述装置还包括:
样本归一化模块,被配置为基于所述样本事实表对应的至少一个数据请求,对所述多个样本超时查询语句进行归一化处理。
可选的,所述样本归一化模块包括:
样本查询对应单元,被配置为获取所述多个样本超时查询语句中每个所述样本超时查询语句的查询结果在所述样本数据模型中对应的维度和/或度量;
样本重构单元,被配置为根据所述维度和/或度量的属性特征,将同一所述维度和/或度量对应的不同所述样本超时查询语句进行重构。
可选的,所述样本特征获取单元包括:
第一样本特征获取单元,被配置为获取所述样本预测查询语句在所述预设观察周期内的被命中数量;
第二样本特征获取单元,被配置为获取所述样本事实表在所述预设观察周期内的查询数量、所述查询数量的统计特征、属性信息和时间特征信息;
第三样本特征获取单元,被配置为获取所述样本预测查询语句的查询结果在所述样本数据模型中对应的维度的统计特征和维度覆盖量;
第四样本特征获取单元,被配置为获取所述样本预测查询语句的查询结果在所述样本数据模型中对应的度量的统计特征和度量覆盖量;
第五样本特征获取单元,被配置为根据所述样本预测查询语句的查询结果在所述样本数据模型中对应的维度的查询频次,确定所述样本待预测查询语句的特征数据。
本申请以样本预测查询语句为样本,以所述样本预测查询语句被命中或未被命中为标签,使用机器学习方法得到预测模型,使得所述预测模型可以结合历史数据中的样本预测查询语句预测对当天的待查询语句进行预测,从而提升了OLAP引擎的查询性能。
上述为本实施例的一种预测模型训练装置的示意性方案。需要说明的是,该预测模型训练装置的技术方案与上述的预测模型训练方法的技术方案属于同一构思,预测模型训练装置的技术方案未详细描述的细节内容,均可以参见上述预测模型训练方法的技术方案的描述。
图11示出了根据本申请一实施例的计算设备1100的结构框图。该计算设备1100的部件包括但不限于存储器1110和处理器1120。处理器1120与存储器1110通过总线1130相连接,数据库1150用于保存数据。
计算设备1100还包括接入设备1110,接入设备1110使得计算设备1100能够经由一个或多个网络1160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1110可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备1100的上述以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1100还可以是移动式或静止式的服务器。
其中,处理器1120用于执行如下计算机可执行指令:
确定目标事实表,从所述目标事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个超时查询语句;
基于所述多个超时查询语句构建召回集,所述召回集包括覆盖所述多个超时查询语句的查询结果的待预测查询语句;
获取所述待预测查询语句的特征数据,通过将预测模型应用于所生成的所述待预测查询语句的特征数据来预测所述待预测查询语句是否被命中;
通过计算机集群对被命中的所述待预测查询语句进行预计算,并存储所述被命中的所述待预测查询语句的查询结果。
可选的,在确定目标事实表之后,还包括:
从第一数据仓库获取所述目标事实表和所述目标事实表对应的目标维度表;
基于所述目标事实表和所述目标事实表对应的目标维度表构建多维数据模型。
可选的,在构建召回集之前,还包括:
基于所述目标事实表对应的至少一个数据请求,对所述多个超时查询语句进行归一化处理。
可选的,对所述多个超时查询语句进行归一化处理包括:
获取所述多个超时查询语句中每个所述超时查询语句的查询结果在所述多维数据模型中对应的维度和/或度量;
根据所述维度和/或度量的属性特征,将同一所述维度和/或度量对应的不同所述超时查询语句进行重构。
可选的,所述超时查询语句为n个,基于所述多个超时查询语句构建召回集包括:
S11、获取所述n个超时查询语句中每个所述超时查询语句在所述多维数据模型中对应的维度;
S12、创建召回集,将覆盖了最多维度的超时查询语句存储在所述召回集内;
S13、创建语句集,将除所述召回集内的超时查询语句之外的n-1个超时查询语句存储在所述语句集内;
S14、根据所述召回集内的所述超时查询语句确定所述召回集覆盖的维度;
S15、计算所述语句集内的第i个超时查询语句的维度与所述召回集覆盖的维度的并集,得到并集覆盖维度,其中,1≤i≤n-1;
S16、判断所述并集覆盖维度是否大于所述召回集覆盖的维度;
S17、若否,则将i自增1并继续执行步骤S15;
S18、若是,则将所述第i个超时查询语句添加到所述召回集内;
S19、根据所述召回集内的所述超时查询语句重新确定所述召回集覆盖的维度;
S20、判断所述召回集覆盖的维度是否覆盖所述多维数据模型;
S21、若是,则确定所述召回集内的所述超时查询语句为待预测查询语句;
S22、若否,则将i自增1并继续执行步骤S15。
可选的,获取所述待预测查询语句的特征数据包括:
获取所述待预测查询语句在所述预设观察周期内的被命中数量;
获取所述目标事实表在所述预设观察周期内的查询数量、所述查询数量的统计特征、属性信息和时间特征信息;
获取所述待预测查询语句的查询结果在所述多维数据模型中对应的维度的统计特征和维度覆盖量;
获取所述待预测查询语句的查询结果在所述多维数据模型中对应的度量的统计特征和度量覆盖量;
根据所述待预测查询语句的查询结果在所述多维数据模型中对应的维度的查询频次,确定所述待预测查询语句的特征数据。
可选的,通过计算机集群对被命中的所述待预测查询语句进行预计算包括:
从所述多维数据模型中获取被命中的所述待预测查询语句的查询结果;
存储所述被命中的所述待预测查询语句的计算结果包括:
将所述被命中的所述待预测查询语句的查询结果存储至第二数据仓库。
可选的,在将所述被命中的所述待预测查询语句的查询结果存储至第二数据仓库之后,还包括:
生成所述待预测查询语句的查询结果对应的数据立方体。
图12示出了根据本申请一实施例的计算设备1200的结构框图。该计算设备1200的部件包括但不限于存储器1210和处理器1220。处理器1220与存储器1210通过总线1230相连接,数据库1250用于保存数据,具体接入方式和内容参见计算设备1100即可,本申请在此不在赘述。
其中,处理器1220还用于执行如下计算机可执行指令:
获取训练样本集合,其中,所述训练样本集合包括多组训练样本以及每组所述训练样本对应的训练标签,每组所述训练样本包括多个样本预测查询语句中每个所述样本预测查询语句对应的特征数据,所述训练标签包括多个样本预测查询语句中每个所述样本预测查询语句被命中或未被命中;
通过所述训练样本集合对预测模型进行训练,得到所述预测模型,所述预测模型使得所述训练样本和所述训练标签相关联。
可选的,获取训练样本集合包括:
确定样本事实表,从所述样本事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个样本超时查询语句;
基于所述多个样本超时查询语句构建样本召回集,所述样本召回集包括覆盖所述多个样本超时查询语句的查询结果的样本预测查询语句;
获取所述样本召回集内的所述样本预测查询语句对应的特征数据;
确定所述样本召回集内的所述样本预测查询语句被命中或未被命中。
可选的,在确定样本事实表之后,还包括:
从第一数据仓库获取所述样本事实表和所述样本事实表对应的样本维度表;
基于所述样本事实表和所述样本事实表对应的样本维度表构建样本数据模型。
可选的,在构建样本召回集之前,还包括:
基于所述样本事实表对应的至少一个数据请求,对所述多个样本超时查询语句进行归一化处理。
可选的,对所述多个样本超时查询语句进行归一化处理包括:
获取所述多个样本超时查询语句中每个所述样本超时查询语句的查询结果在所述样本数据模型中对应的维度和/或度量;
根据所述维度和/或度量的属性特征,将同一所述维度和/或度量对应的不同所述样本超时查询语句进行重构。
可选的,获取所述样本召回集内的所述样本预测查询语句对应的特征数据包括:
获取所述样本预测查询语句在所述预设观察周期内的被命中数量;
获取所述样本事实表在所述预设观察周期内的查询数量、所述查询数量的统计特征、属性信息和时间特征信息;
获取所述样本预测查询语句的查询结果在所述样本数据模型中对应的维度的统计特征和维度覆盖量;
获取所述样本预测查询语句的查询结果在所述样本数据模型中对应的度量的统计特征和度量覆盖量;
根据所述样本预测查询语句的查询结果在所述样本数据模型中对应的维度的查询频次,确定所述样本待预测查询语句的特征数据。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
确定目标事实表,从所述目标事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个超时查询语句;
基于所述多个超时查询语句构建召回集,所述召回集包括覆盖所述多个超时查询语句的查询结果的待预测查询语句;
获取所述待预测查询语句的特征数据,通过将预测模型应用于所生成的所述待预测查询语句的特征数据来预测所述待预测查询语句是否被命中;
通过计算机集群对被命中的所述待预测查询语句进行预计算,并存储所述被命中的所述待预测查询语句的查询结果。
可选的,在确定目标事实表之后,还包括:
从第一数据仓库获取所述目标事实表和所述目标事实表对应的目标维度表;
基于所述目标事实表和所述目标事实表对应的目标维度表构建多维数据模型。
可选的,在构建召回集之前,还包括:
基于所述目标事实表对应的至少一个数据请求,对所述多个超时查询语句进行归一化处理。
可选的,对所述多个超时查询语句进行归一化处理包括:
获取所述多个超时查询语句中每个所述超时查询语句的查询结果在所述多维数据模型中对应的维度和/或度量;
根据所述维度和/或度量的属性特征,将同一所述维度和/或度量对应的不同所述超时查询语句进行重构。
可选的,所述超时查询语句为n个,基于所述多个超时查询语句构建召回集包括:
S11、获取所述n个超时查询语句中每个所述超时查询语句在所述多维数据模型中对应的维度;
S12、创建召回集,将覆盖了最多维度的超时查询语句存储在所述召回集内;
S13、创建语句集,将除所述召回集内的超时查询语句之外的n-1个超时查询语句存储在所述语句集内;
S14、根据所述召回集内的所述超时查询语句确定所述召回集覆盖的维度;
S15、计算所述语句集内的第i个超时查询语句的维度与所述召回集覆盖的维度的并集,得到并集覆盖维度,其中,1≤i≤n-1;
S16、判断所述并集覆盖维度是否大于所述召回集覆盖的维度;
S17、若否,则将i自增1并继续执行步骤S15;
S18、若是,则将所述第i个超时查询语句添加到所述召回集内;
S19、根据所述召回集内的所述超时查询语句重新确定所述召回集覆盖的维度;
S20、判断所述召回集覆盖的维度是否覆盖所述多维数据模型;
S21、若是,则确定所述召回集内的所述超时查询语句为待预测查询语句;
S22、若否,则将i自增1并继续执行步骤S15。
可选的,获取所述待预测查询语句的特征数据包括:
获取所述待预测查询语句在所述预设观察周期内的被命中数量;
获取所述目标事实表在所述预设观察周期内的查询数量、所述查询数量的统计特征、属性信息和时间特征信息;
获取所述待预测查询语句的查询结果在所述多维数据模型中对应的维度的统计特征和维度覆盖量;
获取所述待预测查询语句的查询结果在所述多维数据模型中对应的度量的统计特征和度量覆盖量;
根据所述待预测查询语句的查询结果在所述多维数据模型中对应的维度的查询频次,确定所述待预测查询语句的特征数据。
可选的,通过计算机集群对被命中的所述待预测查询语句进行预计算包括:
从所述多维数据模型中获取被命中的所述待预测查询语句的查询结果;
存储所述被命中的所述待预测查询语句的计算结果包括:
将所述被命中的所述待预测查询语句的查询结果存储至第二数据仓库。
可选的,在将所述被命中的所述待预测查询语句的查询结果存储至第二数据仓库之后,还包括:
生成所述待预测查询语句的查询结果对应的数据立方体。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据查询方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据查询方法的技术方案的描述。
本申请一实施例还提供另一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
获取训练样本集合,其中,所述训练样本集合包括多组训练样本以及每组所述训练样本对应的训练标签,每组所述训练样本包括多个样本预测查询语句中每个所述样本预测查询语句对应的特征数据,所述训练标签包括多个样本预测查询语句中每个所述样本预测查询语句被命中或未被命中;
通过所述训练样本集合对预测模型进行训练,得到所述预测模型,所述预测模型使得所述训练样本和所述训练标签相关联。
可选的,获取训练样本集合包括:
确定样本事实表,从所述样本事实表的查询日志中获取在预设观察周期内超过查询时间阈值的多个样本超时查询语句;
基于所述多个样本超时查询语句构建样本召回集,所述样本召回集包括覆盖所述多个样本超时查询语句的查询结果的样本预测查询语句;
获取所述样本召回集内的所述样本预测查询语句对应的特征数据;
确定所述样本召回集内的所述样本预测查询语句被命中或未被命中。
可选的,在确定样本事实表之后,还包括:
从第一数据仓库获取所述样本事实表和所述样本事实表对应的样本维度表;
基于所述样本事实表和所述样本事实表对应的样本维度表构建样本数据模型。
可选的,在构建样本召回集之前,还包括:
基于所述样本事实表对应的至少一个数据请求,对所述多个样本超时查询语句进行归一化处理。
可选的,对所述多个样本超时查询语句进行归一化处理包括:
获取所述多个样本超时查询语句中每个所述样本超时查询语句的查询结果在所述样本数据模型中对应的维度和/或度量;
根据所述维度和/或度量的属性特征,将同一所述维度和/或度量对应的不同所述样本超时查询语句进行重构。
可选的,获取所述样本召回集内的所述样本预测查询语句对应的特征数据包括:
获取所述样本预测查询语句在所述预设观察周期内的被命中数量;
获取所述样本事实表在所述预设观察周期内的查询数量、所述查询数量的统计特征、属性信息和时间特征信息;
获取所述样本预测查询语句的查询结果在所述样本数据模型中对应的维度的统计特征和维度覆盖量;
获取所述样本预测查询语句的查询结果在所述样本数据模型中对应的度量的统计特征和度量覆盖量;
根据所述样本预测查询语句的查询结果在所述样本数据模型中对应的维度的查询频次,确定所述样本待预测查询语句的特征数据。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的预测模型训练方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述预测模型训练方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,申请中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。