CN103761080A - 一种基于SQL的MapReduce作业生成方法及*** - Google Patents
一种基于SQL的MapReduce作业生成方法及*** Download PDFInfo
- Publication number
- CN103761080A CN103761080A CN201310729051.3A CN201310729051A CN103761080A CN 103761080 A CN103761080 A CN 103761080A CN 201310729051 A CN201310729051 A CN 201310729051A CN 103761080 A CN103761080 A CN 103761080A
- Authority
- CN
- China
- Prior art keywords
- tree
- query plan
- node
- sql
- plan tree
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000005457 optimization Methods 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 230000001131 transforming effect Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000001914 filtration Methods 0.000 description 8
- 238000006116 polymerization reaction Methods 0.000 description 7
- 238000012216 screening Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241001080526 Vertica Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007799 cork Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000011012 sanitization Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于SQL的MapReduce作业生成方法及***,该方法包括,解析接收到的SQL语句,生成抽象语法树;转化所述抽象语法树为查询计划树;优化所述查询计划树;根据优化后的查询计划树生成对应的MapReduce作业,该***基于Antlr工具对SQL语句生成抽象语法树AST,并进一步基于AST生成一种查询计划树结构,最终在查询计划树的基础上生成MapReduce作业,同时还提供了相应的优化策略,以确保生成的MapReduce作业拥有更高的执行效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于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子句对应的信息。主要是GroupBy针对的列,主要用来判断聚合相关。
在完成了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 (10)
1.一种基于SQL的MapReduce作业生成方法,其特征在于,包括:
解析接收到的SQL语句,生成抽象语法树;
转化所述抽象语法树为查询计划树;
优化所述查询计划树;
根据优化后的查询计划树生成对应的MapReduce作业。
2.根据权利要求1所述的方法,其特征在于,所述解析接收到的SQL语句,生成抽象语法树,具体包括:
接收SQL语句;
对所述SQL语句进行词法分析;
对所述SQL语句进行语法分析;
根据所述分析结果,生成抽象语法树。
3.根据权利要求1所述的方法,其特征在于,所述转化所述抽象语法树为查询计划树,具体包括:
获取所述抽象语法树;
转化所述抽象语法树为由抽象类节点组成的中间树;
根据所述中间树生成对应的查询计划树。
4.根据权利要求1所述的方法,其特征在于,所述优化所述查询计划树,具体包括:
确定所述查询计划树中节点的关联关系;
根据所述关联关系进行节点的合并。
5.根据权利要求4所述的方法,其特征在于,所述关联关系包括:输入关联、传输关联和作业流关联;
如果查询计划树中的两个节点为输入关联,则在所述两个节点的Map作业生成阶段进行节点合并;
如果查询计划树中的两个节点为传输关联,则先将所述两个节点合并为一个公共节点,在所述公共节点的Map作业生成阶段获取所述两个节点分别进行处理,在Reduce作业生成阶段再次进行节点合并;
如果查询计划树中的两个节点为作业流关联,则将所述节点合并为一个公共节点。
6.根据权利要求1所述的方法,其特征在于,所述根据优化后的查询计划树的每个节点,分别生成对应的MapReduce作业,具体包括:
生成Map作业;
生成Reduce作业。
7.根据权利要求1所述的方法,其特征在于,所述根据优化后的查询计划树生成对应的MapReduce作业之后,还包括:根据后续遍历查询计划树的方式生成对应的MapReduce作业流。
8.一种基于SQL的MapReduce作业生成***,其特征在于,包括:SQL解析模块、处理模块、优化模块和作业生成模块,
SQL解析模块,用于解析接收到的SQL语句,生成抽象语法树;
处理模块,用于转化SQL解析模块生成的抽象语法树为查询计划树;
优化模块,用于优化所述查询计划树;
作业生成模块,用于根据优化后的查询计划树生成对应的MapReduce作业流。
9.根据权利要求8所述的***,其特征在于,所述处理模块,包括:
获取单元,用于获取所述抽象语法树;
转换单元,用于转化所述抽象语法树为由抽象类节点组成的中间树;
生成单元,用于根据所述中间树生成对应的查询计划树。
10.根据权利要求8所述的***,其特征在于,所述优化模块,包括:
确定单元,用于确定所述查询计划树中节点的关联关系;优化单元,用于根据所述关联关系进行节点的合并。
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 true CN103761080A (zh) | 2014-04-30 |
CN103761080B 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) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008191A (zh) * | 2014-06-12 | 2014-08-27 | 北京京东尚科信息技术有限公司 | 一种数据查询方法 |
CN104391895A (zh) * | 2014-11-12 | 2015-03-04 | 珠海世纪鼎利通信科技股份有限公司 | 一种基于云计算的sql语句处理*** |
CN104462351A (zh) * | 2014-12-05 | 2015-03-25 | 河海大学 | 一种面向MapReduce范型的数据查询模型与方法 |
CN104657447A (zh) * | 2015-02-05 | 2015-05-27 | 上海达梦数据库有限公司 | 面向数据库管理***的计划树优化方法和装置 |
CN105224633A (zh) * | 2015-09-24 | 2016-01-06 | 北京锐安科技有限公司 | 基于SQL语言的solr查询方法及装置 |
CN105279281A (zh) * | 2015-11-17 | 2016-01-27 | 天泽信息产业股份有限公司 | 一种物联网数据存取方法 |
CN105487872A (zh) * | 2015-12-02 | 2016-04-13 | 上海电机学院 | 一种MapReduce程序快速生成方法 |
WO2016078592A1 (zh) * | 2014-11-21 | 2016-05-26 | 华为技术有限公司 | 批量数据查询方法和装置 |
WO2016095726A1 (zh) * | 2014-12-15 | 2016-06-23 | 阿里巴巴集团控股有限公司 | 一种用于分布式执行关系型计算指令的方法与设备 |
CN106776639A (zh) * | 2015-11-24 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 基于结构化查询语言的数据处理方法及数据处理装置 |
CN107273504A (zh) * | 2017-06-19 | 2017-10-20 | 浪潮软件集团有限公司 | 一种基于Kudu的数据查询方法和装置 |
CN107818181A (zh) * | 2017-11-27 | 2018-03-20 | 深圳市华成峰科技有限公司 | 基于Plcient交互式引擎的索引方法及其*** |
CN108920614A (zh) * | 2018-06-28 | 2018-11-30 | 北京奇虎科技有限公司 | 在线查询数据的方法、装置及*** |
CN108984698A (zh) * | 2018-07-05 | 2018-12-11 | 福建星瑞格软件有限公司 | 一种数据库业务行为的建模方法 |
RU2674886C2 (ru) * | 2016-02-19 | 2018-12-13 | Хуавэй Текнолоджиз Ко., Лтд. | Способ и устройство для определения плана исполнения sql |
CN109101468A (zh) * | 2018-08-02 | 2018-12-28 | 浙江大学 | 一种文本数据转换脚本的执行优化方法 |
CN109992989A (zh) * | 2017-12-29 | 2019-07-09 | 西普霍特公司 | 使用抽象语法树的用于查询注入检测的*** |
CN110287114A (zh) * | 2019-06-26 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种数据库脚本性能测试的方法及装置 |
CN110321388A (zh) * | 2019-02-26 | 2019-10-11 | 南威软件股份有限公司 | 一种基于Greenplum的快速排序查询方法及*** |
CN110399388A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 数据查询方法、***和设备 |
CN111400338A (zh) * | 2020-03-04 | 2020-07-10 | 平安医疗健康管理股份有限公司 | Sql优化方法、装置、存储介质及计算机设备 |
CN112181704A (zh) * | 2020-09-28 | 2021-01-05 | 京东数字科技控股股份有限公司 | 一种大数据任务处理方法、装置、电子设备及存储介质 |
US11487779B2 (en) | 2014-11-05 | 2022-11-01 | Sap Se | Virtual function as query operator |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521367B (zh) * | 2011-12-16 | 2013-09-04 | 清华大学 | 面向海量数据的分布式处理方法 |
CN102609451B (zh) * | 2012-01-11 | 2014-12-17 | 华中科技大学 | 面向流式数据处理的sql查询计划生成方法 |
CN102799622B (zh) * | 2012-06-19 | 2015-07-15 | 北京大学 | 基于MapReduce扩展框架的分布式SQL查询方法 |
-
2013
- 2013-12-25 CN CN201310729051.3A patent/CN103761080B/zh not_active Expired - Fee Related
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008191A (zh) * | 2014-06-12 | 2014-08-27 | 北京京东尚科信息技术有限公司 | 一种数据查询方法 |
US11487779B2 (en) | 2014-11-05 | 2022-11-01 | Sap Se | Virtual function as query operator |
CN104391895A (zh) * | 2014-11-12 | 2015-03-04 | 珠海世纪鼎利通信科技股份有限公司 | 一种基于云计算的sql语句处理*** |
WO2016078592A1 (zh) * | 2014-11-21 | 2016-05-26 | 华为技术有限公司 | 批量数据查询方法和装置 |
US10769147B2 (en) | 2014-11-21 | 2020-09-08 | Huawei Technologies Co., Ltd. | Batch data query method and apparatus |
CN104462351A (zh) * | 2014-12-05 | 2015-03-25 | 河海大学 | 一种面向MapReduce范型的数据查询模型与方法 |
CN104462351B (zh) * | 2014-12-05 | 2018-07-24 | 河海大学 | 一种面向MapReduce范型的数据查询模型与方法 |
CN105786808A (zh) * | 2014-12-15 | 2016-07-20 | 阿里巴巴集团控股有限公司 | 一种用于分布式执行关系型计算指令的方法与设备 |
WO2016095726A1 (zh) * | 2014-12-15 | 2016-06-23 | 阿里巴巴集团控股有限公司 | 一种用于分布式执行关系型计算指令的方法与设备 |
CN105786808B (zh) * | 2014-12-15 | 2019-06-18 | 阿里巴巴集团控股有限公司 | 一种用于分布式执行关系型计算指令的方法与设备 |
CN104657447A (zh) * | 2015-02-05 | 2015-05-27 | 上海达梦数据库有限公司 | 面向数据库管理***的计划树优化方法和装置 |
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 | 腾讯科技(深圳)有限公司 | 基于结构化查询语言的数据处理方法及数据处理装置 |
CN106776639A (zh) * | 2015-11-24 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 基于结构化查询语言的数据处理方法及数据处理装置 |
CN105487872A (zh) * | 2015-12-02 | 2016-04-13 | 上海电机学院 | 一种MapReduce程序快速生成方法 |
RU2674886C2 (ru) * | 2016-02-19 | 2018-12-13 | Хуавэй Текнолоджиз Ко., Лтд. | Способ и устройство для определения плана исполнения sql |
US10901976B2 (en) | 2016-02-19 | 2021-01-26 | Huawei Technologies Co., Ltd. | Method and apparatus for determining SQL execution plan |
CN107273504A (zh) * | 2017-06-19 | 2017-10-20 | 浪潮软件集团有限公司 | 一种基于Kudu的数据查询方法和装置 |
CN107818181A (zh) * | 2017-11-27 | 2018-03-20 | 深圳市华成峰科技有限公司 | 基于Plcient交互式引擎的索引方法及其*** |
CN109992989B (zh) * | 2017-12-29 | 2023-10-13 | 西普霍特公司 | 使用抽象语法树的用于查询注入检测的*** |
US11558418B2 (en) | 2017-12-29 | 2023-01-17 | Cyphort Inc. | System for query injection detection using abstract syntax trees |
CN109992989A (zh) * | 2017-12-29 | 2019-07-09 | 西普霍特公司 | 使用抽象语法树的用于查询注入检测的*** |
CN108920614B (zh) * | 2018-06-28 | 2021-08-20 | 北京奇虎科技有限公司 | 在线查询数据的方法、装置及*** |
CN108920614A (zh) * | 2018-06-28 | 2018-11-30 | 北京奇虎科技有限公司 | 在线查询数据的方法、装置及*** |
CN108984698A (zh) * | 2018-07-05 | 2018-12-11 | 福建星瑞格软件有限公司 | 一种数据库业务行为的建模方法 |
CN109101468A (zh) * | 2018-08-02 | 2018-12-28 | 浙江大学 | 一种文本数据转换脚本的执行优化方法 |
CN110321388A (zh) * | 2019-02-26 | 2019-10-11 | 南威软件股份有限公司 | 一种基于Greenplum的快速排序查询方法及*** |
CN110321388B (zh) * | 2019-02-26 | 2021-07-02 | 南威软件股份有限公司 | 一种基于Greenplum的快速排序查询方法及*** |
CN110287114A (zh) * | 2019-06-26 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种数据库脚本性能测试的方法及装置 |
CN110399388A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 数据查询方法、***和设备 |
CN111400338A (zh) * | 2020-03-04 | 2020-07-10 | 平安医疗健康管理股份有限公司 | Sql优化方法、装置、存储介质及计算机设备 |
CN111400338B (zh) * | 2020-03-04 | 2022-11-22 | 深圳平安医疗健康科技服务有限公司 | Sql优化方法、装置、存储介质及计算机设备 |
CN112181704A (zh) * | 2020-09-28 | 2021-01-05 | 京东数字科技控股股份有限公司 | 一种大数据任务处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103761080B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103761080A (zh) | 一种基于SQL的MapReduce作业生成方法及*** | |
You et al. | Large-scale spatial join query processing in cloud | |
Hagedorn et al. | The STARK framework for spatio-temporal data analytics on spark | |
Xie et al. | Simba: Efficient in-memory spatial analytics | |
US9053210B2 (en) | Graph query processing using plurality of engines | |
Paradies et al. | GRAPHITE: an extensible graph traversal framework for relational database management systems | |
Bajaber et al. | Big data 2.0 processing systems: Taxonomy and open challenges | |
CN106202207B (zh) | 一种基于HBase-ORM的索引及检索*** | |
CN103412853B (zh) | 一种针对文档转换器的测试用例自动生成方法 | |
Allam | Components and development in big data system: A survey | |
CN105550268A (zh) | 大数据流程建模分析引擎 | |
US11449477B2 (en) | Systems and methods for context-independent database search paths | |
CN102682176B (zh) | 基于元胞自动机和赋权超图的大规模集成电路划分方法 | |
CN102541631B (zh) | 以多线程不同驱动源执行计划处理查询的方法和*** | |
CN103440303A (zh) | 一种异构云存储***及其数据处理方法 | |
CN102799624B (zh) | 基于Datalog的分布式环境下大图数据查询方法 | |
Sellami et al. | Complex queries optimization and evaluation over relational and NoSQL data stores in cloud environments | |
CN104050202A (zh) | 用于搜索数据库的方法和装置 | |
JP2017539012A (ja) | SQL−on−Hadoopシステムにおける複数クエリ最適化 | |
Orakzai et al. | k/2-hop: fast mining of convoy patterns with effective pruning | |
Wang et al. | A framework for distributed data-parallel execution in the Kepler scientific workflow system | |
Shanoda et al. | JOMR: Multi-join optimizer technique to enhance map-reduce job | |
Eldawy et al. | Sphinx: empowering impala for efficient execution of SQL queries on big spatial data | |
Schlegel et al. | Balloon fusion: SPARQL rewriting based on unified co-reference information | |
CN116795859A (zh) | 数据分析方法、装置、计算机设备和存储介质 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170215 |