HiveSQL任务的执行方法、装置及存储介质与流程

文档序号:23991806发布日期:2021-02-20 13:42阅读:103来源:国知局
hivesql任务的执行方法、装置及存储介质
技术领域
:[0001]本公开涉及计算机处理领域,尤其涉及一种hivesql任务的执行方法、装置及存储介质。
背景技术
::[0002]相关技术中,例如在大数据处理的过程中,特别是在结构化数据的处理,通常使用sql(structuredquerylanguage)语言开发程序进行处理。例如,可以使用sql语言开发hivesql任务,以对hive数据仓库分析系统中所存储的数据进行读取以及管理。其中,hive是基于hadoop分布式文件系统构建的一套数据仓库分析系统,hive提供了基于sql语言的查询方式,来分析存储在hadoop分布式文件系统中的结构化的数据,可以将hadoop分布式文件系统中的结构化的数据文件映射为数据库表。hive提供的基于sql语言的查询方式的任务称为hivesql任务。hadoop是一种分布式系统的基础架构。[0003]hivesql任务的执行速度直接影响着对hive数据仓库分析系统的数据的处理速度。提供一种提高hivesql任务的执行速度的hivesql任务的执行方法,是亟待解决的问题。技术实现要素:[0004]为克服相关技术中存在的问题,本公开提供一种hivesql任务的执行方法、装置及存储介质。[0005]根据本公开实施例的第一方面,提供一种hivesql任务的执行方法,应用于电子设备,所述hivesql任务的执行方法包括:[0006]确定hivesql任务是否符合预设优化条件;[0007]如果是,根据所述预设优化条件所对应的优化方案优化所述hivesql任务;[0008]执行优化后的所述hivesql任务。[0009]其中,所述hivesql任务的执行方法还包括:[0010]删除所述hivesql任务中sql语句中的冗余信息;[0011]所述确定hivesql任务是否符合预设优化条件包括:[0012]确定删除冗余信息后的hivesql任务是否符合预设优化条件。[0013]其中,所述确定删除冗余信息后的hivesql任务是否符合预设优化条件包括:[0014]确定所述删除冗余信息后的hivesql任务中sql语句中是否包括预设词法;[0015]如果包括,所述根据所述预设优化条件所对应的优化方案优化所述hivesql任务包括:[0016]确定所述hivesql任务的sql语句中是否包括与所包括的预设词法对应的优化参数;[0017]如果未包括,在所述hivesql任务的sql语句中加入与所包括的预设词法对应的优化参数。[0018]其中,所述确定删除冗余信息后的hivesql任务是否符合预设优化条件包括:[0019]解析所述删除冗余信息后的hivesql任务,确定所述删除冗余信息后的hivesql任务中是否包括上游表和/或下游表;[0020]如果包括,所述根据所述预设优化条件所对应的优化方案优化所述hivesql任务包括:[0021]确定所述hivesql任务中的所述sql语句中是否包括与所包括的上游表和/或下游表对应的优化参数;[0022]如果未包括,在所述hivesql任务的sql语句中加入与所包括的上游表和/或下游表对应的优化参数。[0023]其中,所述确定删除冗余信息后的hivesql任务是否符合预设优化条件包括:[0024]确定所述删除冗余信息后的hivesql任务中上游表和/或下游表的数据量;[0025]所述根据所述预设优化条件所对应的优化方案优化所述hivesql任务包括:[0026]确定所述hivesql任务中的所述sql语句中是否包括与所确定的上游表和/或下游表的数据量对应的优化参数;[0027]如果未包括,在所述hivesql任务的sql语句中加入与所确定的上游表和/或下游表的数据量对应的优化参数。[0028]其中,所述确定删除冗余信息后的hivesql任务是否符合预设优化条件包括:[0029]确定所述删除冗余信息后的hivesql任务中上游表和/或下游表中包括的第一文件的数量是否大于预设阈值;其中,所述第一文件包括文件大小小于或等于预设大小的文件;[0030]如果是,所述根据所述预设优化条件所对应的优化方案优化所述hivesql任务包括:[0031]确定所述hivesql任务中的所述sql语句中是否包括与所述hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值时对应的优化参数;[0032]如果未包括,在所述hivesql任务的sql语句中加入与所述hivesql任务中第一文件的数量大于预设阈值时对应的优化参数。[0033]其中,所述冗余信息包括下述信息中的一种或多种:[0034]注释信息,多余符号信息。[0035]根据本公开实施例的第二方面,提供一种hivesql任务的执行装置,所述hivesql任务的执行装置包括:[0036]确定模块,被配置为确定hivesql任务是否符合预设优化条件;[0037]优化模块,被配置为,如果hivesql任务符合预设优化条件,根据所述预设优化条件所对应的优化方案优化所述hivesql任务[0038]执行模块,被配置为,执行优化后的所述hivesql任务。[0039]其中,所述hivesq任务的执行装置还包括:[0040]删除模块,被配置为删除所述hivesql任务中sql语句中的冗余信息;[0041]所述确定模块被配置为,确定删除冗余信息后的hivesql任务是否符合预设优化条件。[0042]其中,所述确定模块被配置为:[0043]确定所述删除冗余信息后的hivesql任务中sql语句中是否包括预设词法;[0044]如果删除冗余信息后的hivesql任务中sql语句中包括预设词法,所述优化模块被配置为:[0045]确定所述hivesql任务的sql语句中是否包括与所包括的预设词法对应的优化参数;[0046]如果未包括,在所述hivesql任务的sql语句中加入与所包括的预设词法对应的优化参数。[0047]其中,所述确定模块被配置为:[0048]解析所述删除冗余信息后的hivesql任务,确定所述删除冗余信息后的hivesql任务中是否包括上游表和/或下游表;[0049]如果所述删除冗余信息后的hivesql任务中包括上游表和/或下游表,所述优化模块被配置为:[0050]确定所述hivesql任务中的所述sql语句中是否包括与所包括的上游表和/或下游表对应的优化参数;[0051]如果未包括,在所述hivesql任务的sql语句中加入与所包括的上游表和/或下游表对应的优化参数。[0052]其中,所述确定模块被配置为:[0053]确定所述删除冗余信息后的hivesql任务中上游表和/或下游表的数据量;[0054]所述优化模块被配置为:[0055]确定所述hivesql任务中的所述sql语句中是否包括与所确定的上游表和/或下游表的数据量对应的优化参数;[0056]如果未包括,在所述hivesql任务的sql语句中加入与所确定的上游表和/或下游表的数据量对应的优化参数。[0057]其中,所述确定模块被配置为:[0058]确定所述删除冗余信息后的hivesql任务中上游表和/或下游表中包括的第一文件的数量是否大于预设阈值;其中。所述第一文件包括文件大小小于等于预设大小的文件;[0059]如果所述删除冗余信息后的hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值,所述优化模块被配置为:[0060]确定所述hivesql任务中的所述sql语句中是否包括与所述hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值时对应的优化参数;[0061]如果未包括,在所述hivesql任务的sql语句中加入与所述hivesql任务中第一文件的数量大于预设阈值时对应的优化参数。[0062]起重工,所述冗余信息包括下述信息中的一种或多种:[0063]注释信息,多余符号信息。[0064]根据本公开实施例的第三方面,提供一种hivesql任务的执行装置,包括:[0065]处理器;[0066]用于存储处理器可执行指令的存储器;[0067]其中,所述处理器被配置为执行一种hivesql任务的执行方法,所述hivesql任务的执行方法包括:[0068]确定hivesql任务是否符合预设优化条件;[0069]如果是,根据所述预设优化条件所对应的优化方案优化所述hivesql任务;[0070]执行优化后的所述hivesql任务。[0071]根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种所述hivesql任务的执行方法,所述hivesql任务的执行方法包括:[0072]确定hivesql任务是否符合预设优化条件;[0073]如果是,根据所述预设优化条件所对应的优化方案优化所述hivesql任务;[0074]执行优化后的所述hivesql任务。[0075]本公开的实施例提供的技术方案可以包括以下有益效果:本公开所提供的hivesql任务的执行方法是在hivesql任务被执行前,确定hivesql任务是否符合预设优化条件,根据预设优化条件所对应的优化方案优化hivesql任务,以提前对hivesql任务进行优化,以避免在hivesql任务执行完成后,针对执行完成的任务进行诊断,而形成事后补救的状态。[0076]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明[0077]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。[0078]图1是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图;[0079]图2是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图;[0080]图3是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图;[0081]图4是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图;[0082]图5是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图;[0083]图6是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图;[0084]图7是根据一示例性实施例示出的一种hivesql任务的执行装置的框图;[0085]图8是根据一示例性实施例示出的一种hivesql任务的执行装置的框图(移动终端的一般结构)。具体实施方式[0086]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。[0087]本公开实施例中提供了一种hivesql任务的执行方法。应用于电子设备。图1是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图,如图1所示,hivesql任务的执行方法应用于hivesql任务被执行前,包括以下步骤。[0088]在步骤s11中,确定hivesql任务是否符合预设优化条件;[0089]在步骤s12中,如果是,根据预设优化条件所对应的优化方案优化hivesql任务;[0090]在步骤s13中,执行优化后的hivesql任务。[0091]在本公开中,为了提高hivesql任务的执行速度,提供了一种hivesql任务的执行方法,确定hivesql任务是否符合预设优化条件,如果符合,根据预设优化条件对应的优化方案优化hivesql任务,执行优化后的hivesql任务。本公开所提供的hivesql任务的执行方法是在hivesql任务被执行前对hivesql任务进行优化,以避免在hivesql任务执行完成后,针对执行完成的任务进行诊断,而形成事后补救的状态。[0092]预设优化条件可以包括sql语句的词法优化条件,hivesql任务中上游表和/或下游表的优化条件,hivesql任务中上游表和/或下游表的数据量的优化条件,hivesql任务中第一文件的数据量的优化条件等。其中,第一文件是指文件大小小于预设大小的文件。预设大小可以根据需要设定,例如可以为64m。[0093]在本公开所提供的hivesql任务的执行方法中,对hivesql任务中sql语句的词法以及上游表和下游表进行解析,以确定是否符合相应的预设优化条件。为了避免在对hivesql任务的解析,确定是否符合预设优化条件的过程出现报错,可以先对hivesql任务进行预处理,即可以删除hivesql任务中sql语句中的冗余信息,例如注释信息或者多余符号信息。在hivesql任务的编写过程中,为了便于解读hivesql任务的sql语句,会加一些注释信息,例如包含“——”的语句为注释信息,可以将这些包含“——”的注释信息删除,以便于对hivesql任务的解析。还可能会包括一些多余符号信息,例如带“;”的参数信息,为了避免在对hivesql任务的解析过程中出现报错,可以将这些带“;”的参数信息删除,以便于对hivesql任务的解析。[0094]对hivesql任务中sql语句的词法以及上游表和下游表的解析可以在删除冗余信息后的hivesql任务中进行,即确定删除冗余信息后的hivesql任务是否符合预设优化条件,进而提高确定是否符合预设优化条件的准确性。[0095]在删除冗余信息后的hivesql任务符合预设优化条件时,可以根据对应的优化方案对原始的hivesql任务进行优化,并执行优化后的hivesql任务。在后续描述中,将删除冗余信息后的hivesql任务称为删除冗余信息后的hivesql任务,将原始的hivesql任务称为hivesql任务。[0096]本公开的一个示例性的实施例中提供了一种hivesql任务的执行方法。如图2所示,图2是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图:[0097]确定删除冗余信息后的hivesql任务是否符合预设优化条件包括:[0098]在步骤s111中,确定删除冗余信息后的hivesql任务中的sql语句中是否包括预设词法;[0099]如果包括,根据预设优化条件所对应的优化方案优化hivesql任务包括:[0100]在步骤s121中,确定hivesql任务中sql语句中是否包括与所包括的预设词法对应的优化参数;[0101]在步骤s122中,如果未包括,在hivesql任务的sql语句中加入与所包括的预设词法对应的优化参数。[0102]在本公开所提供的hivesql任务的执行方法中,预设优化条件可以包括确定删除冗余信息后的hivesql任务的sql语句中是否包括预设词法,例如,是否有unionall词法,如果有,确认hivesql任务中sql语句中是否包括与unionall词法对应的优化参数,如果未包括,在hivesql任务的sql语句中加入与unionall词法对应的优化参数。与unionall词法对应的优化参数可以为“sethive.exec.parallel=true;”,可以在hivesql任务的sql语句中加入“sethive.exec.parallel=true;”这一优化参数。例如,可以在hivesql任务的sql语句的首行加入这一参数。在hivesql任务的sql语句中加入这一优化参数后,在hivesql任务被执行时,hivesql任务被优化,提高hivesql任务的执行速度。[0103]本公开的一个示例性的实施例中提供了一种hivesql任务的执行方法。如图3所示,图3是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图:[0104]确定删除冗余信息后的hivesql任务是否符合预设优化条件包括:[0105]在步骤s112中,解析删除冗余信息后的hivesql任务,确定删除冗余信息后的hivesql任务中是否包括上游表和/或下游表;[0106]如果包括,根据预设优化条件所对应的优化方案优化hivesql任务包括:[0107]在步骤s123中,hivesql任务的sql语句中是否包括与所包括的上游表和/或下游表对应的优化参数;[0108]在步骤s124中,如果未包括,在hivesql任务的sql语句中加入与所包括的上游表和/或下游表对应的优化参数。[0109]在本公开所提供的hivesql任务的执行方法中,预设优化条件可以包括确定删除冗余信息后的hivesql任务中是否包括上游表和/或下游表。其中,上游表是指用于数据查询的表格,下游表是指数据输出的表格。如果在删除冗余信息后的hivesql任务中包括上游表和/或下游表,hivesql任务的sql语句中是否包括与所包括的上游表和/或下游表对应的优化参数,如果未包括,在hivesql任务的sql语句中加入与所包括的上游表和/或下游表对应的优化参数。[0110]例如,在hivesql任务中,包括了三个表格,第一个表格的表名为development_table1,如下表1,表1中存储了研发部门的员工表。第二个表格的表名为development_table2,表2中存储了人事部门的员工表。第三个表格的表名为company_table。表3存储了公司全体员工的员工表。[0111]表1,development_table1[0112]department_iddepartment_namestaff_idstaff_namesex1研发部100张三男2研发部101李四女[0113]表2,development_table2[0114]department_iddepartment_namestaff_idstaff_namesex3人事部102冯六女4人事部103陈七女[0115]表3,company_table[0116]department_iddepartment_namestaff_idstaff_namesex3人事部102冯六女4人事部103陈七女1研发部100张三男2研发部101李四女[0117]在hivesql任务的sql语句中包括:[0118]insertintocompany_tableselectstaff_idfromdevelopment_table2;[0119]insertintocompany_tableselectstaff_idfromdevelopment_table1;[0120]该sql语句表示从development_table2和development_table1表格中查询相应的数据,并将查询到的数据插入到company_table的表格中。表格development_table2和development_table1为上游表,company_table表格为下游表。其中,上游表可以为一个或者多个,下游表通常为一个。[0121]当解析删除冗余信息后的hivesql任务后,确定包括上游表和/或下游表时,hivesql任务的sql语句中是否包括与所包括的上游表和/或下游表对应的优化参数,例如,hivesql任务中的上游表和/或下游表对应的优化参数可以是“setio.compression.codecs=org.apache.hadoop.io.compress.gzipcodec;”,如果未包括,可以在hivesql任务的sql语句中加入这一参数,例如,可以在hivesql任务的sql语句的首行加入这一参数。在hivesql任务的sql语句中加入这一优化参数后,在hivesql任务被执行时,整体性能会被大幅提升,例如,预计的存储空间可以减小到未优化前的十分之一,预计所需的计算资源可以减小到未优化前的十五分之一,预计执行时间可以减小到未优化前的三分之一,预计总成本可以减小到未优化前的十二分之一。[0122]本公开的一个示例性的实施例中提供了一种hivesql任务的执行方法。如图4所示,图4是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图:[0123]确定删除冗余信息后的hivesql任务是否符合预设优化条件包括:[0124]在步骤s113中,确定删除冗余信息后的hivesql任务中上游表和/或下游表的数据量;[0125]根据预设优化条件所对应的优化方案优化hivesql任务包括:[0126]在步骤s125中,hivesql任务中的sql语句中是否包括与所确定的上游表和/或下游表的数据量对应的优化参数;[0127]在步骤s126中,如果未包括,在hivesql任务的sql语句中加入与所确定的上游表和/或下游表的数据量对应的优化参数。[0128]在本公开所提供的hivesql任务的执行方法中,预设优化条件可以包括确定删除冗余信息后的hivesql任务中上游表和/或下游表的数据量。其中,数据量是指hivesql任务中上游表和/或下游表中数据的字节数。本公开所提供的hivesql任务的执行方法中,在确定了删除冗余信息后的hivesql任务中的上游表和/或下游表的数据量后,可以hivesql任务的sql语句中是否包括hivesql任务中上游表和/或下游表的数据量对应的优化参数,如果未包括,可以在hivesql任务的sql语句中加入与hivesql任务中上游表和/或下游表的数据量对应的优化参数,以能确定在执行hivesql任务时的并行线程数量。例如,可以在hivesql任务的sql语句中加入hivesql任务中上游表和/或下游表的数据量对应的优化参数,以设置一个线程处理的数据量,例如可以通过增加优化参数,“setmapreduce.input.fileinputformat.split.maxsize=268435456;”来设定一个线程处理的数据量的大小为256m,当设置了一个线程处理的数据量后,根据所确定的删除冗余信息后的hivesql任务中上游表和/或下游表的数据量,就可以确定在hivesql任务被执行时的并行线程数。如果数据量比较大,可以设置多个并行的线程,以提高hivesql任务被执行的效率。例如,可以在hivesql任务的sql语句的首行加入hivesql任务中上游表和/或下游表的数据量对应的优化参数,“setmapreduce.input.fileinputformat.split.maxsize=268435456;”。[0129]本公开的一个示例性的实施例中提供了一种hivesql任务的执行方法。如图5所示,图5是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图:[0130]确定删除冗余信息后的hivesql任务是否符合预设优化条件包括:[0131]在步骤s114中,确定删除冗余信息后的hivesql任务中上游表和/或下游表中包括的第一文件的数量是否大于预设阈值;其中。第一文件包括文件大小小于或等于预设大小的文件;[0132]如果是,根据预设优化条件所对应的优化方案优化hivesql任务包括:[0133]在步骤s127中,hivesql任务中的sql语句中是否包括与hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值时对应的优化参数;[0134]在步骤s128中,如果未包括,在hivesql任务的sql语句中加入与hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值时对应的优化参数。[0135]在本公开所提供的hivesql任务的执行方法中,预设优化条件可以包括确定删除冗余信息的hivesql任务中上游表和/或下游表中包括的第一文件的数量是否大于预设阈值。其中,第一文件包括文件大小小于或等于预设大小的文件。例如,预设大小为64m,文件大小小于等于64m的文件为第一文件。当在hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值时,可以在hivesql任务的sql语句中加入与hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值对应的优化参数。hivesql任务中是否包括与hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值时对应的优化参数,如果未包括,在hivesql任务的sql语句中加入“setmapred.job.reuse.jvm.num.tasks=8;”这一参数,开启jvm(java虚拟机(javavirtualmachine))重用功能,对jvm中并行的文件数量进行定义。上述参数定义了在jvm中并行的文件数量为8个。这样,在第一文件的数量比较多时,可以充分利用jvm对文件的处理,提高效率。与hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值时对应的优化参数在可以在hivesql任务的sql语句的首行加入。[0136]下面结合具体示例说明本公开所提供了一种hivesql任务的执行方法。如图6所示,图6是根据一示例性实施例示出的一种hivesql任务的执行方法的流程图:[0137]在步骤s601中,确定hivesql任务中sql语句中的冗余信息;[0138]解析hivesql任务中sql语句,确定冗余信息,例如确定包含“——”的注释信息,包含“;”的参数信息。[0139]在步骤s602中,删除所确定的冗余信息,形成删除冗余后的hivesql任务;[0140]在步骤s603中,解析删除冗余后的hivesql任务,确定删除冗余后的hivesql任务中包括的预设词法;[0141]解析删除冗余后的hivesql任务,确定删除冗余后的hivesql任务的sql语句中是否包括例如unionall词法等预设词法。[0142]在步骤s604中,解析删除冗余后的hivesql任务,统计删除冗余后的hivesql任务中包括的上游表和/或下游表;[0143]解析删除冗余后的hivesql任务,确定删除冗余后的hivesql任务中所包括的上游表和/或下游表,经统计,包括两个上游表,表1和表2,和一个下游表,表3。[0144]在步骤s605中,统计删除冗余后的hivesql任务中上游表和/或下游表的数据量;[0145]在步骤s606中,统计删除冗余后的hivesql任务中上游表和/或下游表的第一文件的数量;[0146]在步骤s701中,确定hivesql任务的sql语句中是否包括与所包括的预设词法对应的优化参数;如果未包括,在hivesql任务的sql语句中加入与所包括的预设词法对应的优化参数;[0147]在步骤s702中,确定hivesql任务中的sql语句中是否包括与所包括的上游表和/或下游表对应的优化参数;如果未包括,在hivesql任务的sql语句中加入与所包括的上游表和/或下游表对应的优化参数;[0148]在步骤s703中,确定hivesql任务中的sql语句中是否包括与所确定的上游表和/或下游表的数据量对应的优化参数;如果未包括,在hivesql任务的sql语句中加入与所确定的上游表和/或下游表的数据量对应的优化参数;[0149]在步骤s704中,确定hivesql任务中的sql语句中是否包括与hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值时对应的优化参数;如果未包括,在hivesql任务的sql语句中加入与hivesql任务中上游表和/或下游表中第一文件的数量大于预设阈值时对应的优化参数。[0150]上述步骤顺序仅是示例性的说明,并不构成对本公开的限定,例如,可以先执行步骤步骤s604后执行步骤s603。相应的,也可以先执行步骤s702,后执行步骤s701。可以依次执行完成步骤s603到步骤s606,然后再执行步骤s701到s704,。也可以交叉执行,例如,执行步骤s603后,执行步骤s701。本公开并不限定具体的执行顺序,只要能完成对hivesql任务的优化即可。本公开的一个示例性的实施例中,提供了一种hivesql任务的执行装置。如图7所示,图7是根据一示例性实施例示出的一种hivesql任务的执行装置的框图。参照图7,该装置包括确定模块7001,优化模块7002,执行模块7003和删除模块7004。[0151]其中,确定模块7001,被配置为确定hivesql任务是否符合预设优化条件;[0152]优化模块7002,被配置为,如果hivesql任务符合预设优化条件,根据所述预设优化条件所对应的优化方案优化所述hivesql任务[0153]执行模块7003,被配置为,执行优化后的所述hivesql任务。[0154]其中,所述hivesq任务的执行装置还包括:[0155]删除模块7004,被配置为删除所述hivesql任务中sql语句中的冗余信息;[0156]所述确定模块7001被配置为,确定删除冗余信息后的hivesql任务是否符合预设优化条件。[0157]其中,所述确定模块7001被配置为:[0158]确定所述删除冗余信息后的hivesql任务中sql语句中是否包括预设词法;[0159]如果删除冗余信息后的hivesql任务中sql语句中包括预设词法,所述优化模块7002被配置为:[0160]确定所述hivesql任务的sql语句中是否包括与所包括的预设词法对应的优化参数;[0161]如果未包括,在所述hivesql任务的sql语句中加入与所包括的预设词法对应的优化参数。[0162]其中,所述确定模块7001被配置为:[0163]解析所述删除冗余信息后的hivesql任务,确定所述删除冗余信息后的hivesql任务中是否包括上游表和/或下游表;[0164]如果所述删除冗余信息后的hivesql任务中包括上游表和/或下游表,所述优化模块7002被配置为:[0165]确定所述hivesql任务中的所述sql语句中是否包括与所包括的上游表和/或下游表对应的优化参数;[0166]如果未包括,在所述hivesql任务的sql语句中加入与所包括的上游表和/或下游表对应的优化参数。[0167]其中,所述确定模块7001被配置为:[0168]确定所述删除冗余信息后的hivesql任务中上游表和/或下游表的数据量;[0169]所述优化模块7002被配置为:[0170]确定所述hivesql任务中的所述sql语句中是否包括与所确定的上游表和/或下游表的数据量对应的优化参数;[0171]如果未包括,在所述hivesql任务的sql语句中加入与所确定的上游表和/或下游表的数据量对应的优化参数。[0172]其中,所述确定模块7001被配置为:[0173]确定所述删除冗余信息后的hivesql任务中上游表和/或下游表中包括的第一文件的数量是否大于预设阈值;其中,所述第一文件包括文件大小小于等于预设大小的文件;[0174]如果所述删除冗余信息后的hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值,所述优化模块7002被配置为:[0175]确定所述hivesql任务中的所述sql语句中是否包括与所述hivesql任务中上游表和/或下游表中包括的第一文件的数量大于预设阈值时对应的优化参数;[0176]如果未包括,在所述hivesql任务的sql语句中加入与所述hivesql任务中第一文件的数量大于预设阈值时对应的优化参数。[0177]其中,所述冗余信息包括下述信息中的一种或多种:[0178]注释信息,多余符号信息。[0179]关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。[0180]图8是根据一示例性实施例示出的一种hivesql任务的执行装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。[0181]参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(i/o)的接口812,传感器组件814,以及通信组件816。[0182]处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。[0183]存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。[0184]电力组件806为装置800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。[0185]多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。[0186]音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(mic),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。[0187]i/o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。[0188]传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。[0189]通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。[0190]在示例性实施例中,装置800可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。[0191]在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。[0192]一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种所述hivesql任务的执行方法,所述hivesql任务的执行方法包括:[0193]确定hivesql任务是否符合预设优化条件;[0194]如果是,根据所述预设优化条件所对应的优化方案优化所述hivesql任务;[0195]执行优化后的所述hivesql任务。[0196]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。[0197]应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1