【技术实现步骤摘要】
一种基于离线学习历史查询预测未来查询的近似查询方法
本专利技术属于数据库
,具体涉及一种基于离线学习历史查询预测未来查询的近似查询方法。
技术介绍
社交媒体、移动设备和无线传感器正以前所未有的速度产生大龄的时空数据,大数据上的聚合查询已经成为许多决策支持系统的基础。传统数据库以阻塞的方式处理数据查询,在用户提交查询后经过很长时间才能返回一个精确的结果,因此查询效率低下。一方面,对用户而言,返回一个精确的结果所需的查询时间是难以接受的。另一方面,决策支持系统在很多场景下不需要一个完全精确的答案,只要近似结果和真实结果能做出相同的决策即可。用户更倾向于选择一个不完全精确但是非常快速的答案。近似查询已经成为处理大数据和当今决策支持系统严格响应时间要求的一个经济高效的方法。近年来的近似查询技术通常是基于采样、草图和摘要等方法获取一个较小的样本或特征来表示原始数据。这些方法的准确性取决于两个方面,一是样本数据的随机性,只有在确保样本选择完全随机时,用于估计最后结果的方法才具有统计意义。另一个就是估计方法的有效性。既然所有 ...
【技术保护点】
1.一种基于离线学习历史查询预测未来查询的近似查询方法,该方法将查询和估计结果作为特征,真实结果作为标签,利用机器学习方法进行离线训练,得到底层数据分布的模型,当有新的查询到来时,通过离线学习的模型预测其结果,/n步骤如下:/n第1、离线学习历史查询对底层数据分布建模/n第1.1、将复杂的SQL查询拆分为简单查询,/n第1.2、提取SQL查询和近似结果中包含的特征,/n第1.3、利用历史查询、近似结果和真实结果对底层数据分布建模;/n第2、在线预测新到来查询的结果/n第2.1、将新到来的查询拆分为简单查询,/n第2.2、为每个简单查询在线预测查询结果,/n第2.3、将简单查 ...
【技术特征摘要】
1.一种基于离线学习历史查询预测未来查询的近似查询方法,该方法将查询和估计结果作为特征,真实结果作为标签,利用机器学习方法进行离线训练,得到底层数据分布的模型,当有新的查询到来时,通过离线学习的模型预测其结果,
步骤如下:
第1、离线学习历史查询对底层数据分布建模
第1.1、将复杂的SQL查询拆分为简单查询,
第1.2、提取SQL查询和近似结果中包含的特征,
第1.3、利用历史查询、近似结果和真实结果对底层数据分布建模;
第2、在线预测新到来查询的结果
第2.1、将新到来的查询拆分为简单查询,
第2.2、为每个简单查询在线预测查询结果,
第2.3、将简单查询的预测结果合并输出最终的预测结果。
2.根据权利要求1所述的基于离线学习历史查询预测未来查询的近似查询方法,其特征是:
步骤第1.1中,聚集查询q是具有如下形式的一个SQL查询,
SELECTagg(ai)
FROMrelationr
WHEREconditionc
其中:
SELECT语句用于从数据表中选取数据,结果被存储在一个结果表中;
agg为查询的聚合类型,它可以是SUM、COUNT和AVG三种函数中的一种,SUM()函数返回数值列的总数(总额),COUNT()函数返回匹配指定条件的行数,AVG()函数返回数值列的平均值,其中NULL值不包含在计算中;
ai为数据表中的某一列,该列必须是数值类型的;
FROM语句用于指定数据表;
relationr为数据库中的一张关系表,它可以是一个单独的事实表,也可以是两个或多个事实表经过连接操作得到的一张关系表;
WHERE语句用于有条件地从表中选取数据;
conditionc是WHERE语句后面的条件语句,每个条件可以用一个三元组attribute、operatot、value表示,其中attribute为列名称,operatot为运算符,value为值,这其中包含了GROUP-BY子句转化后新添加的条件。
3.根据权利要求1所述的基于离线学习历史查询预测未来查询的近似查询方法,其特征是:
步骤第1.1中,拆分的规则如下:
如果查询的SELECT子句中包含nagg个聚合函数,那么该查询会被分解为nagg个简单查询,每个简单查询仅包含其中的一个聚合函数;
如果查询中包含GROUP-BY子句,假设GROUP-BY后的分组列共有ngrp个不同的取值,那么该查询会被分解为ngrp个简单查询,每个简单查询的WHERE子句添加一个新的条件,对应于原查询的ngrp个不同取值中的一个过滤条件。
4.根据权利要求1所述的基于离线学习历史查询预测未来查询的近似查询方法,其特征是:
步骤第第1.2中,将复杂查询拆分为简...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。