一种将MapReduce转换为SQL的方法和装置的制造方法_4

文档序号:9235264阅读:来源:国知局
除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。
【主权项】
1.一种将MapReduce转换为SQL的方法,其特征在于,所述方法包括: 获取用户通过MapReduce框架输入的映射化简MapReduce ; 解析所述MapReduce,得到所述MapReduce的函数类型;其中,所述MapReduce的函数类型为只包括有映射Map函数的Map类型,或同时包括有Map函数和化简Reduce函数的MapReduce 类型; 根据所述MapReduce的函数类型,查询得到与所述函数类型相应的MapReduce与结构化查询语言SQL映射关系,以及SQL模板; 根据与所述函数类型相应的MapReduce与SQL映射关系,以及SQL模板,将所述MapReduce 转换为 SQL。2.如权利要求1所述的方法,其特征在于,当所述MapReduce的函数类型为所述Map类型时,根据与所述函数类型相应的MapReduce与SQL映射关系,以及SQL模板,将所述MapReduce转换为SQL,包括: 获取所述MapReduce对应的输入定义信息;其中,所述输入定义信息包括输入数据来源; 根据所述输入定义信息中包括的输入数据来源,生成与所述Map类型相应的SQL模板中包括的Map函数的来自from功能的元素; 提取所述MapReduce中包括的Map函数的输入和输出; 将所述MapReduce中包括的Map函数的输入和输出,分别作为与所述Map类型相应的SQL模板中包括的Map函数的输入和输出; 将生成的与所述Map类型相应的SQL模板中包括的Map函数的from功能的元素,与所述Map类型相应的SQL模板中包括的Map函数的输入和输出,分别添加到与所述Map类型相应的SQL模板的相应位置,得到所述SQL。3.如权利要求2所述的方法,其特征在于,当所述MapReduce中包括的Map函数的输入和输出是通过动态方式定义时,提取所述MapReduce中包括的Map函数的输入和输出,包括: 从所述MapReduce中包括的Map函数的注释annotate中提取输入和输出。4.如权利要求1所述的方法,其特征在于,当所述MapReduce的函数类型为MapReduce类型时,根据与所述函数类型相应的MapReduce与SQL映射关系,以及SQL模板,将所述MapReduce转换为SQL,包括: 获取所述MapReduce对应的输入定义信息;其中,所述输入定义信息包括输入数据来源; 根据所述输入定义信息中包括的输入数据来源,生成与所述MapReduce类型相应的SQL模板中包括的Map函数的from功能的元素; 提取所述MapReduce中包括的Map函数的输入和输出; 将所述MapReduce中包括的Map函数的输入和输出,分别作为与所述MapReduce类型相应的SQL模板中包括的Map函数的输入和输出; 提取所述MapReduce中包括的Map函数的键值信息、所述MapReduce的分区排序需求信息; 根据所述MapReduce中包括的Map函数的键值信息、所述MapReduce的分区排序需求信息,确定与所述MapReduce类型相应的SQL模板中包括的发布distribute by功能的键值、排序sort by功能的键值; 提取所述MapReduce中包括的Reduce函数的输入和输出; 将所述MapReduce中包括的Reduce函数的输入和输出,分别作为与所述MapReduce类型相应的SQL模板中包括的Reduce函数的输入和输出; 将生成的与所述MapReduce类型相应的SQL模板中包括的Map函数的from功能的元素,与所述MapReduce类型相应的SQL模板中包括的Map函数的输入和输出,与所述MapReduce类型相应的SQL模板中包括的distribute by功能的键值、sort by功能的键值,与所述MapReduce类型相应的SQL模板中包括的Reduce函数的输入和输出,分别添加到与所述MapReduce类型相应的SQL模板的相应位置,得到所述SQL。5.如权利要求4所述的方法,其特征在于,当所述MapReduce中包括的Map函数的输入和输出是通过动态方式定义时,提取所述MapReduce中包括的Map函数的输入和输出,包括: 从所述MapReduce中包括的Map函数的annotate中提取输入和输出; 相应地,提取所述MapReduce中包括的Reduce函数的输入和输出,包括: 从所述MapReduce中包括的Reduce函数的annotate中提取输入和输出。6.如权利要求1-5任一权利要求所述的方法,其特征在于,将所述MapReduce转换为SQL之后,还包括: 生成与所述SQL对应的用户自定义函数UDF适配器,其中,所述UDF适配器用于直接调用所述SQL中的Map函数,或所述SQL中的Map函数和Reduce函数。7.一种将MapReduce转换为SQL的装置,其特征在于,所述装置包括: 获取模块,用于获取用户通过MapReduce框架输入的映射化简MapReduce ; 解析模块,用于解析所述MapReduce,得到所述MapReduce的函数类型;其中,所述MapReduce的函数类型为只包括有映射Map函数的Map类型,或同时包括有Map函数和化简Reduce 函数的 MapReduce 类型; 查询模块,用于根据所述MapReduce的函数类型,查询得到与所述函数类型相应的MapReduce与结构化查询语言SQL映射关系,以及SQL模板; 转换模块,用于根据与所述函数类型相应的MapReduce与SQL映射关系,以及SQL模板,将所述MapReduce转换为SQL。8.如权利要求7所述的装置,其特征在于,当所述MapReduce的函数类型为所述Map类型时,所述转换模块包括: 第一获取单元,用于获取所述MapReduce对应的输入定义信息;其中,所述输入定义信息包括输入数据来源; 第一生成单元,用于根据所述输入定义信息中包括的输入数据来源,生成与所述Map类型相应的SQL模板中包括的Map函数的来自from功能的元素; 第一提取单元,用于提取所述MapReduce中包括的Map函数的输入和输出; 第一处理单元,用于将所述MapReduce中包括的Map函数的输入和输出,分别作为与所述Map类型相应的SQL模板中包括的Map函数的输入和输出; 第一添加单元,用于将生成的与所述Map类型相应的SQL模板中包括的Map函数的from功能的元素,与所述Map类型相应的SQL模板中包括的Map函数的输入和输出,分别添加到与所述Map类型相应的SQL模板的相应位置,得到所述SQL。9.如权利要求8所述的装置,其特征在于,当所述MapReduce中包括的Map函数的输入和输出是通过动态方式定义时,所述第一提取单元包括: 第一提取子单元,用于从所述MapReduce中包括的Map函数的注释annotate中提取输入和输出。10.如权利要求7所述的装置,其特征在于,当所述MapReduce的函数类型为MapReduce类型时,所述转换模块包括: 第二获取单元,用于获取所述MapReduce对应的输入定义信息;其中,所述输入定义信息包括输入数据来源; 第二生成单元,用于根据所述输入定义信息中包括的输入数据来源,生成与所述MapReduce类型相应的SQL模板中包括的Map函数的from功能的元素; 第二提取单元,用于提取所述MapReduce中包括的Map函数的输入和输出; 第二处理单元,用于将所述MapReduce中包括的Map函数的输入和输出,分别作为与所述MapReduce类型相应的SQL模板中包括的Map函数的输入和输出; 第三提取单元,用于提取所述MapReduce中包括的Map函数的键值信息、所述MapReduce的分区排序需求信息; 确定单元,用于根据所述MapReduce中包括的Map函数的键值信息、所述MapReduce的分区排序需求信息,确定与所述MapReduce类型相应的SQL模板中包括的发布distributeby功能的键值、排序sort by功能的键值; 第四提取单元,用于提取所述MapReduce中包括的Reduce函数的输入和输出; 第三处理单元,用于将所述MapReduce中包括的Reduce函数的输入和输出,分别作为与所述MapReduce类型相应的SQL模板中包括的Reduce函数的输入和输出; 第二添加单元,用于将生成的与所述MapReduce类型相应的SQL模板中包括的Map函数的from功能的元素,与所述MapReduce类型相应的SQL模板中包括的Map函数的输入和输出,与所述MapReduce类型相应的SQL模板中包括的distribute by功能的键值、sort by功能的键值,与所述MapReduce类型相应的SQL模板中包括的Reduce函数的输入和输出,分别添加到与所述MapReduce类型相应的SQL模板的相应位置,得到所述SQL。11.如权利要求10所述的装置,其特征在于,当所述MapReduce中包括的Map函数的输入和输出是通过动态方式定义时,所述第二提取单元包括: 第二提取子单元,用于从所述MapReduce中包括的Map函数的annotate中提取输入和输出; 相应地,所述第四提取单元包括: 第三提取子单元,用于从所述MapReduce中包括的Reduce函数的annotate中提取输入和输出。12.如权利要求7-11任一权利要求所述的装置,其特征在于,所述装置还包括: 生成模块,用于生成与所述SQL对应的UDF适配器,其中,所述UDF适配器用于直接调用所述SQL中的Map函数,或所述SQL中的Map函数和Reduce函数。
【专利摘要】本申请公开了一种将MapReduce转换为SQL的方法和装置,属于计算机技术领域。所述方法包括:获取用户通过MapReduce框架输入的映射化简MapReduce;解析MapReduce,得到所述MapReduce的函数类型;根据所述MapReduce的函数类型,查询得到与所述函数类型相应的MapReduce与结构化查询语言SQL映射关系,以及SQL模板;根据与所述函数类型相应的MapReduce与SQL映射关系,以及SQL模板,将所述MapReduce转换为SQL。所述装置包括:获取模块、解析模块、查询模块和转换模块。本发明可以将MapReduce自动转换成SQL,实现简单便捷。
【IPC分类】G06F9/44
【公开号】CN104951286
【申请号】CN201410114193
【发明人】徐常亮
【申请人】阿里巴巴集团控股有限公司
【公开日】2015年9月30日
【申请日】2014年3月25日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1