CN113792071A - Sql智能生成并调优组件和方法 - Google Patents
Sql智能生成并调优组件和方法 Download PDFInfo
- Publication number
- CN113792071A CN113792071A CN202111110830.6A CN202111110830A CN113792071A CN 113792071 A CN113792071 A CN 113792071A CN 202111110830 A CN202111110830 A CN 202111110830A CN 113792071 A CN113792071 A CN 113792071A
- Authority
- CN
- China
- Prior art keywords
- sql
- query
- type information
- tuning
- engine
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种本申请SQL智能生成并调优组件和方法,该方法包括:接收查询参数和查询引擎类型信息;然后解析查询参数为统一的内部SQL模型;再基于内部SQL模型和查询引擎类型信息,生成与查询引擎类型对应的SQL语句;最后进行调优,得到调优后的SQL语句,将调优后的SQL语句输出,供大数据应用系统功能组件完成大数据查询。如此,用户只需要输入查询参数,以及对应的底层查询引擎类型信息,就可以生成对应不同类型查询引擎的并且优化后的SQL语句,从而完成数据查询,操作简单,专业技能要求低;并且生成的SQL语句可在不同组件中以及不同引擎下使用,从而解决SQL生成逻辑的跨组件复用性、跨引擎兼容性问题。
Description
技术领域
本申请涉及大数据查询技术领域,尤其涉及一种SQL智能生成并调优组件和方法。
背景技术
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据,在当前大数据时代,更是大数据查询的标准语言,广泛用于各种大数据查询引擎。随着大数据的兴起,大数据的应用无处不在,面对的用户也越来越广泛、小白。
而现有技术中,在SQL生成过程中,由于查询引擎的多样化,无法跨组件快速集成使用,跨引擎兼容性低,也不能针对不同引擎能智能调优,导致数据查询操作复杂,专业技能要求高的问题。
发明内容
本申请提供一种SQL智能生成并调优组件和方法,以解现有技术,由于类型众多的查询引擎存在,无法跨组件跨引擎使用,导致数据查询过程中,操作复杂而且专业要求高的缺点,影响大数据查询技术的进一步普及。
本申请的上述目的是通过以下技术方案实现的:
第一方面,本申请实施例提供一种SQL智能生成并调优组件,包括:使用接口模块、查询参数解析引擎模块和SQL生成引擎模块;
所述接口模块包括对外标准接口,用于接收用户上传的查询参数和查询引擎类型信息;
所述查询参数解析引擎模块与所述接口模块连接,用于将所述查询参数解析成统一的内部SQL模型;
所述SQL生成引擎模块,用于基于所述查询引擎类型信息和所述内部SQL模型,生成与所述查询引擎类型信息对应的SQL语句。
进一步的,还包括SQL调优引擎模块;
所述SQL调优引擎模块用于对所述与所述查询引擎类型信息对应的SQL语句进行调优,生成调优后的SQL语句。
进一步的,所述接口模块用于与预设大数据应用系统功能组件连接;
所述接口模块用于通过与所述大数据应用系统功能组件,获取用户上传的查询参数和查询引擎类型信息;
所述接口模块还用于将所述调优后的SQL语句发送至所述大数据应用系统功能组件中,供所述大数据应用系统功能组件基于所述调优后的SQL语句完成数据查询。
进一步的,所述查询引擎类型信息包括查询引擎类型;
所述查询引擎类型包括hive查询引擎、presto查询引擎和clickhouse查询引擎。
第二方面,本申请实施例还提供一种SQL智能生成并调优方法,包括:
接受用户上传的查询参数和查询引擎类型信息;
解析所述查询参数为统一的内部SQL模型;
基于所述查询引擎类型信息和所述统一的内部SQL模型,生成与所述查询引擎类型信息对应的SQL语句。
进一步的,还包括:
对所述与所述查询引擎类型信息对应的SQL语句进行调优,生成调优后的SQL语句。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请的实施例提供的技术方案中,首先接收用户上传的查询参数和查询引擎类型信息;然后解析查询参数为统一的内部SQL模型;再基于内部SQL模型和查询引擎类型信息,生成与查询引擎类型对应的SQL语句;最后对查询引擎类型对应的SQL语句进行调优,得到调优后的SQL语句,将SQL语句输出,供大数据应用组件进行查询。如此,用户不用关心SQL语法,也不用关心底层的查询引擎,只需传入查询参数,以及对应的底层查询引擎类型,就可以生成对应不同类型查询引擎的,并且基于SQL引擎优化后的SQL语句,从而完成数据查询,操作简单,专业技能要求低,并且生成的SQL语句可在不同组件中以及使用不同引擎下使用,从而解决SQL生成逻辑的跨组件复用性、跨引擎兼容性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种SQL智能生成并调优组件的结构示意图;
图2为本申请另一实施例提供的一种SQL智能生成并调优组件的结构示意图;
图3为本申请实施例提供的一种SQL智能生成并调优方法的流程示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
随着大数据的兴起,大数据的应用无处不在,面对的用户也越来越广泛、小白;这就要求我们的“大数据应用组件”要降低门槛,快速向可视化、自助化、智能化的方向发展;用户在可视化界面上简单的输输点点、托托拽拽即可快速获取所需数据,而目前所有大数据的获取,都是基于SQL通过底层各种大数据查询引擎实现的,这就要求我们的“大数据应用组件”可以将用户的简单操作快速、准确的转化为SQL。而现有技术中,因为不同组件和引擎类型种类众多的原因,各“大数据应用组件”都通过代码自行拼装SQL,自行实现,没有一种通用的技术,帮助各“大数据应用组件”自动生成SQL语句,更无法根据不同查询引擎生成不同sql语句并进行性能调优,导致大数据查询时,操作复杂、对专业技能要求高,影响大数据查询的普及。
为了解决上述问题,本申请提供一种SQL智能生成并调优组件和方法,以快速编辑、准确的生成可跨组件和跨引擎的SQL语句,使用户更加快速准确的实现数据查询,具体实现方案通过以下实施例进行详细说明。
实施例
参照图1,图1为本申请实施例提供的一种SQL智能生成并调优组件的模块示意图,如图1所示,本申请实施例提供的SQL智能生成并调优组件包括:
接口模块101、查询参数解析引擎模块102和SQL生成引擎模块103;
所述接口模块101包括对外标准接口,用于接收用户上传的查询参数和查询引擎类型信息。
本申请提供的SQL智能生成并调优组件将SQL通过JAVA语言抽象模型化,并将SQL的具体生成、调优逻辑完全封装起来,对外提供友好的标准接口供使用方调用;这样使用者只需引入相关工具包,简单调用相关接口即可生成所需SQL。在实际应用中,通过接口模块101与大数据应用组件或大数据应用系统功能模块连接,接收查询参数和查询引擎类型信息,以及将生成的语句传递至大数据应用组件或大数据应用系统功能模块中,供其完成数据查询。
具体的,接口模块101用于与预设大数据应用系统功能组件连接。接口模块101用于通过与大数据应用系统功能组件连接,通过所述大数据应用系统功能模块获取用户上传的查询参数和查询引擎类型信息,以及用于将调优后的SQL语句发送至所述大数据应用系统功能组件中,供所述大数据应用系统功能组件基于所述调优后的SQL语句进行数据查询。在实际应用中,接口模块101包括使用接口(Java API):负责对外提供标准的接口,供使用方调用。
查询参数解析引擎模块102与所述接口模块101连接,用于将查询参数解析成统一的内部SQL模型。SQL生成引擎模块103,用于基于查询引擎类型信息和内部SQL模型,生成与查询引擎类型信息对应的SQL语句。
具体的,查询参数解析引擎模块102包括查询参数解析引擎,负责解析用户传入的查询参数,并解析成统一的内部SQL模型。SQL生成引擎模块103包括SQL生成引擎,用于根据内部的SQL模型和不同的查询引擎类型,生成对应的SQL语句,既与查询引擎类型信息对应的SQL语句。
进一步的,本申请实施例提供的SQL智能生成并调优组件,还包括SQL调优引擎模块104。SQL调优引擎模块104用于对所述与所述查询引擎类型信息对应的SQL语句进行调优,生成调优后的SQL语句。
具体的,SQL调优引擎模块104包括SQL调优引擎,用于根据不同的SQL引擎,对SQL进行相应的调优,并生成最终的SQL语句。
本申请实施例提供的SQL智能生成并调优组件,包括使用接口(Java API)、查询参数解析引擎、SQL生成引擎、和SQL调优引擎;通过使用接口(Java API)对外提供标准的接口,供使用方调用;然后通过查询参数解析引擎解析用户传入的查询参数,并解析成统一的内部SQL模型;通过SQL生成引擎根据内部的SQL模型和不同的查询引擎类型,生成对应的SQL语句;最后,通过SQ调优引擎根据不同的SQL引擎,对SQL进行相应的调优,并生成最终的SQL语句。整个组件最终打包成一个工具包(Java jar),使用方只需引入工具包,即可调用接口进行使用。如此,统一SQL的生成逻辑,屏蔽不同引擎SQL的差异,解决SQL生成逻辑的跨组件复用性、跨引擎兼容性问题。
图2为本申请另一实施例提供的一种SQL智能生成并调优组件的结构示意图,在实际应用中,本实施例提供的SQL智能生成并调优组件通过连接大数据应用系统功能模块,共同完成大数据应用系统的整体功能,通过大数据应用系统功能模块帮助用户完成数据查询,如图2所示:
首先用户在大数据应用系统功能模块中,输入查询参数,大数据应用系统功能模块将查询参数以及查询引擎类型信息传递至本申请实施例提供的SQL智能生成并调优组件中,SQL智能生成并调优组件基于查询参数和查询引擎类型信息生成SQL既结构化查询语言的语句,传递至大数据应用系统功能模块中,大数据应用系统功能模块基于该语句在大数据查询引擎,如hive查询引擎、presto查询引擎、clickhouse查询引擎等其他引擎中进行查询,的结果数据,最后将结果数据返回至用户,完成数据查询。
需要说明的是,因为本申请实施例提供的SQL智能生成并调优组件,采用面向对象的思想,通过Java语言对SQL进行抽象模型化,对外提供友好的Java API接口,然后以工具包(Java jar)的形式提供给各“大数据应用组件”使用。在生成SQL语句时,就考虑到了不同查询引擎类型信息的影响,通过对大数据SQL生成逻辑的统一模型化方法,统一SQL的生成逻辑,实现屏蔽不同引擎SQL的差异。从而实现根据用户的数据查询诉求,帮助大数据应用组件自动、智能生成SQL语句,以便快速、高效查询用户所需数据。
本申请实施例提供的SQL智能生成并调优组件,通过以工具包(Java jar)的形式实现跨组件复用,解决语句复用问题;通过基于不同引擎,自动生成不同SQL,解决语句兼容性问题;以及通过针对不同引擎,进行智能调优,生成不同SQL,解决性能问题。帮助“大数据应用组件”自动、智能生成SQL语句,以便快速、高效查询用户所需数据。
基于同一个发明构思,本申请实施例还提供一种SQL智能生成并调优方法,图3为本申请实施例提供的一种SQL智能生成并调优方法的流程示意图,如图3所示:本申请实施例提供的SQL智能生成并调优方法,包括:
S301、接受用户上传的查询参数和查询引擎类型信息。
S302、解析所述查询参数为统一的内部SQL模型;
S303、基于所述查询引擎类型信息和所述统一的内部SQL模型,生成与所述查询引擎类型信息对应的SQL语句。
进一步的,本申请实施例提供的SQL智能生成并调优方法,还包括:
对所述与所述查询引擎类型信息对应的SQL语句进行调优,生成调优后的SQL语句。
具体原理以及在上述组件实施例中进行了详细的公开,可以参考上述组实施例进行理解,在此不再进行赘述。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (6)
1.一种SQL智能生成并调优组件,其特征在于,包括:使用接口模块、查询参数解析引擎模块和SQL生成引擎模块;
所述接口模块包括对外标准接口,用于接收用户上传的查询参数和查询引擎类型信息;
所述查询参数解析引擎模块与所述接口模块连接,用于将所述查询参数解析成统一的内部SQL模型;
所述SQL生成引擎模块,用于基于所述查询引擎类型信息和所述内部SQL模型,生成与所述查询引擎类型信息对应的SQL语句。
2.根据权利要求1所述的SQL智能生成并调优组件,其特征在于,还包括SQL调优引擎模块;
所述SQL调优引擎模块用于对所述与所述查询引擎类型信息对应的SQL语句进行调优,生成调优后的SQL语句。
3.根据权利要求1所述的SQL智能生成并调优组件,其特征在于,所述接口模块用于与预设大数据应用系统功能组件连接;
所述接口模块用于通过与所述大数据应用系统功能组件,获取用户上传的查询参数和查询引擎类型信息;
所述接口模块还用于将所述调优后的SQL语句发送至所述大数据应用系统功能组件中,供所述大数据应用系统功能组件基于所述调优后的SQL语句完成数据查询。
4.根据权利要求1所述的SQL智能生成并调优组件,其特征在于,所述查询引擎类型信息包括查询引擎类型;
所述查询引擎类型包括hive查询引擎、presto查询引擎和clickhouse查询引擎。
5.一种SQL智能生成并调优方法,其特征在于,包括:
接受用户上传的查询参数和查询引擎类型信息;
解析所述查询参数为统一的内部SQL模型;
基于所述查询引擎类型信息和所述统一的内部SQL模型,生成与所述查询引擎类型信息对应的SQL语句。
6.根据权利要求5所述的SQL智能生成并调优方法,其特征在于,还包括:
对所述与所述查询引擎类型信息对应的SQL语句进行调优,生成调优后的SQL语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111110830.6A CN113792071A (zh) | 2021-09-18 | 2021-09-18 | Sql智能生成并调优组件和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111110830.6A CN113792071A (zh) | 2021-09-18 | 2021-09-18 | Sql智能生成并调优组件和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113792071A true CN113792071A (zh) | 2021-12-14 |
Family
ID=79184296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111110830.6A Pending CN113792071A (zh) | 2021-09-18 | 2021-09-18 | Sql智能生成并调优组件和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113792071A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443691A (zh) * | 2022-01-18 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 数据库查询调优方法、系统及计算机设备 |
CN114647716A (zh) * | 2022-05-13 | 2022-06-21 | 天津南大通用数据技术股份有限公司 | 一种泛化数据仓库 |
-
2021
- 2021-09-18 CN CN202111110830.6A patent/CN113792071A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443691A (zh) * | 2022-01-18 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 数据库查询调优方法、系统及计算机设备 |
CN114443691B (zh) * | 2022-01-18 | 2024-01-23 | 苏州浪潮智能科技有限公司 | 数据库查询调优方法、系统及计算机设备 |
CN114647716A (zh) * | 2022-05-13 | 2022-06-21 | 天津南大通用数据技术股份有限公司 | 一种泛化数据仓库 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8997070B2 (en) | Extension mechanism for scripting language compiler | |
US8838653B2 (en) | Translating an object-oriented data model to a YANG data model | |
CN113792071A (zh) | Sql智能生成并调优组件和方法 | |
US8417690B2 (en) | Automatically avoiding unconstrained cartesian product joins | |
CN111125440B (zh) | 一种基于Monad的持久层复合条件查询方法与存储介质 | |
US20140258321A1 (en) | Dynamic bridging of application and data servers | |
CN116483859A (zh) | 数据查询方法及装置 | |
CN115982416A (zh) | 一种数据处理方法、装置、可读存储介质及电子设备 | |
CN113467785B (zh) | 一种拟态数据库的sql转译方法和系统 | |
CN110990011A (zh) | 一种自动化接口的数据请求方法 | |
CN116578585B (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN107092474B (zh) | 程序开发方法、etl处理方法及装置 | |
CN112883088B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN106372152B (zh) | 一种在线表单开发系统 | |
CN108845793B (zh) | 一种orm设计方法及装置 | |
CN116028062A (zh) | 目标代码的生成方法、npu指令的显示方法及装置 | |
CN114003583A (zh) | 一种目标格式数据请求体的构建方法、装置、介质及设备 | |
CN113918150A (zh) | 自动化配置接口前端代码的方法 | |
CN113064914A (zh) | 数据提取方法及装置 | |
CN114064655A (zh) | 一种可配置化数据查询及数据关系的自动发现方法 | |
CN108334318B (zh) | 自定义深度广度实现sql语句自动生成工具定制化的方法 | |
CN116127153A (zh) | 数据溯源方法、装置、介质及设备 | |
CN117555935A (zh) | 一种低代码平台数据处理方法、装置及设备 | |
CN116150284A (zh) | 在关系型数据库中生成数字序列的方法及装置 | |
CN118152522A (zh) | 数据查询方法、装置、电子设备、存储介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |