当前位置: 首页 > 专利查询>伊姆西公司专利>正文

用于搜索数据库的方法和装置制造方法及图纸

技术编号:10451503 阅读:94 留言:0更新日期:2014-09-18 16:18
本发明专利技术提供一种用于搜索数据库的方法和装置。该方法包括:基于搜索条件中设定的数据条目之间的连接条件,分组所述数据条目;以及基于所述数据条目的所述分组执行所述搜索。本发明专利技术可以有效地并且高效地解决对于现有的MapReduce查询处理系统而言共同的问题,从而特别适合于大集群系统中的大数据集分析。

【技术实现步骤摘要】
用于搜索数据库的方法和装置
本专利技术的实施方式涉及数据库领域,更具体地,涉及一种用于搜索数据库的方法和装置。
技术介绍
随着数据库技术的不断发展,对数据库的搜索/查询技术的要求也日益提升。在实践中,MapReduce(映射-合并)框架已经被广泛作为对在大集群系统中的大数据分析的有效方法。MapReduce应用开发要求开发人员将应用程序逻辑编码为由MapReduce公开的简单接口(即map和reduce函数)。尽管这样的map和reduce接口提供了极高的编程灵活性,但它们非常难以实现、优化和维护,尤其是对于在实际生产中涉及到的复杂和非无关紧要的数据分析作业而言。从关系数据库技术(即,SQL)的成功可以明显看出,如果数据处理程序以如下声明式查询语言(declarative query language)进行编写,则程序开发和优化将非常高效和有效,前述声明式查询语言隐藏了实现细节并且可以进行修改以加以优化。在这种情况下,用户可以直接编写声明性查询,该查询继而将被转换成待由MapReduce平台(例如,Hadoop)执行的MapReduce程序(作业)序列。 近来,已经提出了若干声明式语言并且集成到了基于MapReduce的系统,诸如PigLatin/Pig, HiveQL/Hive。在这些系统中,用户直接编写声明式查询,其随后被转换成待由MapReduce平台(例如Hadoop)执行的MapReduce程序(作业)序列。这些语言极大地改进了 MapReduce应用开发人员的生产率。然而,它们的效果和影响受到两个主要问题的限制。一方面,到目前为止在查询转换过程期间,仅已经开发出一些非常专门化的优化技术。因而,实践中,观察到针对许多查询而自动转换的MapReduce程序与由有经验的程序员编写的手工优化的程序相比总是极度低效。例如,现有的语言转换器采用本地化的一个操作-一个作业方法,其简单地用预备好的MapReduce程序来代替查询图中的每个操作。另一方面,现有的MapReduce语言提供用于操作数据集合体的有限的句法,主要以公知的关系连接(join)和GROUP BY的形式。这样,这些语言允许用户能够将定制的MapReduce脚本插入到他们的查询语言中。这实际上削弱了使用声明式语言的益处并且可能引起次优的、易出错的并且难以维护的代码。
技术实现思路
为了解决现有技术中存在的上述问题,本说明书提出如下方案。 根据本专利技术的一个方面,提出一种搜索数据库的方法,包括:基于搜索条件中设定的数据条目之间的连接条件,分组所述数据条目;以及基于所述数据条目的所述分组执行所述搜索。 在本专利技术的可选实现中,所述基于搜索条件中设定的数据条目之间的连接条件,分组所述数据条目进一步包括通过以下中的至少一种来变换所述搜索条件的步骤:从所述搜索条件中去除模式、重写规则以及去除嵌套。 在本专利技术的可选实现中,所述分组还基于所述搜索条件中设定的所述数据条目的值之间的依赖关系进行。 在本专利技术的可选实现中,所述搜索条件包括SQL查询语句。 在本专利技术的可选实现中,所述数据库中的数据项的类型包括以下中的一个:记录类型^111,...^11:如>、序列类型[t]、集合类型{t}、以及映射类型{(tl,t2)};其中,η是自然数,tl,...,tn是递归定义类型,Al,...,An是组件名,并且映射类型{(tl,t2)}将类型tl的关键字绑定到类型t2。 在本专利技术的可选实现中,所述SQL查询语句包括如下形式: SELECT[DISTINCT]es FROM pfl in efl,..., pfn in efn [WHERE ej [GROUP BY pg:eg [HAVING eh]] [ORDER BY ej 其中,[]中的语句为可选语句;并且其中,61?1,...,6&,6:3、61?、6!;、和6。是任意表达式;FR0M子句中的pfl,...,Pfn中的每个是模式,efl,...,efn中的每个是返回序列、集合或者关键字-值配对映射的表达式,“pin e”形式表示模式P匹配e中的每个元素,并将其模式变量绑定到元素中的对应值;GR0UP BY子句中的pg: %形式表示将查询结果划分成组,从而每个组内的成员具有相同值eg,模式Pg绑定到跨每个组共同的GROUP BY值。 在本专利技术的可选实现中,基于所述数据条目的所述分组执行所述搜索进一步包括以下中的一个或多个:设置新的查询变量以关联到所述查询语句中的每个SELECT表达式;去除所述SQL查询语句中的所有连接和过滤谓词;以及用单个绑定来替代每个SELECT表达式中的FROM部分,所述单个绑定使用元组模式来绑定直接嵌套的SELECT表达式的查询变量和FROM部分的变量。 在本专利技术的可选实现中,所述搜索基于映射-合并方式并行进行。 在本专利技术的可选实现中,在针对所述搜索的所述映射-合并方式多于一种时,评估所述映射-合并方式中每种所述映射-合并方式的开销,并且选择开销最小的映射-合并方式作为实际搜索方式。 在本专利技术的可选实现中,所述映射-合并方式包括以下步骤中的一个或多个:减少由映射-合并作业读取输入数据和写入输出数据的I/o开销、将彼此独立的多个映射-合并作业组合成单个映射-合并作业、以及在产品-消费者作业对中至少一个作业是仅映射的,或者两个作业共享同一映射关键字时组合所述产品-消费者作业对。 在本专利技术的可选实现中,所述映射-合并方式包括使用如下形式的执行方式: REPEAT v = e STEP body [limit η] 其中,V是需要重复的变量,e的类型是某一类型T的集合{T},body的类型是{(T,布尔型)},η为自然数;并且其中,所述REPEAT语句表示首先将v绑定到e的值,然后重复计算body,并且从之前的重复计算中将新值赋予V,如果重复的次数变为η、或者当所有由body返回的布尔型都为假时,则停止所述执行。 根据本专利技术的另一方面,提出一种搜索数据库的装置,包括:分组装置,被配置为基于搜索条件中设定的数据条目之间的连接条件,分组所述数据条目;以及执行装置,被配置为基于所述数据条目的所述分组执行所述搜索。 在本专利技术的可选实现中,所述分组装置进一步包括通过以下装置中的至少一个:模式去除装置,被配置为从所述搜索条件中去除模式;查询简化装置,被配置为重写规则;以及嵌套去除装置,被配置为去除嵌套。 在本专利技术的可选实现中,所述分组装置还基于所述搜索条件中设定的所述数据条目的值之间的依赖关系进行所述分组。 在本专利技术的可选实现中,所述搜索条件包括SQL查询语句。 在本专利技术的可选实现中,所述数据库中的数据项的类型包括以下中的一个:记录类型^111,...^11:如>、序列类型[t]、集合类型{t}、以及映射类型{(tl,t2)};其中,η是自然数,tl,...,tn是递归定义类型,Al,...,An是组件名,并且映射类型{(tl,t2)}将类型tl的关键字绑定到类型t2。 在本专利技术的可选实现中,所述SQL查询语句包括如下形式: SELECT[DISTINCT]es FROM pfl in efl本文档来自技高网
...

【技术保护点】
一种搜索数据库的方法,包括:基于搜索条件中设定的数据条目之间的连接条件,分组所述数据条目;以及基于所述数据条目的所述分组执行所述搜索。

【技术特征摘要】
1.一种搜索数据库的方法,包括: 基于搜索条件中设定的数据条目之间的连接条件,分组所述数据条目;以及 基于所述数据条目的所述分组执行所述搜索。2.根据权利要求1所述的方法,其中,所述基于搜索条件中设定的数据条目之间的连接条件,分组所述数据条目进一步包括通过以下中的至少一种来变换所述搜索条件的步骤: 从所述搜索条件中去除模式、重写规则以及去除嵌套。3.根据权利要求1所述的方法,其中,所述分组还基于所述搜索条件中设定的所述数据条目的值之间的依赖关系进行。4.根据权利要求1-3中任一所述的方法,其中,所述搜索条件包括SQL查询语句。5.根据权利要求4所述的方法,其中,所述数据库中的数据项的类型包括以下中的一个: 记录类型<Al:tl,...,An:tn>、序列类型[t]、集合类型{t}、以及映射类型{(tl,t2)}; 其中,η是自然数,tl,...,tn是递归定义类型,Al,..., An是组件名,并且映射类型{(tl,t2)}将类型tl的关键字绑定到类型t2。6.根据权利要求5所述的方法,其中,所述SQL查询语句包括如下形式:SELECT[DISTINCT] es FROM pfl in efl,..., pfn in efn [WHERE ew][GROUP BY pg:eg [HAVING eh]][ORDER BY ej 其中,[]中的语句为可选语句; 并且其中,efl,..., efn, es、ew、eg、和e。是任意表达式; FROM子句中的pfl,...,Pfn中的每个是模式,efl,...,efn中的每个是返回序列、集合或者关键字-值配对映射的表达式,“P in e”形式表示模式P匹配e中的每个元素,并将其模式变量绑定到元素中的对应值; GROUP BY子句中的pg: %形式表示将查询结果划分成组,从而每个组内的成员具有相同值eg,模式pg绑定到跨每个组共同的GROUP BY值。7.根据权利要求6所述的方法,其中,基于所述数据条目的所述分组执行所述搜索进一步包括以下中的一个或多个: 设置新的查询变量以关联到所述查询语句中的每个SELECT表达式; 去除所述SQL查询语句中的所有连接和过滤谓词;以及 用单个绑定来替代每个SELECT表达式中的FROM部分,所述单个绑定使用元组模式来绑定直接嵌套的SELECT表达式的查询变量和FROM部分的变量。8.根据权利要求1-3中任一所述的方法,其中,所述搜索基于映射-合并方式并行进行。9.根据权利要求8所述的方法,其中,在针对所述搜索的所述映射-合并方式多于一种时,评估所述映射-合并方式中每种所述映射-合并方式的开销,并且选择开销最小的映射-合并方式作为实际搜索方式。10.根据权利要求8所述的方法,其中,所述映射-合并方式包括以下步骤中的一个或多个: 减少由映射-合并作业读取输入数据和写入输出数据的I/o开销、将彼此独立的多个映射-合并作业组合成单个映射-合并作业、以及在产品-消费者作业对中至少一个作业是仅映射的,或者两个作业共享同一映射关键字时组合所述产品-消费者作业对。11.根据权利要求8所述的方法,其中,所述映射-合并方式包括使用如下形式的执行方式:REPEAT V = e STEP body[limit η] 其中,V是需要重复的变量,e的类型是某一类型T的集合{T},body的类型是{(T,布尔型)},n为自然数; 并且其中,所述REPEAT语句表示首先将V绑定到e的值,然后重复计算body,并且从之前的重复计算中将新值赋予V,如果重复的次数变为η、或者当所有由body返回的布尔型都为假时,则停止所述执行。12.一种搜索数据库的装置,包括: 分组装置,被配置为基于搜索条件中设定的数据条目之间的连接条件,分组所述数据条目;以及...

【专利技术属性】
技术研发人员:曹逾周宝曜陈齐彦陈波孙宇熙
申请(专利权)人:伊姆西公司
类型:发明
国别省市:美国;US

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

1