CN103761080B - 一种基于SQL的MapReduce作业生成方法及系统 - Google Patents

一种基于SQL的MapReduce作业生成方法及系统 Download PDF

Info

Publication number
CN103761080B
CN103761080B CN201310729051.3A CN201310729051A CN103761080B CN 103761080 B CN103761080 B CN 103761080B CN 201310729051 A CN201310729051 A CN 201310729051A CN 103761080 B CN103761080 B CN 103761080B
Authority
CN
China
Prior art keywords
data
tree
query plan
node
sql
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201310729051.3A
Other languages
English (en)
Other versions
CN103761080A (zh
Inventor
李林
韩洪林
曹津
赵明明
叶思菁
朱德海
张晓东
姚晓闯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Agricultural University
Original Assignee
China Agricultural University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Agricultural University filed Critical China Agricultural University
Priority to CN201310729051.3A priority Critical patent/CN103761080B/zh
Publication of CN103761080A publication Critical patent/CN103761080A/zh
Application granted granted Critical
Publication of CN103761080B publication Critical patent/CN103761080B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于SQL的MapReduce作业生成方法及系统,该方法包括,解析接收到的SQL语句,生成抽象语法树;转化所述抽象语法树为查询计划树;优化所述查询计划树;根据优化后的查询计划树生成对应的MapReduce作业,该系统基于Antlr工具对SQL语句生成抽象语法树AST,并进一步基于AST生成一种查询计划树结构,最终在查询计划树的基础上生成MapReduce作业,同时还提供了相应的优化策略,以确保生成的MapReduce作业拥有更高的执行效率。

Description

一种基于SQL的MapReduce作业生成方法及系统
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于SQL的MapReduce作业生成方法及系统。
背景技术
随着现代信息技术尤其是互联网的急速发展,各个领域和应用平台的数据量亦呈爆炸性增长。急遽扩充的数据量使得在此基础上各种应用的计算任务强度和复杂性随之大增。与此同时,低成本、高性能商用计算机和存储设备的不断增多且应用日益广泛,就使得大规模、可扩展的分布式计算系统能够得以很快地建立起来去支撑这些计算和应用。近年来,分布式计算框架MapReduce(MR),依靠优秀的任务自动并行化机制以及容错能力,为大规模数据分析所面临的挑战提供了一个实用有效的解决方案。
作为MapReduce的开源实现,Hadoop已经被广泛应用于实际的生产当中。虽然直接利用Hadoop的编程接口进行开发,能够充分利用MapReduce框架的灵活性,编写出高性能的程序,但是,由于使用这种方法用户需要手动编码,实现相应的map及reduce方法,不仅效率低下,而且增加了程序调试的难度,如果能够像传统的关系型数据库那样,利用SQL语句高级查询语言,交由数据库引擎执行相关的操作,那么,不仅能提高工作效率,而且还能轻松地发现程序中所存在的问题。尽管MapReduce模型已经提供了十分规范的编程接口,但是要编写出由多个MapReduce作业组成数据处理程序却并不是一件容易的事情。对于习惯使用类似SQL等高级语言的编程人员来说,MR提供的编程模型相对而言就显得抽象化层次较低因而难以使用。为了使得MR框架的使用更加便利,很多机构逐渐尝试在MR框架之上提供抽象层次更高的编程接口。
现有技术中的MR上层接口框架主要有以下几种:
(1)Pig是由Yahoo!公司研发的基于MapReduce的开源数据分析工具。Pig提供高级的面向数据流的编程语言PigLatin。PigLatin类似脚本语言并与SQL语言的描述方法接近,它比SQL更灵活和容易扩展。Pig通过将PigLatin语言编写的程序编译成一系列优化的MR作业,然后提交给MR框架如Hadoop执行,这些操作对用户都是透明的;
(2)Hive由Facebook开发并应用于其数据仓库中。与Pig类似,Hive在MR编程模型之上提供了抽象层次更高且相对易于使用的类SQL高级语言接口框架,其设计初衷是希望熟悉SQL语言的工程师能快速方便地处理存储在Hadoop中的海量数据,因此由Hive提供的编程语言HiveQL与SQL非常相似。此外,Hive还支持表和模式的概念,以表的方式组织数据,并支持对数据按属性分区存储;
(3)Tezing是在Google-MapReduce计算框架之上实现对SQL的支持,其设计初衷是Google为了支持对数据的Ad-hoc(即时查询)分析,因而在性能优化方面做了大量极具价值的工作,包括编译优化以及对MapReduce本身的增强等,这些都使得Tenzing的性能在很多方面接近甚至超过了并行数据仓库;
此外,类似的实现还有Google的Sawzall和FlumeJava,与Pig,Hive相同都是在MR框架之上进行的语言扩展工作。而且,国外一些并行数据库厂商,如Greenplum、AsterData、Paraccel和Vertica等也已经将MR模型和相关概念嵌入到自己产品中。这些整合基本上都是编程接口层面上的工作,即在并行数据库中同时支持SQL和MR编程接口。
综上所述,在基于MapReduce的高级语言编程接口方面,Pig和Hive基本思路都是在MapReduce框架上,通过将类似SQL的高级语言编写的数据分析任务翻译成MapReduce作业来执行。但是由于MapReduce模型的执行过程固定,使得编译生成的查询计划能够执行的优化非常有限,因此它们都不支持对大规模数据的快速分析。基于技术现状和应用需求,在此需要实现一种解决方案,能够将SQL操作语句转化成可执行MapReduce作业流,同时保证生成的MapReduce作业流具有较高的执行效率。
发明内容
本发明所要解决的技术问题是如何根据SQL操作语句自动生成相应的可执行MapReduce作业,并保证生成的MapReduce作业具有较高的执行效率。
为此目的,本发明提出了一种基于SQL的MapReduce作业生成方法,包括以下步骤:
解析接收到的SQL语句,生成抽象语法树;
转化所述抽象语法树为查询计划树;
优化所述查询计划树;
根据优化后的查询计划树生成对应的MapReduce作业。
进一步,所述解析接收到的SQL语句,生成抽象语法树,具体包括:
接收SQL语句;
对所述SQL语句进行词法分析;
对所述SQL语句进行语法分析;
根据所述分析结果,生成抽象语法树。
进一步,所述转化所述抽象语法树为查询计划树,具体包括:
获取所述抽象语法树;
转化所述抽象语法树为由抽象类节点组成的中间树;
根据所述中间树结构生成对应的查询计划树。
进一步,所述优化所述查询计划树,具体包括:
确定所述查询计划树中节点的关联关系;
根据所述关联关系进行节点的合并。
进一步,所述关联关系包括:输入关联、传输关联和作业流关联;
如果查询计划树中的两个节点为输入关联,则在所述两个节点的Map作业生成阶段进行节点合并;
如果查询计划树中的两个节点为传输关联,则先将所述两个节点合并为一个公共节点,在所述公共节点的Map作业生成阶段获取所述两个节点分别进行处理,在Reduce作业生成阶段再次进行节点合并;
如果查询计划树中的两个节点为作业流关联,则将所述节点合并为一个公共节点。
进一步,所述根据优化后的查询计划树生成对应的MapReduce作业,具体包括:
生成Map作业;
生成Reduce作业。
进一步,所述根据优化后的查询计划树生成对应的MapReduce作业之后,还包括:根据后续遍历查询计划树的方式生成对应的MapReduce作业流。
此外,本发明还提供了一种基于SQL的MapReduce作业生成系统,该系统包括:SQL解析模块、处理模块、优化模块和作业生成模块,
SQL解析模块,用于解析接收到的SQL语句,生成抽象语法树;
处理模块,用于转化SQL解析模块生成的抽象语法树为查询计划树;
优化模块,用于优化所述查询计划树;
作业生成模块,用于根据优化后的查询计划树生成对应的MapReduce作业流。
进一步,所述处理模块,包括:
获取单元,用于获取所述抽象语法树;
转换单元,用于转化所述抽象语法树为由抽象类节点组成的中间树;
生成单元,用于根据所述中间树生成对应的查询计划树。
进一步,所述优化模块,包括:
确定单元,用于确定所述查询计划树中节点的关联关系;
优化单元,用于根据所述关联关系进行节点的合并。
通过采用本发明所公开的一种基于SQL的MapReduce作业生成方法及系统,使用户能够直接使用SQL查询语句与系统进行交互,并且根据能够根据用户输入的SQL查询语句,自动生成优化的MapReduce作业流,无需根据框架的特性手动编码,进而确保最终的执行效率。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明一种基于SQL的MapReduce作业生成方法的流程图;
图2示出了本发明中类节点中间树结构图;
图3示出了本发明一种基于SQL的MapReduce作业生成系统的模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出一种基于SQL的MapReduce作业生成方法及系统,在现有的文法分析器Antlr工具对SQL语句生成抽象语法树AST的基础之上,进一步生成一种查询计划树结构,最终在查询计划树的基础上,配合一种操作任务优化策略生成MapReduce作业,以确保生成的MapReduce作业程序相比此前的同类系统,拥有更高的执行效率。
本发明实施例中提供了一种基于SQL的MapReduce作业生成方法,如图1所示,包括以下步骤:
步骤S101,解析接收到的SQL语句,生成抽象语法树;
步骤S102,转化所述抽象语法树为查询计划树;
步骤S103,优化所述查询计划树;
步骤S104,根据优化后的查询计划树生成对应的MapReduce作业。
其中,解析接收到的SQL语句,生成抽象语法树,具体包括:
步骤S201,接收SQL语句;
步骤S202,对所述SQL语句进行词法分析;
步骤S203,对所述SQL语句进行语法分析;
步骤S204,根据所述分析结果,生成抽象语法树。
其中,转化所述抽象语法树为查询计划树,具体包括:
步骤S301,获取所述抽象语法树;
步骤S302,转化所述抽象语法树为由抽象类节点组成的中间树;
步骤S303,根据所述中间树结构生成对应的查询计划树。
得到抽象语法树AST后,还需要将抽象语法树AST转化成更加适合处理的方式。如图2所示,当读入AST后,经过转换后,形成以查询节点SelectNode、数据表节点TableNode、筛选节点WhereNode、排序节点OrderByNode、聚合节点GroupByNode五大类节点组成的类节点中间树结构;
①SelectNode:该节点主要存储着需要从查询中获取的字段的信息,这里的字段可能是单独的字段,也可能是聚集函数的结果;
②TableNode:主要是存储查询所需的数据表的信息,这里的数据表可以单表,也可以是多表,甚至其也可以是嵌套的Select查询生成的临时表;
③WhereNode:存储着Where子句对应的字段,用来进行数据的筛选;
④OrderByNode:存储着Order By子句相关的信息,如Order By指令所针对的列,正序还是倒序,列所属的表等;
⑤GroupByNode:存储着Group By子句对应的信息。主要是Group By针对的列,主要用来判断聚合相关。
在完成了AST解析后,需要将其转化成对应的查询计划树,才能进行接下来的作业流生成和优化工作。这里定义了三类Job节点:AGG,代表聚合操作;Join,代表数据表连接操作;Sort,代表排序操作。这三类节点中分别包含以下信息:
1)数据源信息:该Job所需要处理的数据来源是物理表,还是中间临时数据表,以及该来源数据的具体组织结构信息;
2)字段信息:该Job处理的字段的名称、类型、所属的表;
3)字段过滤信息:该Job是否对字段进行了过滤操作,如Where或者Having,及过滤的具体情况,如大于、小于等等。
4)结果信息:该Job输出的结果的形式,如输出字段内容、字段类型和排序的类型等。
将基于抽象语法树AST结构得来的类节点的组合按照所述的三类Job节点:聚合操作AGG、数据表连接操作Join、排序操作Sort,划分要求,进一步将步骤1得到的结果转化为最终的查询计划树。
进一步,所述优化所述查询计划树,具体包括:
步骤S401,确定所述查询计划树中节点的关联关系;
步骤S402,根据所述关联关系进行节点的合并。
进一步,所述关联关系包括:输入关联、传输关联和作业流关联;
如果查询计划树中的两个节点为输入关联,则在所述两个节点的Map作业生成阶段进行节点合并;
如果查询计划树中的两个节点为传输关联,则先将所述两个节点合并为一个公共节点,在所述公共节点的Map作业生成阶段获取所述两个节点分别进行处理,在Reduce作业生成阶段再次进行节点合并;
如果查询计划树中的两个节点为作业流关联,则将所述节点合并为一个公共节点。
本发明中,根据查询计划树及MapReduce作业本身的特点,定义了三种关联:
①输入关联:Job节点的输入数据集相交。
②传输关联:Job节点在具有输入关联的基础上,在map作业生成阶段使用相同的key进行分区操作。
③作业流关联:作为父节点的Job节点,与子节点使用相同的key在map作业生成阶段进行分区操作。
并提出了三条优化规则:
I.如果两个Job之间有着输入关联,则将它们的map作业生成阶段合并。它们以让使两个Job,当时使用相同map作业生成阶段产生的中间数据。如果它们具有传输关联,它们将被合并成一个公共的Job。在这里,需要生成一个新的作业,在新作业的Map作业生成阶段将原来两个表中所需要处理的数据都获取到并进行预处理,并根据原先Job的信息,在新的Reduce作业生成阶段处理获取到的数据;
II.如果一个Job节点和它的所有子节点具有作业流关联,那么就可以将它们合并成一个公共的Job;
III.该规则是规则二的特例,主要用来处理父节点存在多个子节点,但是子节点却只有一个与父节点具有关联作业流关联。这是,并不能简单的进行合并,否则会出现问题。Job只与两个子节点Job中的一个存在作业流关联,则需在无关联Job先执行的情况下,有关联的两个Job才能合并。
进一步,所述根据优化后的查询计划树生成对应的MapReduce作业之后,还包括:根据后续遍历查询计划树的方式生成对应的MapReduce作业流。
在这里,作业流生成使用了后续遍历查询计划树的方式来实现,通过使用递归遍历的方式,确保在不存在左右子节点的情况下,再访问中间父节点,递归伪代码如下:
void traverse(T*tree)
{
if(tree->left){
traverse(tree->left);
}
if(tree->right){
traverse(tree->right);
}
access(tree->data);
}
进一步,所述根据优化后的查询计划树生成对应的MapReduce作业,具体包括:
步骤S501,生成Map作业;
步骤S502,生成Reduce作业。
为了能够生成正确的代码,必须考虑到MapReduce的核心流程及单个MapReduce作业生成的问题。
其中,单个MapReduce作业的生成方式如下:
①生成Map作业;
a.源数据的筛选:
对于输入的数据,首先根据TableNode中列信息,筛选出指定的数据列对应的数据。
b.数据的过滤:
此处的过滤是针对非聚合函数处理的列信息的过滤。这里主要是针对Where子句的内容进行过滤的,由于Whrere是一个约束条件,它根据用户指定的过滤条件,在查询出的结果返回之前执行过滤操作,最终返回过滤后的数据。由于在Where中不能使用聚合函数,因此对于经过Count、Max等聚合函数处理过的列的过滤的情况,需要放在Reduce阶段处理。这里,根据WhereNode中的where中的相关信息,对输入的数据进行过滤。
c.数据的输出:
在这里,需要关注的是Key的选取,主要是根据Order By或者Group By子句,来选择对应的列或者列的组合作为Key。这样,就可以利用MapReduce本身的Shuffle阶段的特性来实现聚合以及排序的要求。
②生成Reduce作业;
a.数据的聚合:
这里主要根据TableNode中存储的针对列的聚合信息,对列进行聚合。由于之前Map阶段已经对数据进行了聚合操作,这里仅仅需要针对Key对应的Values集合,根据聚合函数进行相应的运算,如AVG(求平均)、SUM(求和)等。
b.数据的筛选:
Reduce阶段的过滤,主要是根据Having后面的限定条件,对聚合后的数据进行再次过滤。之所以这样处理,是由于Where只能在查询返回前对数据进行过滤,不能处理数据聚合的情况。而Having相比Where,也是用来进行数据筛选操作的。不过,它是在查询返回结果集以后,再对查询结果进行的筛选操作,即Having子句能够在聚合后对记录进行筛选。
c.数据的连接Join:
将两张表具有Join关系的表,根据Where子句中指定的关联项,关联起来,合成一张表。这张表,将作为临时表,与接下来的表继续进行Join操作。或者作为最终输出的结果表。
d.结果的输出:
这里,将过滤以及Join后的数据,以NULL为Key,将所有的数据作为Value输出到指定的位置。
通过采用本发明所公开的一种基于SQL的MapReduce作业生成方法,使用户能够直接使用SQL查询语句与系统进行交互,并且能够根据用户输入的SQL查询语句,自动生成优化的MapReduce作业流,无需根据框架的特性,手动编码,进而确保开发效率及最终的执行效率。
此外,本发明还提供了一种基于SQL的MapReduce作业生成系统,如图3所示,该系统包括:SQL解析模块1、处理模块2、优化模块3和作业生成模块4,
SQL解析模块1,用于解析接收到的SQL语句,生成抽象语法树;
处理模块2,用于转化SQL解析模块生成的抽象语法树为查询计划树;
优化模块3,用于优化所述查询计划树;
作业生成模块4,用于根据优化后的查询计划树生成对应的MapReduce作业流。
进一步,所述处理模块2,包括:
获取单元,用于获取所述抽象语法树;
转换单元,用于转化所述抽象语法树为由抽象类节点组成的中间树;
生成单元,用于根据所述中间树生成对应的查询计划树。
进一步,所述优化模块3,包括:
确定单元,用于确定所述查询计划树中节点的关联关系;
优化单元,用于根据所述关联关系进行节点的合并,减少节点数目,确保最终生成的MapReduce作业流的效率。
本系统中,处理模块首先接收生成单元产生的抽象语法树AST,按照针对输入SQL语句定义的五个类:SelectNode、TableNode、WhereNode、OrderByNode及GroupByNode,将其在内存中转化成相应的类节点中间树表示方式,最后结合三类Job节点:AGG,代表聚合操作;Join,代表数据表连接操作;Sort,代表排序操作,最终得到查询计划树结构。
本系统在现有的Antlr工具对SQL语句生成抽象语法树AST的基础之上,进一步生成一种查询计划树结构,最终在查询计划树的基础上,配合一种操作任务优化策略生成MapReduce作业,以确保生成的MapReduce作业程序相比此前的同类系统,拥有更高的执行效率。
通过采用本发明所公开的一种基于SQL的MapReduce作业生成方法及系统,使用户能够直接使用SQL查询语句与系统进行交互,并且能够根据用户输入的SQL查询语句,自动生成优化的MapReduce作业流,无需根据框架的特性,手动编码,进而确保开发及最终的执行效率。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (7)

1.一种基于SQL的MapReduce作业生成方法,其特征在于,包括:
解析接收到的SQL语句,生成抽象语法树;
转化所述抽象语法树为查询计划树;
优化所述查询计划树;
根据优化后的查询计划树生成对应的MapReduce作业;
所述转化所述抽象语法树为查询计划树,具体包括:
获取所述抽象语法树;
转化所述抽象语法树为由抽象类节点组成的中间树;
根据所述中间树生成对应的查询计划树;
所述根据优化后的查询计划树的每个节点,分别生成对应的MapReduce作业,具体包括:
生成Map作业;
生成Reduce作业;
所述生成Map作业,包括:
源数据的筛选:对于输入的数据,根据TableNode中列信息,筛选出指定的数据列对应的数据,其中,所述TableNode为组成所述中间树的节点中的数据表节点;
数据的过滤:根据WhereNode中的where中的相关信息,对输入的数据进行过滤,其中,所述WhereNode为组成所述中间树的节点中的筛选表节点;
数据的输出:将过滤后的数据输出;
所述生成Reduce作业,包括:
数据的聚合:根据TableNode中存储的针对列的聚合信息,对列进行聚合;
数据的筛选:根据Having后面的限定条件,对聚合后的数据进行再次过滤;
数据的连接Join:将两张表具有Join关系的表,根据Where子句中指定的关联项,关联起来,合成一张表,将这张表作为临时表,与接下来的表继续进行Join操作;
结果的输出:以NULL为Key,将Join后的数据作为Value输出到指定的位置。
2.根据权利要求1所述的方法,其特征在于,所述解析接收到的SQL语句,生成抽象语法树,具体包括:
接收SQL语句;
对所述SQL语句进行词法分析;
对所述SQL语句进行语法分析;
根据所述分析结果,生成抽象语法树。
3.根据权利要求1所述的方法,其特征在于,所述优化所述查询计划树,具体包括:
确定所述查询计划树中节点的关联关系;
根据所述关联关系进行节点的合并。
4.根据权利要求3所述的方法,其特征在于,所述关联关系包括:输入关联、传输关联和作业流关联;
如果查询计划树中的两个节点为输入关联,则在所述两个节点的Map作业生成阶段进行节点合并;
如果查询计划树中的两个节点为传输关联,则先将所述两个节点合并为一个公共节点,在所述公共节点的Map作业生成阶段获取所述两个节点分别进行处理,在Reduce作业生成阶段再次进行节点合并;
如果查询计划树中的两个节点为作业流关联,则将所述节点合并为一个公共节点。
5.根据权利要求1所述的方法,其特征在于,所述根据优化后的查询计划树生成对应的MapReduce作业之后,还包括:根据后续遍历查询计划树的方式生成对应的MapReduce作业流。
6.一种基于SQL的MapReduce作业生成系统,其特征在于,包括:SQL解析模块、处理模块、优化模块和作业生成模块,
SQL解析模块,用于解析接收到的SQL语句,生成抽象语法树;
处理模块,用于转化SQL解析模块生成的抽象语法树为查询计划树;
优化模块,用于优化所述查询计划树;
作业生成模块,用于根据优化后的查询计划树生成对应的MapReduce作业流;
所述处理模块,包括:
获取单元,用于获取所述抽象语法树;
转换单元,用于转化所述抽象语法树为由抽象类节点组成的中间树;
生成单元,用于根据所述中间树生成对应的查询计划树;
所述作业生成模块,具体用于:
生成Map作业;
生成Reduce作业;
所述生成Map作业,包括:
源数据的筛选:对于输入的数据,根据TableNode中列信息,筛选出指定的数据列对应的数据,其中,所述TableNode为组成所述中间树的节点中的数据表节点;
数据的过滤:根据WhereNode中的where中的相关信息,对输入的数据进行过滤,其中,所述WhereNode为组成所述中间树的节点中的筛选表节点;
数据的输出:将过滤后的数据输出;
所述生成Reduce作业,包括:
数据的聚合:根据TableNode中存储的针对列的聚合信息,对列进行聚合;
数据的筛选:根据Having后面的限定条件,对聚合后的数据进行再次过滤;
数据的连接Join:将两张表具有Join关系的表,根据Where子句中指定的关联项,关联起来,合成一张表,将这张表作为临时表,与接下来的表继续进行Join操作;
结果的输出:以NULL为Key,将Join后的数据作为Value输出到指定的位置。
7.根据权利要求6所述的系统,其特征在于,所述优化模块,包括:
确定单元,用于确定所述查询计划树中节点的关联关系;
优化单元,用于根据所述关联关系进行节点的合并。
CN201310729051.3A 2013-12-25 2013-12-25 一种基于SQL的MapReduce作业生成方法及系统 Expired - Fee Related CN103761080B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310729051.3A CN103761080B (zh) 2013-12-25 2013-12-25 一种基于SQL的MapReduce作业生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310729051.3A CN103761080B (zh) 2013-12-25 2013-12-25 一种基于SQL的MapReduce作业生成方法及系统

Publications (2)

Publication Number Publication Date
CN103761080A CN103761080A (zh) 2014-04-30
CN103761080B true CN103761080B (zh) 2017-02-15

Family

ID=50528324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310729051.3A Expired - Fee Related CN103761080B (zh) 2013-12-25 2013-12-25 一种基于SQL的MapReduce作业生成方法及系统

Country Status (1)

Country Link
CN (1) CN103761080B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104008191B (zh) * 2014-06-12 2018-09-28 北京京东尚科信息技术有限公司 一种数据查询方法
US11487779B2 (en) 2014-11-05 2022-11-01 Sap Se Virtual function as query operator
CN104391895A (zh) * 2014-11-12 2015-03-04 珠海世纪鼎利通信科技股份有限公司 一种基于云计算的sql语句处理系统
CN105677683B (zh) 2014-11-21 2018-12-14 华为技术有限公司 批量数据查询方法和装置
CN104462351B (zh) * 2014-12-05 2018-07-24 河海大学 一种面向MapReduce范型的数据查询模型与方法
CN105786808B (zh) * 2014-12-15 2019-06-18 阿里巴巴集团控股有限公司 一种用于分布式执行关系型计算指令的方法与设备
CN104657447B (zh) * 2015-02-05 2018-04-03 上海达梦数据库有限公司 面向数据库管理系统的计划树优化方法和装置
CN105224633A (zh) * 2015-09-24 2016-01-06 北京锐安科技有限公司 基于SQL语言的solr查询方法及装置
CN105279281A (zh) * 2015-11-17 2016-01-27 天泽信息产业股份有限公司 一种物联网数据存取方法
CN106776639B (zh) * 2015-11-24 2020-04-10 腾讯科技(深圳)有限公司 基于结构化查询语言的数据处理方法及数据处理装置
CN105487872A (zh) * 2015-12-02 2016-04-13 上海电机学院 一种MapReduce程序快速生成方法
CN107102995B (zh) * 2016-02-19 2020-02-21 华为技术有限公司 一种sql执行计划的确定方法及装置
CN107273504A (zh) * 2017-06-19 2017-10-20 浪潮软件集团有限公司 一种基于Kudu的数据查询方法和装置
CN107818181A (zh) * 2017-11-27 2018-03-20 深圳市华成峰科技有限公司 基于Plcient交互式引擎的索引方法及其系统
US10637887B2 (en) 2017-12-29 2020-04-28 Cyphort Inc. System for query injection detection using abstract syntax trees
CN108920614B (zh) * 2018-06-28 2021-08-20 北京奇虎科技有限公司 在线查询数据的方法、装置及系统
CN108984698B (zh) * 2018-07-05 2023-06-27 福建星瑞格软件有限公司 一种数据库业务行为的建模方法
CN109101468B (zh) * 2018-08-02 2020-07-03 浙江大学 一种文本数据转换脚本的执行优化方法
CN110321388B (zh) * 2019-02-26 2021-07-02 南威软件股份有限公司 一种基于Greenplum的快速排序查询方法及系统
CN110287114B (zh) * 2019-06-26 2021-06-04 深圳前海微众银行股份有限公司 一种数据库脚本性能测试的方法及装置
CN110399388A (zh) * 2019-07-29 2019-11-01 中国工商银行股份有限公司 数据查询方法、系统和设备
CN111400338B (zh) * 2020-03-04 2022-11-22 深圳平安医疗健康科技服务有限公司 Sql优化方法、装置、存储介质及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521367A (zh) * 2011-12-16 2012-06-27 清华大学 面向海量数据的分布式处理方法
CN102609451A (zh) * 2012-01-11 2012-07-25 华中科技大学 面向流式数据处理的sql查询计划生成方法
CN102799622A (zh) * 2012-06-19 2012-11-28 北京大学 基于MapReduce扩展框架的分布式SQL查询方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521367A (zh) * 2011-12-16 2012-06-27 清华大学 面向海量数据的分布式处理方法
CN102609451A (zh) * 2012-01-11 2012-07-25 华中科技大学 面向流式数据处理的sql查询计划生成方法
CN102799622A (zh) * 2012-06-19 2012-11-28 北京大学 基于MapReduce扩展框架的分布式SQL查询方法

Also Published As

Publication number Publication date
CN103761080A (zh) 2014-04-30

Similar Documents

Publication Publication Date Title
CN103761080B (zh) 一种基于SQL的MapReduce作业生成方法及系统
Cai et al. IoT-based big data storage systems in cloud computing: perspectives and challenges
US9767147B2 (en) Method of converting query plans to native code
US9053210B2 (en) Graph query processing using plurality of engines
CN104346377B (zh) 一种基于唯一标识的数据集成和交换方法
CN103123652A (zh) 数据查询方法和集群数据库系统
CN102609451A (zh) 面向流式数据处理的sql查询计划生成方法
CN102270137B (zh) 一种获取体系结构描述语言的方法和一种建模工具
CN105718593A (zh) 一种数据库查询优化方法及系统
CN103942228A (zh) 规则引擎、计算方法、业务系统及调用方法
CN105512162A (zh) 一种基于Storm的流数据实时智能化处理框架
CN107491476B (zh) 一种适用于多种大数据管理系统的数据模型转换及查询分析方法
CN104424018A (zh) 分布式计算事务处理方法及装置
US20180365294A1 (en) Artificial intelligence driven declarative analytic platform technology
CN101377806A (zh) 一种基于系统源代码搜索隐通道的信息流分析方法
CN107818181A (zh) 基于Plcient交互式引擎的索引方法及其系统
Kim et al. Scan-sharing for optimizing rdf graph pattern matching on mapreduce
CN102184194B (zh) 基于本体的知识地图绘制系统
Xiao et al. Integration of heterogeneous agriculture information system based on interoperation of domain ontology
CN102043925A (zh) 一种新型分析信息流的方法
CN116795859A (zh) 数据分析方法、装置、计算机设备和存储介质
Azzam et al. Towards making distributed rdf processing flinker
Ceballos et al. SPARQL2Flink: Evaluation of SPARQL Queries on Apache Flink
Schildgen et al. Transformations on Graph Databases for Polyglot Persistence with NotaQL
Zhao et al. Creative Combination of Legacy System and Map Reduce in Cloud Migration

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170215