【技术实现步骤摘要】
用于搜索数据库的方法和装置
本专利技术的实施方式涉及数据库领域,更具体地,涉及一种用于搜索数据库的方法和装置。
技术介绍
随着数据库技术的不断发展,对数据库的搜索/查询技术的要求也日益提升。在实践中,MapReduce(映射-合并)框架已经被广泛作为对在大集群系统中的大数据分析的有效方法。MapReduce应用开发要求开发人员将应用程序逻辑编码为由MapReduce公开的简单接口(即map和reduce函数)。尽管这样的map和reduce接口提供了极高的编程灵活性,但它们非常难以实现、优化和维护,尤其是对于在实际生产中涉及到的复杂和非无关紧要的数据分析作业而言。从关系数据库技术(即,SQL)的成功可以明显看出,如果数据处理程序以如下声明式查询语言(declarative query language)进行编写,则程序开发和优化将非常高效和有效,前述声明式查询语言隐藏了实现细节并且可以进行修改以加以优化。在这种情况下,用户可以直接编写声明性查询,该查询继而将被转换成待由MapReduce平台(例如,Hadoop)执行的MapReduce程序(作业)序列。 近来,已经提出了若干声明式语言并且集成到了基于MapReduce的系统,诸如PigLatin/Pig, HiveQL/Hive。在这些系统中,用户直接编写声明式查询,其随后被转换成待由MapReduce平台(例如Hadoop)执行的MapReduce程序(作业)序列。这些语言极大地改进了 MapReduce应用开发人员的生产率。然而,它们的效果和影响受到两个主要问题的限制。一方面 ...
【技术保护点】
一种搜索数据库的方法,包括:基于搜索条件中设定的数据条目之间的连接条件,分组所述数据条目;以及基于所述数据条目的所述分组执行所述搜索。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。