[发明专利]适用于大规模实时数据流的查询处理方法有效
申请号: | 201210222034.6 | 申请日: | 2012-06-29 |
公开(公告)号: | CN102737134A | 公开(公告)日: | 2012-10-17 |
发明(设计)人: | 罗光春;田玲;陈爱国;秦科 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 电子科技大学专利中心 51203 | 代理人: | 李明光 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 适用于 大规模 实时 数据流 查询 处理 方法 | ||
技术领域
本发明涉及大规模数据流处理技术以及查询优化处理技术。
背景技术
随着信息技术的飞速发展和互联网技术的普遍应用,许多行业都面临对海量流式数据的处理。随着数据量的不断增长,将更进一步地要求数据流处理系统平台必须提供实时高效服务的能力。可以预见,未来接入网络的数据源(例如,传感器等设备)会越来越多,需要在线处理和实时分析的数据量会越来越大,系统单元需要提供的服务也越来越多。因此,系统必须快速处理海量数据,及时响应请求,为本系统用户及外系统提供高性能、高可用的服务。
数据查询是指对数据源的数据进行查找、筛选,从而获得需要的数据。而多个查询的内容往往会有交叉、重叠,而系统对这些部分的操作都是重复的。因此,对多个查询的优化基本思想就是充分利用这些公共部分,避免重复冗余的系统操作开销。现有对数据查询的优化处理分为两类:局部优化和全局优化。局部优化方案,典型的如AS算法,对每个查询自身进行分解,形成内部最优的可并行计算的查询图。最后将多个查询图拼起来即可。全局优化方案,典型的如IE,HA算法,对所有的查询进行统筹考虑,将各个查询分解为原子查询,查询结果按一定顺序连接起来,形成一个网状全局查询序列图。以上数据查询方法主要针对数据库进行操作。而数据流查询结构不同于数据库,相对简单,例如,数据流查询中将同一数据流中多个原子查询之间的关系基本为与(and)(为避免形成网状结构,充分利用二叉树结构的最优化理论基础,本优化算法不考虑或or的情况,对于该情况,将or的内容当成一个整体原子项,不拆分)。与数据库查询语句类似,使用SQL语法定义的数据流查询语句形式为:
SELECT Field_1[,Field_2,Field_3,…]
FROM Stream_1[,Stream_2,Stream_3,…]
WHERE Expression_1[and Expression_2 and Expression_3,…]
其中,SELECT子句表示希望查询的字段;FROM子句表示从哪些流中进行查询;WHERE子句表示希望查询的字段需要满足哪些条件,这些查询条件在操作盒的参数属性元素中以表达式的方式出现。计算操作盒是系统任务处理的最小单位。系统的一次查询任务由多个操作盒组成。系统中可以存在多个查询任务,每个查询任务由多个操作盒组成。系统中的操作盒能够执行各种操作依赖于其中的各种参数。操作盒的参数可以是值类型也可以是各种表达式以适应各种计算要求。表达式由一个或多个操作数以及各种对操作数的运算组成。数据流查询结构中表达式之间的关系相对简单(如不包含聚合,连接等操作)。当存在较多数量的操作盒时,就可能出现重复的表达式。原子查询定义为一个简单的查询操作,即SELECT,FROM和WHERE子句中最多只能出现单一类型的项。如SELECT*FROM*WHERE A、SELECT A FROM*WHERE*、SELECT*FROM A WHERE*这样的形式,其中为保证语句完整,对于空缺项,一律填为﹡。对于SELECT*FROM*WHERE A,WHERE A为原子查询的核心。
使用现有针对数据库的数据的优化处理方法对数据流进行处理并不能达到最优,针对数据流的特殊性,需要一种特殊的优化的计算处理的数据查询处理方法。
发明内容
本发明所要解决的技术问题是,提供一种提高系统处理速度的数据查询方法。
本发明为解决上述技术问题所采用的技术方案是,一种适用于大规模实时数据流的查询处理方法,根据输入的查询任务的FROM子句,将查询分解为对FROM子句中各数据流的单独查询,合并所有数据流的单独查询结果并形成最终查询结果;
每个数据流的单独查询通过对SELECT子句以及WHERE子句的混合优化合并查询链实现;
合并查询链包括以下步骤:
1、将当前数据流的查询语句进行分解生成各原子查询,对应每个查询语句生成一个原子操作集,计算原子操作集中所有原子查询对应的利用指标,所述利用指标为该原子查询在当前数据流对应的所有原子操作集中的重复次数,进入步骤2;
2、在当前数据流对应的所有原子操作集中选择具有最大利用指标的原子查询进行查询链合并,形成两条分支:一条真实数据流和一条虚拟数据流。真实数据流进行当前选择的原子查询操作,虚拟数据流不进行当前的原子查询操作;将具有该原子查询操作的所有查询链归入真实数据流,其它的归入虚拟数据流;之后,在当前数据流下每个查询语句根据合并后的查询链重新生成原子操作集,并重新计算各原子操作的利用指标,由此递归步骤2,直到所有原子操作集为空,针对当前流的单独查询完毕。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210222034.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:环形混凝土电杆自动布料机
- 下一篇:一种磷石膏蒸压砖生产装置