[发明专利]代码转换方法及装置有效
申请号: | 201310482057.5 | 申请日: | 2013-10-15 |
公开(公告)号: | CN103593401A | 公开(公告)日: | 2014-02-19 |
发明(设计)人: | 林学练;叶玥;崔晓龙;胡春明 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 转换 方法 装置 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种代码转换方法及装置。
背景技术
在映射化简(MapReduce)应用中,利用MapReduce框架实现数据处理的途径是编写MapReduce代码,而这就带来了调试分布式程序的负担。并且,数据分析人员更加熟悉的代码通常为类似于结构化查询语言(Structured Query Language,简称SQL)的声明式语言,以下简称类SQL,而不是在MapReduce框架下编写的MapReduce代码。
针对上述状况,现有技术提供一种将类SQL转换为MapReduce代码的代码转换方法为,根据给定的类SQL,获得所述类SQL对应的抽象语法树中各节点分别对应的各作业,并根据所述各作业生成相应的MapReduce代码。
通过上述方法,尽管能够实现将类SQL转换为MapReduce代码,但是通过上述方案获得的MapReduce作业量通常较大,相应的,执行这些作业将会耗费大量的时间,导致数据处理的效率降低。
发明内容
本发明提供一种代码转换方法及装置,用于解决现有的代码转换方案中因作业量过大导致的作业时间过长的问题。
本发明的第一个方面是提供一种代码转换方法,包括:
根据类结构化查询语言SQL,获得与所述类SQL对应的抽象语法树中的各节点分别对应的各作业;
将当前各作业中,任一未被合并且可合并的作业作为第一作业,将所述第一作业的相邻作业中的任一可合并的作业作为第二作业;
根据获取的所述第一作业的算子、所述第二作业的算子和预设的各作业类型对应的算子,确定所述第一作业的作业类型和所述第二作业的作业类型;
若所述第二作业为所述第一作业的前驱作业,则将所述第一作业作为第一作业模板,将所述第二作业作为第二作业模板,否则将所述第一作业作为所述第二作业模板,将所述第二作业作为所述第一作业模板;
根据预设的与所述第一作业模板的作业类型和所述第二作业模板的作业类型对应的合并模型,将所述第一作业模板和所述第二作业模板合并为第三作业;
将所述第三作业作为所述第一作业,并再次执行所述将所述第一作业的相邻作业中的任一可合并的作业作为第二作业的步骤,直至所述第一作业的相邻作业中不存在可合并的作业;
再次执行所述将当前各作业中任一未被合并且可合并的作业作为第一作业的步骤,直至当前未被合并的作业中不存在可合并的作业;
根据当前的各作业,获得所述类SQL对应的映射化简MapReduce代码。
本发明的另一个方面是提供一种代码转换装置,包括:
获取模块,用于根据类结构化查询语言SQL,获得所述类SQL对应的抽象语法树中各节点分别对应的各作业;
处理模块,用于将当前各作业中,任一未被合并且可合并的作业作为第一作业,将所述第一作业的相邻作业中的任一可合并的作业作为第二作业;
所述处理模块,还用于根据获取的所述第一作业的算子、所述第二作业的算子和预设的各作业类型对应的算子,确定所述第一作业的作业类型和所述第二作业的作业类型;
合并模块,用于若所述第二作业为所述第一作业的前驱作业,则将所述第一作业作为第一作业模板,将所述第二作业作为第二作业模板,否则将所述第一作业作为所述第二作业模板,将所述第二作业作为所述第一作业模板;
所述合并模块,还用于根据预设的与所述第一作业模板的作业类型和所述第二作业模板的作业类型对应的合并模型,将所述第一作业模板和所述第二作业模板合并为第三作业;
所述处理模块,还用于将所述第三作业作为所述第一作业,并再次执行所述将所述第一作业的相邻作业中的任一可合并的作业作为第二作业的步骤,直至所述第一作业的相邻作业中不存在可合并的作业;
所述处理模块,还用于再次执行所述将当前各作业中任一未被合并且可合并的作业作为第一作业的步骤,直至当前未被合并的作业中不存在可合并的作业;
转换模块,用于根据当前的各作业,获得所述类SQL对应的映射化简MapReduce代码。
本发明提供的代码转换方法,通过对类结构化查询语言(Structured Query Language,简称SQL)对应的各作业进行合并后获得相应的MapReduce代码的技术方案,有效减少MapReduce作业的作业量和执行时间,进而提高数据处理的效率。
附图说明
图1为本发明实施例一提供的一种代码转换方法的流程示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310482057.5/2.html,转载请声明来源钻瓜专利网。