数据查询方法、电子设备及计算机可读存储介质转让专利

申请号 : CN202310797701.1

文献号 : CN116541418B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 翁良贵朱鎔丁博麟

申请人 : 阿里巴巴(中国)有限公司

摘要 :

本申请公开了一种数据查询方法、电子设备及计算机可读存储介质。其中,该方法包括:在接收到查询请求的情况下,基于查询请求,生成第一查询计划集合;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果。本申请解决了相关技术中由于机器学习模型容易出现欠拟合和泛化能力弱,导致数据查询准确度较差的技术问题。

权利要求 :

1.一种数据查询方法,其特征在于,包括:

在接收到查询请求的情况下,基于所述查询请求,生成第一查询计划集合;

对所述第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,所述第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中,所述训练查询计划集合用于表征用于对指标预测模型进行训练的查询计划所构成的集合,所述指标预测模型用于表征对查询计划的执行指标进行预测的模型,所述执行指标用于表征查询时间或IO吞吐量对应的指标;

执行所述第二查询计划集合中的目标查询计划,得到所述查询请求对应的查询结果。

2.根据权利要求1所述的方法,其特征在于,在所述第一查询计划包含的部分特征存在于所述训练特征中的情况下,对所述第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,包括:对所述第一查询计划进行编码,得到所述第一查询计划对应的第一特征;

基于所述第一特征确定所述第一查询计划的预测准确度指标,其中,所述预测准确度指标用于表征通过所述指标预测模型对所述第一查询计划的执行指标进行预测的准确度;

基于所述预测准确度指标,对所述第一查询计划进行过滤,得到所述第二查询计划集合。

3.根据权利要求2所述的方法,其特征在于,基于所述第一特征确定所述第一查询计划的预测准确度指标,包括:基于所述第一特征,从多个第一子空间中确定所述第一查询计划对应的第一目标子空间,其中,所述多个第一子空间是通过对预设特征空间进行划分得到的子空间,所述预设特征空间是基于所述训练特征对应的特异特征所确定的特征空间,所述特异特征用于表征所述训练特征未包含的特征;

确定所述第一目标子空间的预测准确度指标为所述第一查询计划的预测准确度指标。

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:基于所述多个第一子空间对应的训练特征和特异特征,生成所述多个第一子空间对应的子空间查询计划;

通过所述指标预测模型对所述子空间查询计划的执行指标进行预测,得到所述子空间查询计划的预测执行指标;

基于所述预测执行指标,确定所述多个第一子空间对应的预测准确度指标。

5.根据权利要求1所述的方法,其特征在于,在所述第一查询计划包含的全部特征存在于所述训练特征中的情况下,对所述第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,包括:基于所述第一查询计划的结构,从多个预设决策树中确定所述第一查询计划对应的目标决策树,其中,不同预设决策树用于表征不同结构的查询计划;

从所述目标决策树包含的多个结点中,确定所述第一查询计划对应的目标结点,其中,不同结点用于表征不同的查询计划,所述不同结点的结点值用于表征所述不同的查询计划的预测可靠性指标,所述预测可靠性指标用于表征通过所述指标预测模型对所述不同的查询计划的执行指标进行预测的可靠性;

基于所述目标结点对应的预测可靠性指标,对所述第一查询计划进行过滤,得到所述第二查询计划集合。

6.根据权利要求5所述的方法,其特征在于,从所述目标决策树包含的多个结点中,确定所述第一查询计划对应的目标结点,包括:基于所述第一查询计划的结构,对所述第一查询计划进行特征化处理,得到所述第一查询计划对应的第二特征;

将所述第二特征与所述多个结点对应的结点特征进行匹配,得到所述第二特征对应的目标结点特征;

确定所述目标结点特征对应的结点为所述目标结点。

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:获取所述训练查询计划集合中的子查询计划集合,其中,所述子查询计划集合包含的子查询计划与所述第一查询计划具有相同的结构;

基于所述子查询计划的结构,对所述子查询计划进行特征化处理,得到所述子查询计划的子特征;

对所述子特征进行划分,生成所述目标决策树。

8.根据权利要求7所述的方法,其特征在于,对所述子特征进行划分,生成所述预设决策树,包括:确定所述子特征的分数;

获取所述子特征中最小分数对应的子特征,得到目标子特征;

基于所述目标子特征的类型,将目标子特征进行划分,生成所述预设决策树。

9.根据权利要求1所述的方法,其特征在于,执行所述第二查询计划集合中的目标查询计划,得到所述查询请求对应的查询结果,包括:通过所述指标预测模型对所述第二查询计划集合中的第二查询计划的执行指标进行预测,得到所述第二查询计划的执行指标;

获取所述第二查询计划集合中最小执行指标对应的第二查询计划,得到所述目标查询计划;

执行所述目标查询计划,得到所述查询结果。

10.一种数据查询方法,其特征在于,包括:

在接收到物品查询请求的情况下,基于所述物品查询请求,生成第一查询计划集合,其中,所述物品查询请求用于表征对在线购物平台中的物品进行查询的请求;

对所述第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,所述第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中,所述训练查询计划集合用于表征用于对指标预测模型进行训练的查询计划所构成的集合,所述指标预测模型用于表征对查询计划的执行指标进行预测的模型,所述执行指标用于表征查询时间或IO吞吐量对应的指标;

执行所述第二查询计划集合中的目标查询计划,得到所述物品查询请求对应的目标物品。

11.一种数据查询方法,其特征在于,包括:

响应作用于操作界面上的输入指令,在所述操作界面上显示查询请求;

响应作用于所述操作界面上的数据查询指令,在所述操作界面上显示所述查询请求对应的查询结果,其中,所述查询结果是通过执行第二查询计划集合中的目标查询计划得到的,所述第二查询计划集合是对第一查询计划集合中的第一查询计划进行过滤得到的,所述第一查询计划集合是基于所述查询请求生成的,所述第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中,所述训练查询计划集合用于表征用于对指标预测模型进行训练的查询计划所构成的集合,所述指标预测模型用于表征对查询计划的执行指标进行预测的模型,所述执行指标用于表征查询时间或IO吞吐量对应的指标。

12.一种数据查询方法,其特征在于,包括:

通过调用第一接口获取查询请求,其中,所述第一接口包括第一参数,所述第一参数的参数值为所述查询请求;

基于所述查询请求,生成第一查询计划集合;

对所述第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,所述第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中,所述训练查询计划集合用于表征用于对指标预测模型进行训练的查询计划所构成的集合,所述指标预测模型用于表征对查询计划的执行指标进行预测的模型,所述执行指标用于表征查询时间或IO吞吐量对应的指标;

执行所述第二查询计划集合中的目标查询计划,得到所述查询请求对应的查询结果;

通过调用第二接口输出所述查询结果,其中,所述第二接口包括第二参数,所述第二参数的参数值为所述查询结果。

13.一种电子设备,其特征在于,包括:

存储器,存储有可执行程序;

处理器,用于运行所述程序,其中,所述程序运行时执行权利要求1至12中任意一项所述的方法。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的可执行程序,其中,在所述可执行程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至12中任意一项所述的方法。

说明书 :

数据查询方法、电子设备及计算机可读存储介质

技术领域

[0001] 本申请涉及数据库技术领域,具体而言,涉及一种数据查询方法、电子设备及计算机可读存储介质。

背景技术

[0002] SQL(Structured Query Language,结构化查询语言)查询被广泛使用于各个领域。数据库系统可以使用查询优化器技术将用户提交的SQL查询转变成对应的查询计划,并将该查询计划提交给执行引擎去检索用户所需的数据。查询计划指导执行引擎高效、准确地获取数据,因此查询计划的好坏决定了SQL的查询时间。
[0003] 目前,机器学习模型被应用于查询优化器以生成更好的查询计划,但是,由于机器学习模型欠拟合频繁出现和泛化能力差这两个原因,导致机器学习模型性能衰退,可能会生成一个比传统优化器更差的查询计划,进而导致数据查询准确度较差。
[0004] 针对上述的问题,目前尚未提出有效的解决方案。

发明内容

[0005] 本申请实施例提供了一种数据查询方法、电子设备及计算机可读存储介质,以至少解决相关技术中由于机器学习模型容易出现欠拟合和泛化能力弱,导致数据查询准确度较差的技术问题。
[0006] 根据本申请实施例的一个方面,提供了一种数据查询方法,包括:在接收到查询请求的情况下,基于查询请求,生成第一查询计划集合;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果。
[0007] 根据本申请实施例的另一方面,还提供了一种数据查询方法,包括:响应作用于操作界面上的输入指令,在操作界面上显示查询请求;响应作用于操作界面上的数据查询指令,在操作界面上显示查询请求对应的查询结果,其中,查询结果是通过执行第二查询计划集合中的目标查询计划得到的,第二查询计划集合是对第一查询计划集合中的第一查询计划进行过滤得到的,第一查询计划集合是基于查询请求生成的,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中。
[0008] 根据本申请实施例的另一方面,还提供了一种数据查询方法,包括:通过调用第一接口获取查询请求,其中,第一接口包括第一参数,第一参数的参数值为查询请求;基于查询请求,生成第一查询计划集合;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果;通过调用第二接口输出查询结果,其中,第二接口包括第二参数,第二参数的参数值为查询结果。
[0009] 根据本申请实施例的另一方面,还提供了一种数据查询方法,包括:在接收到物品查询请求的情况下,基于物品查询请求,生成第一查询计划集合,其中,物品查询请求用于表征对在线购物平台中的物品进行查询的请求;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到物品查询请求对应的目标物品。
[0010] 根据本申请实施例的另一方面,还提供了一种数据查询装置,包括:计划生成模块,用于在接收到查询请求的情况下,基于查询请求,生成第一查询计划集合;计划过滤模块,用于对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;计划执行模块,用于执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果。
[0011] 根据本申请实施例的另一方面,还提供了一种数据查询装置,包括:第一显示模块,用于响应作用于操作界面上的输入指令,在操作界面上显示查询请求;第二显示模块,用于响应作用于操作界面上的数据查询指令,在操作界面上显示查询请求对应的查询结果,其中,查询结果是通过执行第二查询计划集合中的目标查询计划得到的,第二查询计划集合是对第一查询计划集合中的第一查询计划进行过滤得到的,第一查询计划集合是基于查询请求生成的,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中。
[0012] 根据本申请实施例的另一方面,还提供了一种数据查询装置,包括:请求获取模块,用于通过调用第一接口获取查询请求,其中,第一接口包括第一参数,第一参数的参数值为查询请求;计划生成模块,用于基于查询请求,生成第一查询计划集合;计划过滤模块,用于对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;计划执行模块,用于执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果;结果输出模块,用于通过调用第二接口输出查询结果,其中,第二接口包括第二参数,第二参数的参数值为查询结果。
[0013] 根据本申请实施例的另一方面,还提供了一种数据查询装置,包括:计划生成模块用于在接收到物品查询请求的情况下,基于物品查询请求,生成第一查询计划集合,其中,物品查询请求用于表征对在线购物平台中的物品进行查询的请求;计划过滤模块,用于对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;计划执行模块用于执行第二查询计划集合中的目标查询计划,得到物品查询请求对应的目标物品。
[0014] 根据本申请实施例的另一方面,还提供了一种电子设备,包括:存储器,存储有可执行程序;处理器,用于运行程序,其中,程序运行时执行上述实施例中任意一项的方法。
[0015] 根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的可执行程序,其中,在可执行程序运行时控制计算机可读存储介质所在设备执行上述实施例中任意一项的方法。
[0016] 在本申请实施例中,在接收到查询请求的情况下,可以基于查询请求,生成第一查询计划集合,进一步对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,最后执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果,从而实现数据查询的目的。容易注意到的是,第二查询计划集合是对第一查询计划集合中的第一查询计划进行过滤得到的,且第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中,使得第三查询计划集合的确定过程不仅考虑了未出现在训练查询计划集合中的特征,而且可以区分模型欠拟合的区域,从而实现了提高数据查询准确度、提高系统鲁棒性、减低学习任务难度,扩大数据查询的应用场景的技术效果,进而解决了相关技术中由于机器学习模型容易出现欠拟合和泛化能力弱,导致数据查询准确度较差的技术问题。
[0017] 容易注意到的是,上面的通用描述和后面的详细描述仅仅是为了对本申请进行举例和解释,并不构成对本申请的限定。

附图说明

[0018] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0019] 图1是根据本申请实施例的一种用于实现数据查询方法的计算机终端(或移动设备)的硬件结构框图;
[0020] 图2是根据本申请实施例的一种可选的计算机终端作为接收端的示意图;
[0021] 图3是根据本申请实施例1的数据查询方法的流程图;
[0022] 图4是根据本申请实施例的一种可选的数据查询方法的示意图;
[0023] 图5是根据本申请实施例的一种可选的特征化处理的示意图;
[0024] 图6是根据本申请实施例的一种可选的多个预设决策树的示意图;
[0025] 图7是根据本申请实施例2的数据查询方法的流程图;
[0026] 图8是根据本申请实施例的一种可选的操作界面的示意图;
[0027] 图9是根据本申请实施例3的数据查询方法的流程图;
[0028] 图10是根据本申请实施例4的数据查询装置的示意图;
[0029] 图11是根据本申请实施例5的数据查询装置的示意图;
[0030] 图12是根据本申请实施例6的数据查询装置的示意图;
[0031] 图13是根据本申请实施例7的数据查询方法的流程图;
[0032] 图14是根据本申请实施例8的数据查询装置的示意图;
[0033] 图15是根据本申请实施例的一种计算机终端的结构框图。

具体实施方式

[0034] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0035] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0036] 首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
[0037] 查询计划:可以是数据库系统为完成查询而执行的一组步骤,包含了执行该查询所需的所有操作和步骤,如表扫描、索引查找、排序等。查询计划的结构通常被表示为一个由逻辑运算符组成的逻辑语法树,其中每个结点代表一个特定类型的逻辑运算符。
[0038] 数据库Hint:是一种优化查询的技术,可以通过给SQL语句添加特殊的提示信息来指导数据库优化器执行查询操作,上述的提示信息通常包括索引、表连接方式等。
[0039] 特征空间:可以是训练查询计划集合的特征所构成的向量空间。
[0040] 目前,主流的基于学习的查询优化器依据两个步骤来生成查询计划,对于一个SQL查询Q(即上述的查询请求),传统的查询优化器可以生成对应的查询计划 ,并且基于学习的查询优化器通过调整数据库Hint的方式使传统的查询优化器生成一个查询计划集合,上述的Hint可以是使能或禁止某些物理运符、指定连接顺序,或者是放缩基数估计的结果等方式。可以预先定义一个查询计划的执行指标 ,该指标可以是关于查询时间或IO吞吐量的指标,然后使用一个基于学习的指标预测模型 来预测查询计划的执行指标 ,然后从 中选择预测执行指标 最小的查询计划 作为执行计
划。
[0041] 但是,由于基于学习的指标预测模型 容易出现欠拟合和泛化能力弱等问题,导致该模型经常预测出一个错误的执行指标 ,因此基于学习的查询优化器可能找到一个比传统优化器更差的查询集合,也即 ,导致模型性能衰退。
[0042] 为了避免上述问题,本申请提出了一种数据查询方法,可以通过权衡性能衰退和性能增益的变化,确定一个 来代替 。具体而言,可以是可能出现在数据库的全部SQL,和 分别表示整体的性能衰退和性能增益,具体公式如下:
[0043] ,
[0044] 。
[0045] 因此,本申请提供的数据查询方法的目标是最小化 ,其中,平衡了性能衰退的减少和性能增益的损失,取值越大越侧重于维持原有的性能增益,取值越小越侧重于维持数据库系统的稳定性。
[0046] 实施例1
[0047] 根据本申请实施例,提供了一种数据查询方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0048] 本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现数据查询方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备)可以包括一个或多个(图中采用102a,102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置
106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
[0049] 应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
[0050] 存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据查询方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据查询方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器
102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0051] 传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0052] 显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
[0053] 图1示出的硬件结构框图,不仅可以作为上述计算机终端10(或移动设备)的示例性框图,还可以作为上述服务器的示例性框图,一种可选实施例中,图2以框图示出了使用上述图1所示的计算机终端10(或移动设备)作为接收端一种实施例。如图2所示,计算机终端10(或移动设备)可以经由数据网络连接或电子连接到一个或多个客户端20,并为一个或多个客户端提供数据查询功能。一种可选实施例中,上述客户端可以是任意移动计算设备等。数据网络连接可以是局域网连接、广域网连接、因特网连接,或其他类型的数据网络连接。
[0054] 在上述运行环境下,本申请提供了如图3所示的数据查询方法。图3是根据本申请实施例1的数据查询方法的流程图。如图3所示,该方法可以包括如下步骤:
[0055] 步骤S302,在接收到查询请求的情况下,基于查询请求,生成第一查询计划集合。
[0056] 上述的查询请求可以是用户希望对数据库中存储的数据进行查询的请求,在本申请实施例中,查询请求可以是SQL请求。在不同应用场景中,查询请求所查询的数据类型不同,例如,在搜索引擎应用场景中,查询请求所查询的数据可以是互联网中的图像、文本、视频等;又例如,在电商购物场景中,查询请求所查询的数据可以是电商购物平台中的商品;再例如,在教育场景中,查询请求所查询的数据可以是考试成绩、学生信息等。在一种可选的实施例中,用户可以在数据查询页面上点击查询按钮来生成查询请求,该查询请求由用户使用的客户端发送至数据库系统,并由数据库系统执行后续步骤流程。
[0057] 在一种可选的实施例中,为了方便后续进行两次过滤,可以采用基于学习的查询优化器的方式,生成第一查询计划集合,也即,第一查询计划集合为上述的查询计划集合。在另一种可选的实施例中,为了方便后续进行两次过滤,可以同时采用传统的查询优化器和基于学习的查询优化器的方式,生成第一查询计划集合,也即,第一查询计划集合为上述的查询计划 和查询计划集合 。
[0058] 需要说明的是,由于第一查询计划集合可以采用目前的生成查询计划的方案实现,因此,本申请中不再赘述第一查询计划集合的具体实现过程。
[0059] 步骤S304,对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中。
[0060] 上述的第一查询计划可以是包含了训练查询计划集合中没有出现过的特征的特异查询计划,也即,可以是包含了首次出现的特征的高风险查询计划,上述的第一查询计划还可以是包含了训练查询计划集合中出现过的特征的非特异查询计划,也即,可以是不包含首次出现的特征的低风险查询计划。上述的训练查询计划集合用于表征用于对指标预测模型进行训练的查询计划所构成的集合。
[0061] 在一种可选的实施例中,第一查询计划集合可能包含特异查询计划,也可能未包含特异查询计划。在第一查询计划集合包含特异查询计划的情况下,由于特异查询计划包含有训练查询计划集合中未包含的特征,为了避免指标预测模型在对特异查询计划提供一个不准确的执行指标,导致性能衰退。因此,本申请提出了一种粗粒度过滤方式,可以对特异查询计划进行过滤,确定删除或保留具有首次出现的特征的特异查询计划,也即,可以将指标预测模型不能提供准确的执行指标的特异查询计划直接剔除,从而得到第二查询计划集合,并继续执行后续的过滤流程,此时,第二查询计划集合可以包含非特异查询计划和过滤后的特异查询计划。在第一查询计划集合未包含特异查询计划,也即,第一查询计划集合包含非特异查询计划的情况下,无需对第一查询计划集合进行处理,直接将第一查询计划集合作为第二查询计划集合,或者,由于第一查询计划集合未包含特异查询计划,即使进行粗粒度过滤,也不会删除任何查询计划,此时,第二查询计划集合可以包含非特异查询计划。
[0062] 在另一种可选的实施例中,由于指标预测模型结构差、训练方式错误、训练数据偏斜等多种原因,指标预测模型可能会对部分查询计划有比较好的预测精度,而对另一部分查询计划有比较差的预测精度。为了避免上述问题,本申请还提出了一种细粒度过滤方式,在第一查询计划集合未包含特异查询计划的情况下,可以对第一查询集合中的非特异查询计划进行聚类,并通过对每个聚类进行评估,从而确定出指标预测模型可能出现欠拟合的区域,也即,可以确定第一查询计划是否处于欠拟合的区域,进而对第一查询计划集合进行过滤,过滤掉处于欠拟合的区域的第一查询计划,从而得到第二查询计划集合。
[0063] 在又一种可选的实施例中,由于第一查询计划集合可能包含特异查询计划,也可能未包含特异查询计划,可以首先通过粗粒度过滤方式,对特异查询计划进行过滤,得到过滤后的查询计划集合,然后通过细粒度过滤方式,对非特异查询计划和过滤后的特异查询计划进行过滤,得到第二查询计划集合。
[0064] 步骤S306,执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果。
[0065] 上述的目标查询计划可以是从第二查询计划集合中筛选出的执行计划。
[0066] 在一种可选的实施例中,可以通过指标预测模型对第二查询计划集合中的第二查询计划进行执行指标预测,从而筛选出执行指标最小的第二查询计划作为目标查询计划,此时目标查询计划可以作为最终的执行计划发送至执行引擎,执行引擎通过对目标查询计划进行执行,可以从数据库中获取到查询请求对应的查询结果,也即得到用户希望查询的数据,并将查询结果发送给客户端,由客户端展示给用户查看。
[0067] 下面结合图4对本申请一种优选的实施例进行详细说明,如图4所示,为了实现最小化 的目标,本申请提供了一个特异查询计划探索器和分割模型两个组件,其中,特异查询计划探索器负责探索指标预测模型对不同类型的特异查询计划的性能,实现粗粒度过滤;分割模型负责找到模型可能出现欠拟合的区域,实现细粒度过滤。整个处理流程如下:在用户提交SQL查询请求之后,基于学习的查询优化器通过调整数据库Hint的方式生成一个查询计划集合 (即上述的第一查询计划集合),其中,传
统的查询优化器可以如图4中的实心三角的查询计划为 ,其余查询计划如图4中的空心三角所示。特异查询计划探索器组件可以对第一查询计划集合进行粗粒度过滤,具体可以将第一查询计划集合中的特异查询组件进行过滤,过滤掉的特异查询计划不再参与后续的查询计划筛选,剩余查询计划组成了第二查询计划集合。第二查询计划集合可以通过指标预测模型生成相应的执行指标,并通过分割模型进行细粒度过滤,具体可以基于第二查询计划集合中的第二查询计划的结构,对第二查询计划进行过滤,过滤掉执行指标预测可靠性较差的第二查询计划,得到最终的第三查询计划集合。对于第三查询计划集合,可以基于第三查询集合中的第三查询计划的执行指标,选择出最终的执行计划 ,如图4中的斜线三角所示,并交由执行引擎进行执行,从而从数据库中查询到用户需要的数据,生成查询结果。
[0068] 需要说明的是,在执行引擎执行完毕之后,可以基于查询结果对分割模型、指标预测模型、特异查询计划探索器和基于学习的查询优化器进行参数更新。
[0069] 通过本申请上述实施例提供的技术方案,在接收到查询请求的情况下,可以基于查询请求,生成第一查询计划集合,进一步对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,最后执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果,从而实现数据查询的目的。容易注意到的是,第二查询计划集合是对第一查询计划集合中的第一查询计划进行过滤得到的,且第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中,使得第三查询计划集合的确定过程不仅考虑了未出现在训练查询计划集合中的特征,而且可以区分模型欠拟合的区域,从而实现了提高数据查询准确度、提高系统鲁棒性、减低学习任务难度,扩大数据查询的应用场景的技术效果,进而解决了相关技术中由于机器学习模型容易出现欠拟合和泛化能力弱,导致数据查询准确度较差的技术问题。
[0070] 在本申请上述实施例中,在第一查询计划包含的部分特征存在于训练特征中的情况下,对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,包括:对第一查询计划进行编码,得到第一查询计划对应的第一特征;基于第一特征确定第一查询计划的预测准确度指标,其中,预测准确度指标用于表征通过指标预测模型对第一查询计划的执行指标进行预测的准确度;基于预测准确度指标,对第一查询计划进行过滤,得到第二查询计划集合。
[0071] 上述的预测准确度指标可以根据指标预测模型的具体类别来确定,例如,指标预测模型的具体类别是预测代价的模型,则预测准确度指标可以 定义为。预测准确度指标的指标值越大,表明 越接近 ,指标预测模型的
输出结果越准确;相反地,预测准确度指标的指标值越小,表明 越远离 ,指标预测模型的输出结果越不准确。
[0072] 在一种可选的实施例中,在第一查询计划包含的部分特征存在于训练特征中的情况下,也即第一查询计划为特异查询计划的情况下,可以预先收集一些特异查询计划,并利用指标预测模型预测特异查询计划的执行指标,并由人工确认执行指标是否预测准确,从而确定特异查询计划的预测准确度。然后对于第一查询计划集合中的特异查询计划,可以通过相关技术中提供的编码方式对特异查询计划编码成一个特征向量,也即,得到上述的第一特征,然后通过特征匹配的方式,确定特异查询计划的预测准确度指标,进而基于预测准确度指标确定是否对特异查询计划进行过滤,从而得到最终的第二查询计划集合。
[0073] 在另一种可选的实施例中,在第一查询计划包含的部分特征存在于训练特征中的情况下,也即第一查询计划为特异查询计划的情况下,可以预先构建一个准确度预测模型来确定特异查询计划的预测准确度指标,在生成第一查询计划集合之后,可以对特异查询计划进行编码,得到第一特征,然后利用准确度预测模型输出第一特征对应的预测准确度指标,进而基于预测准确度指标确定是否对特异查询计划进行过滤,从而得到最终的第二查询计划集合。
[0074] 需要说明的是,准确度预测模型可以通过如下方式进行构建:首先将训练查询计划集合中的训练查询计划编码成特征向量,然后根据特征向量将特异特征空间划分为一个层次的树形空间,对于树形空间的每个叶结点,首先生成一些新的查询计划,然后通过指标预测模型预测这些查询计划的执行指标,并进一步根据这些查询计划的执行指标的预测准确度指标,来确定每个叶结点的预测准确度指标。
[0075] 还需要说明的是,对特异查询计划进行编码的过程中,主要考虑如下特征:join type,scan type,join relation,filtering predicate,structure。
[0076] 在本申请上述实施例中,基于第一特征确定第一查询计划的预测准确度指标,包括:基于第一特征,从多个第一子空间中确定第一查询计划对应的第一目标子空间,其中,多个第一子空间是通过对预设特征空间进行划分得到的子空间,预设特征空间是基于训练特征对应的特异特征所确定的特征空间,特异特征用于表征训练特征未包含的特征;确定第一目标子空间的预测准确度指标为第一查询计划的预测准确度指标。
[0077] 上述的预设特征空间可以是特异特征空间,也即,由不同特征对应的特异特征集合所确定的特征空间,此处的特异特征集合可以是不同特征未见过的特征所构成的集合。上述的特异特征可以是训练特征中未包含的特征,可选的,可以预先针对不同训练特征,人工构建该训练特征对应的特异特征。
[0078] 在一种可选的实施例中,可以预先采用层次划分的方法将特异特征空间划分为树形结构的空间,其中,每个叶结点都代表一个第一子空间,然后针对每个第一子空间,可以通过生成一些查询计划的方式来评估指标预测模型的性能,从而确定每个第一子空间的预测准确度。在对第一查询计划进行编码,得到第一特征之后,可以确定第一特征所属的第一目标子空间,也即,通过将第一特征与多个第一子空间对应的特异特征进行匹配,从而确定第一目标子空间,进一步可以直接将第一目标子空间的预测准确度作为该第一查询计划的预测准确度指标。
[0079] 需要说明的是,多个第一子空间可以采用如下方式进行划分:首先对训练查询计划集合进行编码,得到每个训练查询计划集合的训练特征,进而对于所有训练特征F和未见过的特异特征集合U,可以递归地将特异特征集合U划分为两个子集,重复上述过程,直至当前划分的特异特征集合的规模小于预设阈值。其中,如果训练特征F是一个字符串特征,可以随机地将特异特征集合U划分为两个等尺寸的子集;如果训练特征F是一个数值特征,可以按照数值大小将特异特征集合U二分为两个子集。
[0080] 在本申请上述实施例中,该方法还包括:基于多个第一子空间对应的训练特征和特异特征,生成多个第一子空间对应的子空间查询计划;通过指标预测模型对子空间查询计划的执行指标进行预测,得到子空间查询计划的预测执行指标;基于预测执行指标,确定多个第一子空间对应的预测准确度指标。
[0081] 在一种可选的实施例中,对于每个第一子空间,都与一个训练特征和划分后的特异特征集合相对应,因此,可以通过一个预设的SQL模型生成子空间查询计划,第一查询计划的特征满足如下条件:第一查询计划的特征从划分后到的特异特征集合中随机选取,第一查询计划的剩余特征从训练特征中随机选取。在生成第一查询计划之后,可以通过指标预测模型预测第一查询计划的执行指标,并计算第一查询计划对应的预测准确度指标,在第一查询计划为多个的情况下,可以获取多个第一查询计划的预测准确度指标的平均值,得到相应第一子空间对应的预测准确度指标。
[0082] 在本申请上述实施例中,基于预测准确度指标,对第一查询计划进行过滤,得到第二查询计划集合,包括:确定预测准确度指标的准确度指标值;在准确度指标值大于第一预设阈值的情况下,确定保留第一查询计划,其中,第二查询计划集合包含该第一查询计划;在准确度指标值小于或等于第一预设阈值的情况下,确定对第一查询计划进行过滤,其中,第二查询计划集合不包含第一查询计划。
[0083] 上述的第一预设阈值可以是预先根据不同数据库所设定的过滤阈值,该阈值用于评估指标预测模型输出的执行指标是否准确,如果预测准确度指标的准确度指标值大于该阈值,表明指标预测模型输出的执行指标准确,如果预测准确度指标的准确度指标值小于或等于该阈值,表明指标预测模型输出的执行指标不准确。
[0084] 在一种可选的实施例中,在确定出特异查询计划的预测准确度指标之后,可以读取该指标的指标值,得到准确度指标值,然后将准确度指标值与预先设定好的第一预设阈值进行比较,如果准确度指标值大于第一预设阈值,表明指标预测模型输出的执行指标准确,也即,指标预测模型可以给特异查询计划一个准确的执行指标,因此,可以保留该特异查询计划,不从第一查询计划集合中剔除该特异查询计划,从而最终得到的第二查询计划集合中包含该特异查询计划;如果准确度指标值小于或等于第一预设阈值,表明指标预测模型输出的执行指标不准确,也即,指标预测模型无法给特异查询计划一个准确的执行指标,因此,需要从第一查询计划集合中剔除该特异查询计划,从而最终得到的第二查询计划集合中并未包含该特异查询计划。
[0085] 在本申请上述实施例中,在第一查询计划包含的全部特征存在于训练特征中的情况下,对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,包括:基于第一查询计划的结构,从多个预设决策树中确定第一查询计划对应的目标决策树,其中,不同预设决策树用于表征不同结构的查询计划;从目标决策树包含的多个结点中,确定第一查询计划对应的目标结点,其中,不同结点用于表征不同的查询计划,不同结点的结点值用于表征不同的查询计划的预测可靠性指标,预测可靠性指标用于表征通过指标预测模型对不同的查询计划的执行指标进行预测的可靠性;基于目标结点对应的预测可靠性指标,对第一查询计划进行过滤,得到第二查询计划集合。
[0086] 上述的第一查询计划的结构可以是由物理操作符组成的结构。上述的多个预设决策树可以是多个经典的决策树,每个预设决策树使用具有相同结构的训练查询计划来建立,实现对同一种结构的训练查询计划进行聚类的目的。预设决策树的建立过程可以是递归地选取合适的特征值将一个结点划分为两个子结点,直到终止条件满足。例如,如图5所示,对于结构为如左上角所示的训练查询计划,可以构建一个如左侧所示的决策树,对于结构为如右上角所示的训练查询计划,可以构建一个如右侧所示的决策树。
[0087] 上述的预测可靠性指标可以根据不同查询计划的预测准确度指标来确定,例如,预测准确度指标 ,则预测可靠性指标 可以定义如下,预测可靠性指标越小,表明 波动越小,指标预测模型的输出结果可靠性越高;相反地,预测可靠性指标越大,表明 波动越大,指标预测模型的输出结果可靠性越低。
[0088] 。
[0089] 在一种可选的实施例中,在第一查询计划包含的全部特征存在于训练特征中的情况下,也即第一查询计划为非特异查询计划的情况下,可以利用训练查询计划集合预先构建多个预设决策树,预设决策树的建立过程是递归地选取合适的特征值去将一个结点划分为两个孩子结点,直到终止条件满足。对于预设决策树中每个叶结点,通过计算指标预测模型对不同查询计划进行执行指标预测的可靠性,来确定每个叶子结点对应的预测可靠性指标。然后对于第一查询计划集合中的第一查询计划,可以基于第一查询计划的结构,确定第一查询计划对应的目标决策树,进一步地,可以通过将第一查询计划与目标决策树不同结点对应的查询进行匹配,确定第一查询计划对应的目标结点,并直接读取目标结点的结点值,确定第一查询计划的预测可靠性指标,进而可以基于预测可靠性指标确定是否对第一查询计划进行过滤,从而得到最终的第一查询计划集合。
[0090] 需要说明的是,在对第一查询集合中的特异查询计划进行过滤之后,同样可以执行上述方法对非特异查询计划和过滤后的特异查询计划进行过滤。
[0091] 在本申请上述实施例中,从目标决策树包含的多个结点中,确定第一查询计划对应的目标结点,包括:基于第一查询计划的结构,对第一查询计划进行特征化处理,得到第一查询计划对应的第二特征;将第二特征与多个结点对应的结点特征进行匹配,得到第二特征对应的目标结点特征;确定目标结点特征对应的结点为目标结点。
[0092] 由于决策树的建立过程是基于特征对结点进行划分的,因此,可以通过特征匹配的方式,实现将第一查询计划与目标决策树的不同结点进行匹配的目的。在一种可选的实施例中,可以通过相关技术中提供的编码方式对第一查询计划进行编码,得到第二特征。在另一种可选的实施例中,由于目标决策树对应的查询计划的结构相同,为了避免通过编码方式生成的第二特征无法对相同结构的查询计划进行划分,本申请提供了一种与编码方式不同的特征化处理方式,考虑到查询计划的结构是一个逻辑语法树,且只考虑了逻辑运算符的名字,因此,可以对第一查询计划的结构中的结点的属性值进行连接,得到第二特征,此处主要考虑以下特征:join type,scan type,join relation,filtering predicate,structure。
[0093] 例如,假设第一查询计划的结构如图6上方的树形结构所示,可以遍历每个叶结点,首先遍历到SeqScan(t0)结点,可以将该结点的两个属性S.type和S.table的属性值连接起来,得到的第二特征为Sequential,t0;然后遍历到IndexScan(t1)结点,可以将该结点的两个属性S.type和S.table的属性值连接起来,得到的第二特征为Sequential,t0,Indexed,t1;进一步遍历到Hash Join t0·c1=t1·c1结点,可以将该结点的三个属性F.col、F.op和F.val的属性值连接起来,得到的第二特征为Sequential,t0,Indexed,t1,t1·c1,<,10;最后遍历到Merge Join t1·c1=t2·c1结点,可以将该结点的两个属性J.typel和J.relation的属性值连接起来,得到的第二特征为Sequential,t0,Indexed,t1,t1·c1,<,10,Merge,t1·c1=t2·c1,如图6下方的第二特征 所示,其他第一查询计划的特征化处理类似,在此不做赘述。
[0094] 在本申请上述实施例中,该方法还包括:获取训练查询计划集合中的子查询计划集合,其中,子查询计划集合包含的子查询计划与第一查询计划具有相同的结构;基于子查询计划的结构,对子查询计划进行特征化处理,得到子查询计划的子特征;对子特征进行划分,生成目标决策树。
[0095] 在一种可选的实施例中,可以基于训练查询计划集合训练得到如图5所示的分割模型,每个预设决策树可以使用具有相同结构的训练查询计划来建立。具体而言,可以基于训练查询计划的结构对训练查询计划进行特征化处理,得到训练查询计划的特征。对于每个预设决策树,初始时,所有子查询计划可以聚集在根结点,然后递归地选取子特征中的目标子特征,将一个结点划分为两个子结点,直到终止条件满足。
[0096] 在本申请上述实施例中,对子特征进行划分,生成预设决策树,包括:确定子特征的分数;获取子特征中最小分数对应的子特征,得到目标子特征;基于目标子特征的类型,将子特征进行划分,生成预设决策树。
[0097] 上述的目标子特征的类型可以是目标子特征对应的子查询计划的类型,具体可以是字符串类型、数值类型等。
[0098] 在一种可选的实施例中,为了选取目标子特征,可以遍历全部的子特征,对于每个子特征,计算用来表示决策树构建收益的分数score,然后选取分数最小的子特征作为目标子特征,如果目标子特征的类型是字符串类型,可以将包含该子特征对应的子查询计划划分到左结点,否则划分到右结点;如果目标子特征的类型是数值类型,可以将子特征小于该目标子特征对应的子查询计划分到左结点,否则划分到右结点。
[0099] 需要说明的是,上述的分数score可以根据 来计算。为了防止过拟合,预设决策树的叶结点对应的子查询计划的数量必须大于预设的阈值,否则中止划分。
[0100] 对于如图5左侧所示的决策树,如果查询计划的第6个结点不是Merge Join,则可以将该查询计划分配到右结点。
[0101] 在本申请上述实施例中,基于目标结点对应的预测可靠性指标,对第一查询计划集合进行过滤,得到第二查询计划集合,包括:确定预测可靠性指标的可靠性指标值;在可靠性指标值大于第二预设阈值的情况下,确定对第一查询计划进行过滤,其中,第二查询计划集合不包含第一查询计划;在可靠性指标值小于或等于第二预设阈值的情况下,确定保留第一查询计划,其中,第二查询计划集合包含第二查询计划。
[0102] 上述的第二预设阈值可以是预先根据不同数据库所设定的过滤阈值,该阈值用于评估指标预测模型输出的执行指标是否可靠,如果预测可靠性指标的可靠性指标值大于该阈值,表明指标预测模型输出的执行指标不可靠,如果预测可靠性指标的可靠性指标值小于或等于该阈值,表明指标预测模型输出的执行指标可靠。
[0103] 在一种可选的实施例中,在确定出第一查询计划的预测可靠性指标之后,可以读取该指标的指标值,得到可靠性指标值,然后将可靠性指标值与预先设定好的第二预设阈值进行比较,如果可靠性指标值大于第一预设阈值,表明指标预测模型输出的执行指标不可靠,也即,指标预测模型无法给第一查询计划一个可靠的执行指标,因此,需要从第一查询计划集合中剔除该第一查询计划,从而最终得到的第二查询计划集合中并未包含该第一查询计划;如果可靠性指标值小于或等于第二预设阈值,表明指标预测模型输出的执行指标可靠,也即,指标预测模型可以给第一查询计划一个可靠的执行指标,因此,可以保留该第一查询计划,不从第二查询计划集合中剔除该第一查询计划,从而最终得到的第二查询计划集合中包含该第一查询计划。
[0104] 在本申请上述实施例中,执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果,包括:通过指标预测模型对第二查询计划集合中的第二查询计划的执行指标进行预测,得到第二查询计划的执行指标;获取第二查询计划集中最小执行指标对应的第二查询计划,得到目标查询计划;执行目标查询计划,得到查询结果。
[0105] 在一种可选的实施例中,对于两次过滤后的第二查询计划集合,可以确定指标预测模型对每个第二查询计划预测得到的执行指标都是准确和可靠的,因此,可以基于执行指标选择一个最小执行指标对应的目标查询计划作为最终的执行计划,此时目标查询计划的执行性能比其他第二查询计划的执行性能好。
[0106] 通过本申请提供的上述技术方案,可以避免大多数的性能衰退,同时对于数据库的整体性能几乎没有负面影响,而且可以很好地适应动态设置,并适用于不同的数据库系统。上述技术方案不仅可以应用于查询优化任务,还可以适用于其他类型的任务,例如,索引推荐、基数估计等,此处的其他类型的任务使用的模型需要满足输入是一个或多个查询计划,输出是一个值的范式。
[0107] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0108] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
[0109] 实施例2
[0110] 根据本申请实施例,还提供了一种数据查询方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0111] 图7是根据本申请实施例2的数据查询方法的流程图。如图7所示,该方法可以包括如下步骤:
[0112] 步骤S702,响应作用于操作界面上的输入指令,在操作界面上显示查询请求。
[0113] 上述的操作界面可以是数据管理系统提供给用户的交互界面,用户可以通过在操作界面上进行操作,达到提交查询请求,查看查询结果等功能。例如,操作界面可以如图8所示。
[0114] 在一种可选的实施例中,当用户需要查询数据时,用户可以在操作界面上进行操作,生成输入指令,从而基于输入指令,可以确定用户提供的查询请求,并且可以显示在操作界面上供用户查看。例如,对于如图8所示的操作界面,用户可以在输入框内输入需要查询的数据,从而客户端后台可以基于输入框内输入的数据来生成查询请求,并显示在第一显示区域内由用户进行确认。
[0115] 步骤S704,响应作用于操作界面上的数据查询指令,在操作界面上显示查询请求对应的查询结果,其中,查询结果是通过执行第二查询计划集合中的目标查询计划得到的,第二查询计划集合是对第一查询计划集合中的第一查询计划进行过滤得到的,第一查询计划集合是基于查询请求生成的,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中。
[0116] 上述的数据查询指令可以是用户通过在操作界面上进行操作所生成的指令,用于指示数据库系统基于查询请求进行数据查询。
[0117] 在一种可选的实施例中,用户可以在操作界面上进行操作,生成数据查询指令,例如,对于如图8所示的操作界面,用户可以通过点击输入框下面的“查询”按钮来生成数据查询指令,从而客户端后台可以将查询请求发送给数据库系统,由数据库系统生成第一查询计划集合,并通过不同粒度过滤的方式得到第二查询计划集合,从而由执行引擎基于第二查询计划集合中的目标查询进行数据查询,查询结果可以返回给客户端,并且可以显示在操作界面上供用户查看,例如,对于如图8所示的操作界面,查询结果可以显示在第二显示区域内由用户查看。
[0118] 需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
[0119] 实施例3
[0120] 根据本申请实施例,还提供了一种数据查询方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0121] 图9是根据本申请实施例3的数据查询方法的流程图。如图9所示,该方法可以包括如下步骤:
[0122] 步骤S902,通过调用第一接口获取查询请求,其中,第一接口包括第一参数,第一参数的参数值为查询请求。
[0123] 上述的第一接口可以是数据库系统与客户端之间进行数据交互的接口,目前数据库系统可以部署在云端,并通过SAAS服务的方式为用户提供服务。为了确保云服务器可以获取到查询请求,上述的第一接口可以是客户端给云服务器发送数据的接口。
[0124] 步骤S904,基于查询请求,生成第一查询计划集合。
[0125] 步骤S906,对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中。
[0126] 步骤S908,执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果。
[0127] 步骤S910,通过调用第二接口输出查询结果,其中,第二接口包括第二参数,第二参数的参数值为查询结果。
[0128] 与上述的第一接口类似,上述的第二接口同样可以是数据库系统与客户端之间进行数据交互的接口。为了确保客户端可以获取到查询结果,上述的第二接口可以是云服务器给客户端发送数据的接口。
[0129] 需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
[0130] 实施例4
[0131] 根据本申请实施例,还提供了一种用于实施上述实施例1中的数据查询方法的数据查询装置,如图10所示,该装置10包括:计划生成模块1002、计划过滤模块1004和计划执行模块1006。
[0132] 其中,计划生成模块1002用于在接收到查询请求的情况下,基于查询请求,生成第一查询计划集合;计划过滤模块1004,用于对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;计划执行模块1006用于执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果。
[0133] 此处需要说明的是,上述计划生成模块1002、计划过滤模块1004和计划执行模块1006对应于实施例1中的步骤S302至步骤S306,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块或单元可以是存储在存储器(例如,存储器104)中并由一个或多个处理器(例如,处理器102a,102b,……,
102n)处理的硬件组件或软件组件,上述模块也可以作为装置的一部分可以运行在实施例1提供的计算机终端10中。
[0134] 在本申请上述实施例中,计划过滤模块1004包括:编码单元、指标确定单元和第一过滤单元。
[0135] 其中,编码单元用于在第一查询计划包含的部分特征存在于所述训练特征中的情况下,对第一查询计划进行编码,得到第一查询计划对应的第一特征;指标确定单元用于基于第一特征确定第一查询计划的预测准确度指标,其中,预测准确度指标用于表征通过指标预测模型对第一查询计划的执行指标进行预测的准确度;第一过滤单元用于基于预测准确度指标,对第一查询计划进行过滤,得到第二查询计划集合。
[0136] 在本申请上述实施例中,指标确定单元包括:空间确定子单元和指标确定子单元。
[0137] 其中,空间确定子单元用于基于第一特征,从多个第一子空间中确定第一查询计划对应的第一目标子空间,其中,多个第一子空间是通过对预设特征空间进行划分得到的子空间,预设特征空间是基于训练特征对应的特异特征所确定的特征空间,特异特征用于表征训练特征未包含的特征;指标确定子单元用于确定第一目标子空间的预测准确度指标为第一查询计划的预测准确度指标。
[0138] 在本申请上述实施例中,该装置还包括:指标预测模块和指标确定模块。
[0139] 其中,计划生成模块1002还用于基于多个第一子空间对应的训练特征和特异特征,生成多个第一子空间对应的子空间查询计划;指标预测模块用于通过指标预测模型对子空间查询计划的执行指标进行预测,得到子空间查询计划的预测执行指标;指标确定模块用于基于预测执行指标,确定多个第一子空间对应的预测准确度指标。
[0140] 在本申请上述实施例中,第一过滤单元包括:第一确定子单元、第一保留子单元和第一过滤子单元。
[0141] 其中,第一确定子单元用于确定预测准确度指标的准确度指标值;第一保留子单元用于在准确度指标值大于第一预设阈值的情况下,确定保留第一查询计划,其中,第二查询计划集合包含第一查询计划;第一过滤子单元用于在准确度指标值小于或等于第一预设阈值的情况下,确定对第一查询计划进行过滤,其中,第二查询计划集合不包含第一查询计划。
[0142] 在本申请上述实施例中,计划过滤模块1004包括:决策树确定单元、结点确定单元和第二过滤单元。
[0143] 其中,决策树确定单元用于在第一查询计划包含的全部特征存在于训练特征中的情况下,基于第一查询计划的结构,从多个预设决策树中确定第一查询计划对应的目标决策树,其中,不同预设决策树用于表征不同结构的查询计划;结点确定单元用于从目标决策树包含的多个结点中,确定第一查询计划对应的目标结点,其中,不同结点用于表征不同的查询计划,不同结点的结点值用于表征不同的查询计划的预测可靠性指标,预测可靠性指标用于表征通过指标预测模型对不同的查询计划的执行指标进行预测的可靠性;第二过滤单元用于基于目标结点对应的预测可靠性指标,对第一查询计划进行过滤,得到第二查询计划集合。
[0144] 在本申请上述实施例中,结点确定单元包括:特征化子单元、匹配子单元和结点确定子单元。
[0145] 其中,特征化子单元用于基于第一查询计划的结构,对第一查询计划进行特征化处理,得到第一查询计划对应的第二特征;匹配子单元用于将第二特征与多个结点对应的结点特征进行匹配,得到第二特征对应的目标结点特征;结点确定子单元用于确定目标结点特征对应的结点为目标结点。
[0146] 在本申请上述实施例中,特征化子单元还用于对第一查询计划的结构中的结点的属性值进行连接,得到第二特征。
[0147] 在本申请上述实施例中,该装置还包括:计划获取模块,特征化模块和决策树生成模块。
[0148] 其中,计划获取模块用于获取训练查询计划集合中的子查询计划集合,其中,子查询计划集合包含的子查询计划与第一查询计划具有相同的结构;特征化模块用于基于子查询计划的结构,对子查询计划进行特征化处理,得到子查询计划的子特征;决策树生成模块用于对子特征进行划分,生成目标决策树。
[0149] 在本申请上述实施例中,决策树生成模块包括:分数确定单元、特征确定单元和特征划分单元。
[0150] 其中,分数确定单元用于确定子特征的分数;特征确定单元用于获取子特征中最小分数对应的子特征,得到目标子特征;特征划分单元用于基于目标子特征的类型,将子特征进行划分,生成预设决策树。
[0151] 在本申请上述实施例中,第二过滤单元包括:第二确定子单元、第二保留子单元和第二过滤子单元。
[0152] 其中,第二确定子单元用于确定预测可靠性指标的可靠性指标值;第二过滤子单元用于在可靠性指标值大于第二预设阈值的情况下,确定对第一查询计划进行过滤,其中,第二查询计划集合不包含第一查询计划;第二保留子单元用于在可靠性指标值小于或等于第二预设阈值的情况下,确定保留第一查询计划,其中,第二查询计划集合包含第一查询计划。
[0153] 在本申请上述实施例中,计划执行模块包括:指标预测单元、计划获取单元和计划执行单元。
[0154] 其中,指标预测单元用于通过指标预测模型对第二查询计划集合中的第二查询计划的执行指标进行预测,得到第二查询计划的执行指标;计划获取单元用于获取第二查询计划集中最小执行指标对应的第二查询计划,得到目标查询计划;计划执行单元用于执行目标查询计划,得到查询结果。
[0155] 需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
[0156] 实施例5
[0157] 根据本申请实施例,还提供了一种用于实施上述实施例2中的数据查询方法的数据查询装置,如图11所示,该装置11包括:第一显示模块1102和第二显示模块1104。
[0158] 其中,第一显示模块1102用于响应作用于操作界面上的输入指令,在操作界面上显示查询请求;第二显示模块1104用于响应作用于操作界面上的数据查询指令,在操作界面上显示查询请求对应的查询结果,其中,查询结果是通过执行第二查询计划集合中的目标查询计划得到的,第二查询计划集合是对第一查询计划集合中的第一查询计划进行过滤得到的,第一查询计划集合是基于查询请求生成的,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中。
[0159] 此处需要说明的是,上述第一显示模块1102和第二显示模块1104对应于实施例2中的步骤S702至步骤S704,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块或单元可以是存储在存储器(例如,存储器104)中并由一个或多个处理器(例如,处理器102a,102b,……,102n)处理的硬件组件或软件组件,上述模块也可以作为装置的一部分可以运行在实施例1提供的计算机终端10中。
[0160] 实施例6
[0161] 根据本申请实施例,还提供了一种用于实施上述实施例3中的数据查询方法的数据查询装置,如图12所示,该装置12包括:请求获取模块1202、计划生成模块1204、计划过滤模块1206、计划执行模块1208和结果输出模块1210。
[0162] 其中,请求获取模块1202用于通过调用第一接口获取查询请求,其中,第一接口包括第一参数,第一参数的参数值为查询请求;计划生成模块1204用于基于查询请求,生成第一查询计划集合;计划过滤模块1026用于对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;计划执行模块1208用于执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果;结果输出模块1210用于通过调用第二接口输出查询结果,其中,第二接口包括第二参数,第二参数的参数值为查询结果。
[0163] 此处需要说明的是,上述请求获取模块1202、计划生成模块1204、计划过滤模块1206、计划执行模块1208和结果输出模块1210对应于实施例3中的步骤S902至步骤S910,五个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。
需要说明的是,上述模块或单元可以是存储在存储器(例如,存储器104)中并由一个或多个处理器(例如,处理器102a,102b,……,102n)处理的硬件组件或软件组件,上述模块也可以作为装置的一部分可以运行在实施例1提供的计算机终端10中。
[0164] 实施例7
[0165] 根据本申请实施例,还提供了一种数据查询方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0166] 图13是根据本申请实施例7的数据查询方法的流程图。如图13所示,该方法可以包括如下步骤:
[0167] 步骤S1302,在接收到物品查询请求的情况下,基于物品查询请求,生成第一查询计划集合,其中,物品查询请求用于表征对在线购物平台中的物品进行查询的请求。
[0168] 上述的物品查询请求可以是用户在电商场景下,对电商平台中的商品进行查询的请求,例如,可以包括但不限于:用户希望查询的商品名称、卖家名称、商品属性等。
[0169] 在一种可选的实施例中,用户在电商平台进行购物的过程中,可以在交互界面中的搜索框内输入商品名称,从而生成相应的物品查询请求。物品查询请求的具体生成方式在此不做赘述。
[0170] 步骤S1304,对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中。
[0171] 步骤S1306,执行第二查询计划集合中的目标查询计划,得到物品查询请求对应的目标物品。
[0172] 上述的目标物品可以是电商场景下,在电商平台中售卖的商品。
[0173] 需要说明的是,在电商场景下,由于商品并未真实存在于电商平台中,因此,物品查询请求对应的查询结果可以包括但不限于:目标物品的名称、购买链接、图像等。
[0174] 需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
[0175] 实施例8
[0176] 根据本申请实施例,还提供了一种用于实施上述实施例1中的数据查询方法的数据查询装置,如图14所示,该装置14包括:计划生成模块1402、计划过滤模块1404和计划执行模块1406。
[0177] 其中,计划生成模块1402用于在接收到物品查询请求的情况下,基于物品查询请求,生成第一查询计划集合,其中,物品查询请求用于表征对在线购物平台中的物品进行查询的请求;计划过滤模块1404,用于对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;计划执行模块1406用于执行第二查询计划集合中的目标查询计划,得到物品查询请求对应的目标物品。
[0178] 此处需要说明的是,上述计划生成模块1402、计划过滤模块1404和计划执行模块1406对应于实施例7中的步骤S1302至步骤S1306,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块或单元可以是存储在存储器(例如,存储器104)中并由一个或多个处理器(例如,处理器102a,
102b,……,102n)处理的硬件组件或软件组件,上述模块也可以作为装置的一部分可以运行在实施例1提供的计算机终端10中。
[0179] 实施例9
[0180] 本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
[0181] 可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
[0182] 在本实施例中,上述计算机终端可以执行数据查询方法中以下步骤的程序代码:在接收到查询请求的情况下,基于查询请求,生成第一查询计划集合;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果。
[0183] 可选地,图15是根据本申请实施例的一种计算机终端的结构框图。如图15所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1502、存储器1504、存储控制器、以及外设接口,其中,外设接口与射频模块、音频模块和显示器连接。
[0184] 其中,存储器可用于存储软件程序以及模块,如本申请实施例中的数据查询方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据查询方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0185] 处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:在接收到查询请求的情况下,基于查询请求,生成第一查询计划集合;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果。
[0186] 可选的,上述处理器还可以执行如下步骤的程序代码:在第一查询计划包含的部分特征存在于训练特征中的情况下,对第一查询计划进行编码,得到第一查询计划对应的第一特征;基于第一特征确定第一查询计划的预测准确度指标,其中,预测准确度指标用于表征通过指标预测模型对第一查询计划的执行指标进行预测的准确度;基于预测准确度指标,对第一查询计划进行过滤,得到第二查询计划集合。
[0187] 可选的,上述处理器还可以执行如下步骤的程序代码:基于第一特征,从多个第一子空间中确定第一查询计划对应的第一目标子空间,其中,多个第一子空间是通过对预设特征空间进行划分得到的子空间,预设特征空间是基于训练特征对应的特异特征所确定的特征空间,特异特征用于表征训练特征未包含的特征;确定第一目标子空间的预测准确度指标为第一查询计划的预测准确度指标。
[0188] 可选的,上述处理器还可以执行如下步骤的程序代码:基于多个第一子空间对应的训练特征和特异特征,生成多个第一子空间对应的子空间查询计划;通过指标预测模型对子空间查询计划的执行指标进行预测,得到子空间查询计划的预测执行指标;基于预测执行指标,确定多个第一子空间对应的预测准确度指标。
[0189] 可选的,上述处理器还可以执行如下步骤的程序代码:确定预测准确度指标的准确度指标值;在准确度指标值大于第一预设阈值的情况下,确定保留第一查询计划,其中,第二查询计划集合包含第一查询计划;在准确度指标值小于或等于第一预设阈值的情况下,确定对第一查询计划进行过滤,其中,第二查询计划集合不包含第一查询计划。
[0190] 可选的,上述处理器还可以执行如下步骤的程序代码:在第一查询计划包含的全部特征存在于训练特征中的情况下,基于第一查询计划的结构,从多个预设决策树中确定第一查询计划对应的目标决策树,其中,不同预设决策树用于表征不同结构的查询计划;从目标决策树包含的多个结点中,确定第一查询计划对应的目标结点,其中,不同结点用于表征不同的查询计划,不同结点的结点值用于表征不同的查询计划的预测可靠性指标,预测可靠性指标用于表征通过指标预测模型对不同的查询计划的执行指标进行预测的可靠性;基于目标结点对应的预测可靠性指标,对第一查询计划集合进行过滤,得到第二查询计划集合。
[0191] 可选的,上述处理器还可以执行如下步骤的程序代码:基于第一查询计划的结构,对第一查询计划进行特征化处理,得到第一查询计划对应的第二特征;将第二特征与多个结点对应的结点特征进行匹配,得到第二特征对应的目标结点特征;确定目标结点特征对应的结点为目标结点。
[0192] 可选的,上述处理器还可以执行如下步骤的程序代码:对第一查询计划的结构中的结点的属性值进行连接,得到第二特征。
[0193] 可选的,上述处理器还可以执行如下步骤的程序代码:获取训练查询计划集合中的子查询计划集合,其中,子查询计划集合包含的子查询计划与第一查询计划具有相同的结构;基于子查询计划的结构,对子查询计划进行特征化处理,得到子查询计划的子特征;对子特征进行划分,生成目标决策树。
[0194] 可选的,上述处理器还可以执行如下步骤的程序代码:确定子特征的分数;获取子特征中最小分数对应的子特征,得到目标子特征;基于目标子特征的类型,将子特征进行划分,生成预设决策树。
[0195] 可选的,上述处理器还可以执行如下步骤的程序代码:确定预测可靠性指标的可靠性指标值;在可靠性指标值大于第二预设阈值的情况下,确定对第一查询计划进行过滤,其中,第二查询计划集合不包含第一查询计划;在可靠性指标值小于或等于第二预设阈值的情况下,确定保留第一查询计划,其中,第二查询计划集合包含第一查询计划。
[0196] 可选的,上述处理器还可以执行如下步骤的程序代码:通过指标预测模型对第二查询计划集合中的第二查询计划的执行指标进行预测,得到第二查询计划的执行指标;获取第二查询计划集中最小执行指标对应的第二查询计划,得到目标查询计划;执行目标查询计划,得到查询结果。
[0197] 处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:响应作用于操作界面上的输入指令,在操作界面上显示查询请求;响应作用于操作界面上的数据查询指令,在操作界面上显示查询请求对应的查询结果,其中,查询结果是通过执行第二查询计划集合中的目标查询计划得到的,第二查询计划集合是对第一查询计划集合中的第一查询计划进行过滤得到的,第一查询计划集合是基于查询请求生成的,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中。
[0198] 处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:通过调用第一接口获取查询请求,其中,第一接口包括第一参数,第一参数的参数值为查询请求;基于查询请求,生成第一查询计划集合;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果;通过调用第二接口输出查询结果,其中,第二接口包括第二参数,第二参数的参数值为查询结果。
[0199] 处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:在接收到物品查询请求的情况下,基于物品查询请求,生成第一查询计划集合,其中,物品查询请求用于表征对在线购物平台中的物品进行查询的请求;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到物品查询请求对应的目标物品。
[0200] 采用本申请实施例,提供了一种数据查询方案。在接收到查询请求的情况下,可以基于查询请求,生成第一查询计划集合,进一步对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,最后执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果,从而实现数据查询的目的。容易注意到的是,第二查询计划集合是对第一查询计划集合中的第一查询计划进行过滤得到的,且第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中,使得第三查询计划集合的确定过程不仅考虑了未出现在训练查询计划集合中的特征,而且可以区分模型欠拟合的区域,从而实现了提高数据查询准确度、提高系统鲁棒性、减低学习任务难度,扩大数据查询的应用场景的技术效果,进而解决了相关技术中由于机器学习模型容易出现欠拟合和泛化能力弱,导致数据查询准确度较差的技术问题。
[0201] 本领域普通技术人员可以理解,图15所示的结构仅为示意,计算机终端也可以是智能手机(如 、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图15其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图15中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图15所示不同的配置。
[0202] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read‑Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
[0203] 实施例10
[0204] 本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据查询方法所执行的程序代码。
[0205] 可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
[0206] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在接收到查询请求的情况下,基于查询请求,生成第一查询计划集合;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果。
[0207] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在第一查询计划包含的部分特征存在于训练特征中的情况下,对第一查询计划进行编码,得到特异查询计划对应的第一特征;基于第一特征确定第一查询计划的预测准确度指标,其中,预测准确度指标用于表征通过指标预测模型对第一查询计划的执行指标进行预测的准确度;基于预测准确度指标,对第一查询计划进行过滤,得到第二查询计划集合。
[0208] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于第一特征,从多个第一子空间中确定第一查询计划对应的第一目标子空间,其中,多个第一子空间是通过对预设特征空间进行划分得到的子空间,预设特征空间是基于训练特征对应的特异特征所确定的特征空间,特异特征用于表征训练特征未包含的特征;确定第一目标子空间的预测准确度指标为第一查询计划的预测准确度指标。
[0209] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于多个第一子空间对应的训练特征和特异特征,生成多个第一子空间对应的子空间查询计划;通过指标预测模型对子空间查询计划的执行指标进行预测,得到子空间查询计划的预测执行指标;基于预测执行指标,确定多个第一子空间对应的预测准确度指标。
[0210] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:确定预测准确度指标的准确度指标值;在准确度指标值大于第一预设阈值的情况下,确定保留第一查询计划,其中,第二查询计划集合包含第一查询计划;在准确度指标值小于或等于第一预设阈值的情况下,确定对第一查询计划进行过滤,其中,第二查询计划集合不包含第一查询计划。
[0211] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在第一查询计划包含的全部特征存在于训练特征中的情况下,基于第一查询计划的结构,从多个预设决策树中确定第一查询计划对应的目标决策树,其中,不同预设决策树用于表征不同结构的查询计划;从目标决策树包含的多个结点中,确定第一查询计划对应的目标结点,其中,不同结点用于表征不同的查询计划,不同结点的结点值用于表征不同的查询计划的预测可靠性指标,预测可靠性指标用于表征通过指标预测模型对不同的查询计划的执行指标进行预测的可靠性;基于目标结点对应的预测可靠性指标,对第一查询计划集合进行过滤,得到第二查询计划集合。
[0212] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于第一查询计划的结构,对第一查询计划进行特征化处理,得到第一查询计划对应的第二特征;将第二特征与多个结点对应的结点特征进行匹配,得到第二特征对应的目标结点特征;确定目标结点特征对应的结点为目标结点。
[0213] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:对第一查询计划的结构中的结点的属性值进行连接,得到第二特征。
[0214] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取训练查询计划集合中的子查询计划集合,其中,子查询计划集合包含的子查询计划与第一查询计划具有相同的结构;基于子查询计划的结构,对子查询计划进行特征化处理,得到子查询计划的子特征;对子特征进行划分,生成目标决策树。
[0215] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:确定子特征的分数;获取子特征中最小分数对应的子特征,得到目标子特征;基于目标子特征的类型,将子特征进行划分,生成预设决策树。
[0216] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:确定预测可靠性指标的可靠性指标值;在可靠性指标值大于第二预设阈值的情况下,确定对第一查询计划进行过滤,其中,第二查询计划集合不包含第一查询计划;在可靠性指标值小于或等于第二预设阈值的情况下,确定保留第一查询计划,其中,第二查询计划集合包含第一查询计划。
[0217] 可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:通过指标预测模型对第二查询计划集合中的第二查询计划的执行指标进行预测,得到第二查询计划的执行指标;获取第二查询计划集中最小执行指标对应的第二查询计划,得到目标查询计划;执行目标查询计划,得到查询结果。
[0218] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:响应作用于操作界面上的输入指令,在操作界面上显示查询请求;响应作用于操作界面上的数据查询指令,在操作界面上显示查询请求对应的查询结果,其中,查询结果是通过执行第二查询计划集合中的目标查询计划得到的,第二查询计划集合是对第一查询计划集合中的第一查询计划进行过滤得到的,第一查询计划集合是基于查询请求生成的,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中。
[0219] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过调用第一接口获取查询请求,其中,第一接口包括第一参数,第一参数的参数值为查询请求;基于查询请求,生成第一查询计划集合;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到查询请求对应的查询结果;通过调用第二接口输出查询结果,其中,第二接口包括第二参数,第二参数的参数值为查询结果。
[0220] 可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在接收到物品查询请求的情况下,基于物品查询请求,生成第一查询计划集合,其中,物品查询请求用于表征对在线购物平台中的物品进行查询的请求;对第一查询计划集合中的第一查询计划进行过滤,得到第二查询计划集合,其中,第一查询计划包含的部分或全部特征存在于训练查询计划集合中包含的训练特征中;执行第二查询计划集合中的目标查询计划,得到物品查询请求对应的目标物品。
[0221] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0222] 在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0223] 在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0224] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0225] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0226] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0227] 以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。