一种查询语句公共部分的提取方法及装置制造方法及图纸

技术编号:11200970 阅读:96 留言:0更新日期:2015-03-26 08:32
一种查询语句公共部分的提取方法及装置;所述方法包括:将查询语句划分为一个或多个查询层次,一个查询层次为进行一次查询操作的查询子句;分别根据各所述查询层次中查询对象的过滤特征和流向特征抽象出各所述查询层次的特征向量;采用预定算法分别对各所述查询层次的所述特征向量进行计算,得到各所述查询层次的特征值;统计各所述特征值的重复次数,选取重复次数符合预定条件的所述特征值作为公共部分。本申请能给有效检测不定时增长的海量查询语句中的公共部分。

【技术实现步骤摘要】
【专利摘要】一种查询语句公共部分的提取方法及装置;所述方法包括:将查询语句划分为一个或多个查询层次,一个查询层次为进行一次查询操作的查询子句;分别根据各所述查询层次中查询对象的过滤特征和流向特征抽象出各所述查询层次的特征向量;采用预定算法分别对各所述查询层次的所述特征向量进行计算,得到各所述查询层次的特征值;统计各所述特征值的重复次数,选取重复次数符合预定条件的所述特征值作为公共部分。本申请能给有效检测不定时增长的海量查询语句中的公共部分。【专利说明】一种查询语句公共部分的提取方法及装置
本专利技术涉及网络领域,尤其涉及一种查询语句公共部分的提取方法及装置。
技术介绍
近年来由于互联网、云计算、移动和物联网的迅猛发展,大数据技术(Big Data)逐 渐成为学术界和工业界共同关注的研究热点。几乎无所不在的移动设备、RFID、无线传感器 等每分每秒都在产生数据,而数以亿计的互联网服务也时时刻刻在产生巨量的交互信息。 因之而生的业务需求和竞争压力对数据处理的实时性、有效性提出了更高的要求。 当今越来越多的互联网公司采用大集群来进行海量数据分析。这些任务通常被写 成类SQL (Structured Query Language,结构化查询语言)的语句,并通过类Hive (-种数 据仓库工具)的数据分析工具翻译为MapReduce (-种编程模型)作业,最终被分布式集群 处理和执行。由于业务需要,诸多公司通常维护一批数量巨大、结构复杂、运行耗时的类SQL 查询语句来完成大数据分析任务从而生成例行报表。这个集合是参数化(parameteric)和 回归化(recurring)的,并且不定时地会有新的语句加入到该集合中,最终被周期性地运 行。这样的语句集合称为回归查询集(recurring query set)。 回归查询集中大量存在结构相似,数据共享的公共部分。数据库领域中传统的多 重查询优化MQO (Multiple Query Optimization)问题通过复用多重语句间的公共部分来 提高查询效率。但此类解决办法(主要是启发式和遗传算法)并不适用于回归查询集这种 "大量"语句并"不定时"增长的情况。 随着云计算的日渐流行,云系统中的MQO逐渐成为学术及工业界的研究热点。当 前在企业级离线数据处理中,每天需要完成大量的SQL语句作业,以一大型网站离线数据 处理ODPS (Open Data Processing Service,开放数据处理服务)部门为例,其支持的生产 集群上,每天大约有30, 000条SQL语句需要执行。值得注意的是,这些SQL语句所构成的 集合具有数量多、结构复杂、语句变动小的特点。即符合上文所说的回归查询集的特点。如 何在海量查询语句中检测、共享和重用公共部分极具挑战性。 目前多重语句优化问题的解决办法(主要是启发式和遗传算法)并不适用于回归 查询集这种"大量"语句并"不定时"增长的情况。
技术实现思路
本申请要解决的技术问题是如何有效检测不定时增长的海量查询语句中的公共 部分。 为了解决上述问题,本申请提供了一种查询语句公共部分的提取方法,包括: 将查询语句划分为一个或多个查询层次,一个查询层次为进行一次查询操作的查 询子句; 分别根据各所述查询层次中查询对象的过滤特征和流向特征抽象出各所述查询 层次的特征向量; toon] 采用预定算法分别对各所述查询层次的所述特征向量进行计算,得到各所述查询 层次的特征值; 统计各所述特征值的重复次数,选取重复次数符合预定条件的所述特征值作为公 共部分。 进一步地,所述查询对象为查询语句中的行变换和源追溯操作; 所述过滤特征是针对一个所述查询层次的行相关的所有过滤操作特征;所述流向 特征是针对一个所述查询层次的所有数据流向特征。 进一步地,所述统计各特征值的重复次数,选取重复次数符合预定条件的特征值 作为公共部分的步骤包括: 统计已有的查询语句中各所述查询层次的所述特征值,得到各所述特征值的重复 次数作为统计结果; 当加入新的查询语句时,将所述新的查询语句中各所述查询层次的所述特征值的 重复次数与所述统计结果中相应特征值的重复次数相加,用相加后的重复次数更新所述统 计结果;在所述统计结果中,选取重复次数符合预定条件的特征值作为公共部分的特征值。 进一步地,所述重复次数符合预定条件的特征值是指所述重复次数最高的N个所 述特征值,或是指所述重复次数大于预定阈值的一个或多个所述特征值;其中N为正整数, 表示公共部分的特征值的预定个数。 进一步地,所述分别根据各所述查询层次中查询对象的过滤特征和流向特征抽象 出各所述查询层次的特征向量的步骤包括: 分别抽取出各所述查询层次中查询对象的过滤特征和流向特征; 分别将各所述查询层次的过滤特征及流向特征的表达式格式化得到析取范式,对 所述析取范式进行逻辑关系的合并及数值计算,得到各所述查询层次的特征向量。 进一步地,所述过滤特征包括WHERE、ORDER BY、LIMIT语句; 所述流向特征包括 TABREF、JOIN、SUBQUERY、UNION_SUBQUERY 语句。 本申请还提供了一种查询语句公共部分的提取装置,包括: 划分单元,用于将查询语句划分为一个或多个查询层次,一个查询层次为进行一 次查询操作的查询子句; 抽取单元,用于分别根据各所述查询层次中查询对象的过滤特征和流向特征抽象 出各所述查询层次的特征向量; 计算单元,用于采用预定算法分别对各所述查询层次的特征向量进行计算,得到 各所述查询层次的特征值; 筛选单元,用于统计各所述特征值的重复次数,选取重复次数符合预定条件的所 述特征值作为公共部分。 进一步地,所述查询对象为查询语句中的行变换和源追溯操作; 所述过滤特征是针对一个所述查询层次的行相关的所有过滤操作特征;所述流向 特征是针对一个所述查询层次的所有数据流向特征。 进一步地,所述筛选单元统计各特征值的重复次数,选取重复次数符合预定条件 的特征值作为公共部分是指 : 所述筛选单元统计已有的查询语句中各所述查询层次的所述特征值,得到各所述 特征值的重复次数作为统计结果;当加入新的查询语句时,将所述新的查询语句中各查询 层次的所述特征值的重复次数与所述统计结果中相应特征值的重复次数相加,用相加后的 重复次数更新所述统计结果;在所述统计结果中,选取重复次数符合预定条件的所述特征 值作为公共部分的特征值。 进一步地,所述重复次数符合预定条件的特征值是指所述重复次数最高的N个所 述特征值,或是指所述重复次数大于一预定阈值的一个或多个所述特征值;其中N为正整 数,表示公共部分的特征值的预定个数。 进一步地,所述抽取单元分别根据各所述查询层次中查询对象的过滤特征和流向 特征抽象出各所述查询层次的特征向量是指: 所述抽取单元分别抽取出各所述查询层次中查询对象的过滤特征和流向特征;分 别将各所述查询层次的过滤特征及流向特征的表达式格式化得到析取范式,对所述析取范 式进行逻辑关系的合并及数值计算,得到各所述查询层次的特征向量。 进一步地,本文档来自技高网
...
一种查询语句公共部分的提取方法及装置

【技术保护点】
一种查询语句公共部分的提取方法,包括:将查询语句划分为一个或多个查询层次,一个查询层次为进行一次查询操作的查询子句;分别根据各所述查询层次中查询对象的过滤特征和流向特征抽象出各所述查询层次的特征向量;采用预定算法分别对各所述查询层次的所述特征向量进行计算,得到各所述查询层次的特征值;统计各所述特征值的重复次数,选取重复次数符合预定条件的所述特征值作为公共部分。

【技术特征摘要】

【专利技术属性】
技术研发人员:葛星徐常亮傅跃兵姚斌
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1