[发明专利]代码转换方法及装置有效
申请号: | 201310482057.5 | 申请日: | 2013-10-15 |
公开(公告)号: | CN103593401A | 公开(公告)日: | 2014-02-19 |
发明(设计)人: | 林学练;叶玥;崔晓龙;胡春明 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 转换 方法 装置 | ||
1.一种代码转换方法,其特征在于,包括:
根据类结构化查询语言SQL,获得与所述类SQL对应的抽象语法树中的各节点分别对应的各作业;
将当前各作业中,任一未被合并且可合并的作业作为第一作业,将所述第一作业的相邻作业中的任一可合并的作业作为第二作业;
根据获取的所述第一作业的算子、所述第二作业的算子和预设的各作业类型对应的算子,确定所述第一作业的作业类型和所述第二作业的作业类型;
若所述第二作业为所述第一作业的前驱作业,则将所述第一作业作为第一作业模板,将所述第二作业作为第二作业模板,否则将所述第一作业作为所述第二作业模板,将所述第二作业作为所述第一作业模板;
根据预设的与所述第一作业模板的作业类型和所述第二作业模板的作业类型对应的合并模型,将所述第一作业模板和所述第二作业模板合并为第三作业;
将所述第三作业作为所述第一作业,并再次执行所述将所述第一作业的相邻作业中的任一可合并的作业作为第二作业的步骤,直至所述第一作业的相邻作业中不存在可合并的作业;
再次执行所述将当前各作业中任一未被合并且可合并的作业作为第一作业的步骤,直至当前未被合并的作业中不存在可合并的作业;
根据当前的各作业,获得所述类SQL对应的映射化简MapReduce代码。
2.根据权利要求1所述的方法,其特征在于,所述根据获取的所述第一作业的算子和预设的各作业类型对应的算子,确定所述第一作业的作业类型,包括:
获取所述第一作业的算子;
若所述第一作业的算子包括聚合Aggregation算子,则所述第一作业的作业类型为SPJA类型;
若所述第一作业的算子包括过滤Filter算子、投影Project算子、连接Join算子、分组Group算子和排序Sort算子中一个或多个的组合,且不包括所述Aggregation算子,则所述第一作业的作业类型为SPJ类型;
若所述第一作业的算子仅包括所述Filter算子、所述Project算子或嵌套循环连接Nested-Loop-Join算子,则所述第一作业的作业类型为SP类型。
3.根据权利要求2所述的方法,其特征在于,所述根据预设的与所述第一作业模板的作业类型和所述第二作业模板的作业类型对应的合并模型,将所述第一作业模板和所述第二作业模板进行合并为第三作业,包括:
若所述第一作业模板的作业类型为SPJ类型,所述第二作业模板的作业类型为SPJ类型或SPJA类型,则将第一作业合并模型作为所述合并模型之一,所述第一作业合并模型用于将所述第一作业模板的Map任务和所述第二作业模板的Map任务合并为所述第三作业的Map任务,将所述第一作业模板的Shuffle任务和所述第二作业模板的Shuffle任务合并为所述第三作业的Shuffle任务,将所述第一作业模板的Reduce任务和所述第二作业模板的Reduce任务合并为所述第三作业的Reduce任务;
若所述第一作业模板的作业类型为SPJA类型,所述第二作业模板的作业类型为SPJ类型或SPJA类型,则将第二作业合并模板作为所述合并模型之一,所述第二作业合并模型用于将所述第一作业模板的Map任务和所述第二作业模板的Map任务中的部分Map任务合并为所述第三作业的Map任务,将所述第一作业模板的Shuffle任务和所述第二作业模板的Shuffle任务合并为所述第三作业的Shuffle任务,将所述第一作业模板的Reduce任务、所述第二作业模板的Reduce任务、及所述第二作业模板的Map任务中除所述部分Map任务以外的任务合并为所述第三作业的Reduce任务,所述部分Map任务的处理对象不属于所述第一作业模板的Aggregation算子类型对应的处理对象;
若所述第一作业模板的作业类型为SP类型,所述第二作业模板的作业类型为SPJ类型或SPJA类型,则将第三作业合并模板作为所述合并模型之一,所述第三作业合并模型用于将所述第二作业模板的Map任务作为所述第三作业的Map任务,将所述第二作业模板的Shuffle作为所述第三作业的Shuffle任务,将所述第一作业模板的Map任务和所述第二作业模板的Reduce任务合并为所述第三作业的Reduce任务;
若所述第一作业模板的作业类型为SPJ类型或SPJA类型,所述第二作业模板的作业类型为SP类型,则将第四作业合并模板作为所述合并模型之一,所述第四作业合并模型用于将所述第一作业模板的Map任务作为所述第三作业的Map任务,将所述第一作业模板的Shuffle作为所述第三作业的Shuffle任务,将所述第一作业模板的Reduce任务和所述第二作业模板的Map任务合并为所述第三作业的Reduce任务;
若所述合并模型的数量为一个,则将根据所述合并模型获得的作业作为所述第三作业;
若所述合并模型的数量为多个,则分别估算根据所述多个合并模型获得的作业的执行时间,并将所述执行时间最短的作业作为所述第三作业。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310482057.5/1.html,转载请声明来源钻瓜专利网。