掌桥专利:专业的专利平台
掌桥专利
首页

一种基于Excel模板文件生成ImpalaSQL语句的方法

文献发布时间:2023-06-19 11:08:20


一种基于Excel模板文件生成ImpalaSQL语句的方法

技术领域

本发明涉及计算机办公技术领域,具体为一种基于Excel模板文件生成ImpalaSQL语句的方法。

背景技术

Impala:Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据,Impala性能优化要点有如下几点:1. 为数据存储选择合适的文件格式(如:Parquet)通常对于大数据量来说,Parquet文件格式是最佳的;2. 防止入库时产生大量的小文件(insert ... values会产生大量小文件,应该避免使用)在impala外生成数据时,最好是text格式或者Avro,这样你就可以逐行的构建文件,到了impala之后,再通过简单的insert ... select语句将其转换为Parquet格式;3.根据实际的数据量大小选择合适的分区粒度合适的分区策略可以对数据进行物理拆分,在查询的时候就可以忽略掉无用数据,提高查询效率,通常建议分区数量在3万以下(太多的分区也会造成元数据管理的性能下降);4. 为分区key选择最小的整数类型虽然使用string类型也可以作为分区key,因为分区key最后都是作为HDFS目录使用,但是使用最小的整数类型作为分区key可以降低内存消耗;5. 选择合适的Parquet块大小默认情况下,Impala的insert ... select语句创建的Parquet文件都是每个分区256M(在2.0之后改为1G了),通过Impala写入的Parquet文件只有一个块,因而只能被一个机器当作一个单元进行处理,如果在你的Parquet表中只有一个或者几个分区,或者一个查询只能访问一个分区,那么你的性能会非常慢,因为没有足够的数据来利用Impala并发分布式查询的优势;6.在追求性能或者大数据量查询的时候,要先获取所需要的表的统计指标(如:执行computestats)7. 减少传输到client端的数据量;进而能够实现通过EXCEL配置映射关系,程序根据EXCEL内容生成ImpalaSQL语句。通过EXCEL配置,能降低数据映射开发门槛,让分析人员专注于数据表间关系,而不是SQL语句的编写,而且基于的技术栈和工具不同,SQL语句生成的工具较多,然而基于EXCEL文件作为配置的较少,并且目前市场上大部分开发工具,都是针对开发人员简化开发人员开发过程而开发,而没有针对业务分析人员提供更快、更简洁的映射配置,而且现今虽然也有EXCEL生成SQL文件的专利,但是对Impala这类大数据的引擎支持度不高,同时生成的文件都写入服务器中导致业务分析人员无法获取相关数据进行分析,因此提出了一种基于Excel模板文件生成ImpalaSQL语句的方法来解决这个问题。

发明内容

(一)解决的技术问题

针对现有技术的不足,本发明提供了一种基于Excel模板文件生成ImpalaSQL语句的方法,解决了目前市场上没有针对业务分析人员提供更快、更简洁的映射配置并且一部分针对业务分析人员的映射配置中的Impala这类大数据的引擎支持度不高同时生成的文件都写入服务器中导致业务分析人员无法获取相关数据进行分析的问题。

(二)技术方案

为达到以上目的,本发明采取的技术方案是:一种基于Excel模板文件生成ImpalaSQL语句的方法,包括Excel模板内容、生成ImpalaSQL语句流程,所述Excel模板内容中设置有目标库表、来源表及关联关系,字段映射、过滤调节配置、分组列表以及分组后调节配置;

所述生成ImpalaSQL语句的流程包括以下步骤:

S1、拿取利用所述Excel模板即Excel配置文件;

S2、根据Excel配置文件的目标库表生成Inter into/update/delete/drop子句;

S3、检查S2中生成的子句以及Excel配置文件是否存在虚拟表,若是进行S4,若否进行S5;

S4、根据虚拟表配置生成子查询SQL语句,之后进行S5;

S5、根据数据数据模板即Excel模板中的来源表及关联关系生成FROM子句并包括关联语句,之后进行S6;

S6、根据目标字段映射关系生成每个字段的SQL子句,之后进行S7;

S7、检查是否存在调节配置,若是进行S8,若否进行S9;

S8、根据调节配置生成调节SQL语句,之后进行S9;

S9、检查是否存在分组配置,若是进行S10,若否进行S11;

S10、根据分组配置生成分组SQL语句,之后进行S11;

S11、检查是否存在分组后条件配置,若是进行S12,若否进行S13;

S12、根据分组配置生成分组后条件SQL语句,之后进行S13;

S13、将S2、S4、S5、S6、S8、S10以及S12中生成的SQL子语句组合生成完整SQL语句,之后进行S14;

S14、将生成的SQL语句保存放置入相应位置并结束流程;

优选的,所述来源表及关联关系能够支持多个和虚拟表。

优选的,所述字段映射表示目标字段即来源字段及规则。

一种基于Excel模板文件生成ImpalaSQL语句方法的使用,包括以下步骤:

首先将数据需要处理的数据放置入Excel模板中,之后根据生成ImpalaSQL语句的流程逐次进行S1、S2、S3、S4、S5、S6、S7、S8、S9、S10、S11、S12、S13以及S14,进而使得Excel模板中整理形成开发者人员以及业务分析人员均需要的数据,进而在增加了业务分析人员的分析效率以及分析速度的情况下方便开发人员能够根据EXCEL模板生成对应的SQL语句避免开发人员编写的SQL语句不规范和错误,从而保证了该方法的实用性以及功能性,而且该种方法中整理形成的数据并不是直接传输到服务器中的,是能够根据使用人员需要进行留取备份的。

(三)有益效果

本发明的有益效果在于:

该基于Excel模板文件生成ImpalaSQL语句的方法,通过该方法将数据分离转化形成极为简化的EXCEL模板,进而提高业务分析人员的映射配置效率,而且使用虚拟表来规范表间复杂关系,进一步增加了业务分析人员的分析效率以及分析速度,并且在EXCEL模板中有配置每个字段的来源,进而方便开发人员能够根据EXCEL模板生成对应的SQL语句,继而避免开发人员编写的sql语句不规范和错误,从而在保证了该方法便于开发人员使用的情况下解决了目前市场上没有针对业务分析人员提供更快、更简洁的映射配置并且一部分针对业务分析人员的映射配置中的Impala这类大数据的引擎支持度不高同时生成的文件都写入服务器中导致业务分析人员无法获取相关数据进行分析的问题,并且该方法以Excel文件为配置文件,极大降低了使用的门槛,而且通过复杂的SQL支持以及本方法使用的虚拟表方式使得该方法优于其它相关工具,进而进一步提高了该方法的实用性。

附图说明

图1为本发明生成ImpalaSQL的EXCEL模板结构示意图;

图2为本发明生成ImpalaSQL的方法和流程结构示意图;

图3为本发明EXCEL模板生成结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1-3所示,本发明提供一种技术方案:一种基于Excel模板文件生成ImpalaSQL语句的方法,包括Excel模板内容、生成ImpalaSQL语句流程,Excel模板内容中设置有目标库表、来源表及关联关系,字段映射、过滤调节配置、分组列表以及分组后调节配置;

生成ImpalaSQL语句的流程包括以下步骤:

S1、拿取利用Excel模板即Excel配置文件;

S2、根据Excel配置文件的目标库表生成Inter into/update/delete/drop子句;

S3、检查S2中生成的子句以及Excel配置文件是否存在虚拟表,若是进行S4,若否进行S5;

S4、根据虚拟表配置生成子查询SQL语句,之后进行S5;

S5、根据数据数据模板即Excel模板中的来源表及关联关系生成FROM子句并包括关联语句,之后进行S6;

S6、根据目标字段映射关系生成每个字段的SQL子句,之后进行S7;

S7、检查是否存在调节配置,若是进行S8,若否进行S9;

S8、根据调节配置生成调节SQL语句,之后进行S9;

S9、检查是否存在分组配置,若是进行S10,若否进行S11;

S10、根据分组配置生成分组SQL语句,之后进行S11;

S11、检查是否存在分组后条件配置,若是进行S12,若否进行S13;

S12、根据分组配置生成分组后条件SQL语句,之后进行S13;

S13、将S2、S4、S5、S6、S8、S10以及S12中生成的SQL子语句组合生成完整SQL语句,之后进行S14;

S14、将生成的SQL语句保存放置入相应位置并结束流程;

来源表及关联关系能够支持多个和虚拟表。

字段映射表示目标字段即来源字段及规则。

一种基于Excel模板文件生成ImpalaSQL语句方法的使用,包括以下步骤:

首先将数据需要处理的数据放置入Excel模板中,之后根据生成ImpalaSQL语句的流程逐次进行S1、S2、S3、S4、S5、S6、S7、S8、S9、S10、S11、S12、S13以及S14,进而使得Excel模板中整理形成开发者人员以及业务分析人员均需要的数据,进而在增加了业务分析人员的分析效率以及分析速度的情况下方便开发人员能够根据EXCEL模板生成对应的SQL语句避免开发人员编写的SQL语句不规范和错误,从而保证了该方法的实用性以及功能性,而且该种方法中整理形成的数据并不是直接传输到服务器中的,是能够根据使用人员需要进行留取备份的。

本发明的操作步骤为:

首先将数据需要处理的数据放置入Excel模板中,之后根据生成ImpalaSQL语句的流程逐次进行S1、S2、S3、S4、S5、S6、S7、S8、S9、S10、S11、S12、S13以及S14,进而使得Excel模板中整理形成开发者人员以及业务分析人员均需要的数据,进而在增加了业务分析人员的分析效率以及分析速度的情况下方便开发人员能够根据EXCEL模板生成对应的SQL语句避免开发人员编写的SQL语句不规范和错误,从而保证了该方法的实用性以及功能性,而且该种方法中整理形成的数据并不是直接传输到服务器中的,是能够根据使用人员需要进行留取备份的,进而进一步保证了该方法的功能实用性。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于Excel模板文件生成ImpalaSQL语句的方法
  • 一种基于图像识别的自动生成激光标记模板文件的方法
技术分类

06120112810143