CN112685446B - 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 - Google Patents
通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 Download PDFInfo
- Publication number
- CN112685446B CN112685446B CN202011641229.5A CN202011641229A CN112685446B CN 112685446 B CN112685446 B CN 112685446B CN 202011641229 A CN202011641229 A CN 202011641229A CN 112685446 B CN112685446 B CN 112685446B
- Authority
- CN
- China
- Prior art keywords
- elastic search
- sql query
- database
- memory
- complex 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.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种通过Elasticsearch数据库实现复杂SQL查询处理的方法,包括将各业务数据导入ElasticSearch集群;发起复杂SQL查询请求,通过SQL解析引擎解析SQL中存在的所有表名;检索ElasticSearch集群;将各表数据映射到内存数据库的表中;在内存中实现SQL执行引擎,将复杂SQL在内存中执行返回结果集。本发明还涉及相应的、装置、处理器及其计算机可读存储介质。采用了本发明的通过Elasticsearch数据库实现复杂SQL查询处理的方法、装置、处理器及其计算机可读存储介质,在elasticsearch上执行复杂SQL的效果,高效的实现实时检索效果。现有技术中数据库表一数据量4000多万,表二数据量6000多万,进行复杂SQL查询处理mysql表耗时30多秒,查询es数据后进行逻辑处理耗时30多秒。而本发明在改进后实现了内存数据库对es进行复杂SQL查询时,耗时2秒多,效果提升15倍以上,具有广泛的应用范围。
Description
技术领域
本发明涉及大数据处理领域,尤其涉及SQL查询领域,具体是指一种通过Elasticsearch数据库实现复杂SQL查询处理的方法、装置、处理器及其计算机可读存储介质。
背景技术
现有技术中需要实时处理大数据复杂查询的步骤如下:
1、检索数据,进行复杂SQL处理时,一般都是其他数据库;
2、检索elasticsearch数据库,然后编辑复杂逻辑代码进行处理。
现有技术存在的缺陷如下:
1、现有技术时效性低,延迟大,用户反馈度不好;
2、elasticsearch只支持单文档的SQL查询,不支持复杂SQL查询,而且对于SQL支持很少的关键字。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种满足实时性高、准确性高、适用范围较为广泛的通过Elasticsearch数据库实现复杂SQL查询处理的方法、装置、处理器及其计算机可读存储介质。
为了实现上述目的,本发明的通过Elasticsearch数据库实现复杂SQL查询处理的方法、装置、处理器及其计算机可读存储介质如下:
该通过Elasticsearch数据库实现复杂SQL查询处理的方法,其主要特点是,所述的方法包括以下步骤:
(1)将各业务数据导入ElasticSearch集群;
(2)发起复杂SQL查询请求,通过SQL解析引擎解析SQL中存在的所有表名;
(3)检索ElasticSearch集群;
(4)将各表数据映射到内存数据库的表中;
(5)在内存中实现SQL执行引擎,将复杂SQL在内存中执行返回结果集。
较佳地,所述的步骤(1)具体包括以下步骤:
(1.1)将各业务数据导入ElasticSearch集群;
(1.2)创建内存数据库的整体结构、模式、表、字段、类型之间的映射关系。
较佳地,所述的步骤(3)具体为:
检索ElasticSearch集群,将其映射mapping组织成内存结构到内存数据库的表结构中。
较佳地,所述的步骤(4)具体包括以下步骤:
(4.1)将elasticsearch集群服务的表对象ElasticsearchTable与文档mapping对应;
(4.2)将elasticsearch数据库模式对象ElasticsearchSchema与文档index对应;
(4.3)执行ElasticsearchSchemaFactory工厂类,生产ElasticsearchSchema信息。
该用于通过Elasticsearch数据库实现复杂SQL查询处理的装置,其主要特点是,所述的装置包括:
处理器,被配置成执行计算机可执行指令;
存储器,存储一个或多个计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的通过Elasticsearch数据库实现复杂SQL查询处理的方法的步骤。
该用于通过Elasticsearch数据库实现复杂SQL查询处理的处理器,其主要特点是,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的通过Elasticsearch数据库实现复杂SQL查询处理的方法的步骤。
该计算机可读存储介质,其主要特点是,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现上述的通过Elasticsearch数据库实现复杂SQL查询处理的方法的各个步骤。
采用了本发明的通过Elasticsearch数据库实现复杂SQL查询处理的方法、装置、处理器及其计算机可读存储介质,在elasticsearch上执行复杂SQL的效果,高效的实现实时检索效果。现有技术中数据库表一数据量4000多万,表二数据量6000多万,进行复杂SQL查询处理mysql表耗时30多秒,查询es数据后进行逻辑处理耗时30多秒。而本发明在改进后实现了内存数据库对es进行复杂SQL查询时,耗时2秒多,效果提升15倍以上,具有广泛的应用范围。
附图说明
图1为现有技术的mysql流程图。
图2为现有技术的es流程图。
图3为本发明的通过Elasticsearch数据库实现复杂SQL查询处理的方法的执行流程图。
图4为本发明的通过Elasticsearch数据库实现复杂SQL查询处理的方法的优化后的内存es流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
本发明的该通过Elasticsearch数据库实现复杂SQL查询处理的方法,其中包括以下步骤:
(1)将各业务数据导入ElasticSearch集群;
(1.1)将各业务数据导入ElasticSearch集群;
(1.2)创建内存数据库的整体结构、模式、表、字段、类型之间的映射关系;
(2)发起复杂SQL查询请求,通过SQL解析引擎解析SQL中存在的所有表名;
(3)检索ElasticSearch集群;
(4)将各表数据映射到内存数据库的表中;
(4.1)将elasticsearch集群服务的表对象ElasticsearchTable与文档mapping对应;
(4.2)将elasticsearch数据库模式对象ElasticsearchSchema与文档index对应;
(4.3)执行ElasticsearchSchemaFactory工厂类,生产ElasticsearchSchema信息;
(5)在内存中实现SQL执行引擎,将复杂SQL在内存中执行返回结果集。
作为本发明的优选实施方式,所述的步骤(3)具体为:
检索ElasticSearch集群,将其映射mapping组织成内存结构到内存数据库的表结构中。
作为本发明的优选实施方式,该用于通过Elasticsearch数据库实现复杂SQL查询处理的装置,其中包括:
处理器,被配置成执行计算机可执行指令;
存储器,存储一个或多个计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的通过Elasticsearch数据库实现复杂SQL查询处理的方法的步骤。
作为本发明的优选实施方式,该用于通过Elasticsearch数据库实现复杂SQL查询处理的处理器,其中,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的通过Elasticsearch数据库实现复杂SQL查询处理的方法的步骤。
作为本发明的优选实施方式,该计算机可读存储介质,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现上述的通过Elasticsearch数据库实现复杂SQL查询处理的方法的各个步骤。
本发明的具体实施方式中,当需要以复杂SQL方式去查询大数据量时,可以高效地实时检索效果,实现类似于在elasticsearch上执行复杂SQL的效果。
本发明基于ElasticSearch单表数据在内存中进行复杂SQL实时交互式查询,将ElasticSearch各表数据映射到自己设计的内存数据库结构中,通过内存执行引擎快速实现SQL查询。
本发明的通过Elasticsearch数据库实现复杂SQL查询处理的方法,其中,包括以下步骤:
1、首先将各业务数据导入到ElasticSearch集群;
2、创建好内存数据库的整体结构、模式、表、字段、类型、类型的映射关系;
3、业务模块发起复杂SQL查询请求;
4、通过SQL解析引擎解析SQL中存在的所有表名;
5、检索ElasticSearch集群,将其映射mapping组织成内存结构到内存数据库的表结构中;
6、将各表数据映射到内存数据库的表中;
7、在内存中实现SQL执行引擎,将复杂SQL在内存中执行返回结果集。
在本发明的具体实施例中,具有以下步骤:
1、将大数据表导入到elasticsearch集群服务;
2、我们需要实现一种内存数据库,内存数据库的元数据就是elasticsearch服务中的文档数据;
3、我们通过实现让内存数据库服务其支持元数据作为es中的文档数据步骤如下:
3.1实现elasticsearch独有的表对象ElasticsearchTable用以对应文档mapping;
3.2实现elasticsearch数据库模式对象ElasticsearchSchema用以对应文档index;
3.3实现ElasticsearchSchemaFactory工厂类,用以生产ElasticsearchSchema;
3.4创建内存数据库连接后将es文档注册进内存数据库;
3.5执行复杂SQL在内存中,收集结果返回响应。
本实施例的具体实现方案可以参见上述实施例中的相关说明,此处不再赘述。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
采用了本发明的通过Elasticsearch数据库实现复杂SQL查询处理的方法、装置、处理器及其计算机可读存储介质,在elasticsearch上执行复杂SQL的效果,高效的实现实时检索效果。现有技术中数据库表一数据量4000多万,表二数据量6000多万,进行复杂SQL查询处理mysql表耗时30多秒,查询es数据后进行逻辑处理耗时30多秒。而本发明在改进后实现了内存数据库对es进行复杂SQL查询时,耗时2秒多,效果提升15倍以上,具有广泛的应用范围。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (6)
1.一种通过Elasticsearch数据库实现复杂SQL查询处理的方法,其特征在于,所述的方法包括以下步骤:
(1)将各业务数据导入ElasticSearch集群;
(2)发起复杂SQL查询请求,通过SQL解析引擎解析SQL中存在的所有表名;
(3)检索ElasticSearch集群;
(4)将各表数据映射到内存数据库的表中;
(5)在内存中实现SQL执行引擎,将复杂SQL在内存中执行返回结果集;
所述的步骤(4)具体包括以下步骤:
(4.1)将elasticsearch集群服务的表对象ElasticsearchTable与文档mapping对应;
(4.2)将elasticsearch数据库模式对象ElasticsearchSchema与文档index对应;
(4.3)执行ElasticsearchSchemaFactory工厂类,生产ElasticsearchSchema信息。
2.根据权利要求1所述的通过Elasticsearch数据库实现复杂SQL查询处理的方法,其特征在于,所述的步骤(1)具体包括以下步骤:
(1.1)将各业务数据导入ElasticSearch集群;
(1.2)创建内存数据库的整体结构、模式、表、字段、类型之间的映射关系。
3.根据权利要求1所述的通过Elasticsearch数据库实现复杂SQL查询处理的方法,其特征在于,所述的步骤(3)具体为:
检索ElasticSearch集群,将其映射mapping组织成内存结构到内存数据库的表结构中。
4.一种用于通过Elasticsearch数据库实现复杂SQL查询处理的装置,其特征在于,所述的装置包括:
处理器,被配置成执行计算机可执行指令;
存储器,存储一个或多个计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现权利要求1至3中任一项所述的通过Elasticsearch数据库实现复杂SQL查询处理的方法的步骤。
5.一种用于通过Elasticsearch数据库实现复杂SQL查询处理的处理器,其特征在于,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现权利要求1至3中任一项所述的通过Elasticsearch数据库实现复杂SQL查询处理的方法的步骤。
6.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现权利要求1至3中任一项所述的通过Elasticsearch数据库实现复杂SQL查询处理的方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011641229.5A CN112685446B (zh) | 2020-12-31 | 2020-12-31 | 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011641229.5A CN112685446B (zh) | 2020-12-31 | 2020-12-31 | 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112685446A CN112685446A (zh) | 2021-04-20 |
CN112685446B true CN112685446B (zh) | 2023-07-25 |
Family
ID=75456700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011641229.5A Active CN112685446B (zh) | 2020-12-31 | 2020-12-31 | 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685446B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204564B (zh) * | 2021-05-20 | 2023-02-28 | 山东英信计算机技术有限公司 | 一种数据库高频sql查询方法、系统和存储介质 |
CN113297274B (zh) * | 2021-06-10 | 2023-09-01 | 杭州每刻科技有限公司 | 一种签收数据查询方法和系统 |
CN113688148A (zh) * | 2021-07-13 | 2021-11-23 | 交控科技股份有限公司 | 城轨数据查询方法、装置、电子设备及可读存储介质 |
CN114036158B (zh) * | 2021-11-18 | 2023-05-12 | 广州宸祺出行科技有限公司 | 一种Elasticsearch与MySQL的联合查询方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598508A (zh) * | 2013-09-18 | 2015-05-06 | Ims保健公司 | 用于快速查询响应的系统和方法 |
WO2017120087A1 (en) * | 2016-01-08 | 2017-07-13 | Microsoft Technology Licensing, Llc | Database operation using metadata of data sources |
CN107133267A (zh) * | 2017-04-01 | 2017-09-05 | 北京京东尚科信息技术有限公司 | 查询elasticsearch集群的方法、装置、电子设备和可读存储介质 |
CN110543517A (zh) * | 2019-08-26 | 2019-12-06 | 汉纳森(厦门)数据股份有限公司 | 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 |
CN110601889A (zh) * | 2019-09-16 | 2019-12-20 | 上海梦鱼信息科技有限公司 | 实现安全反溯源深度加密受控网络链路资源调度管理的系统及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797312B2 (en) * | 2006-04-06 | 2010-09-14 | International Business Machines Corporation | Database query processing method and system |
US9372890B2 (en) * | 2011-11-23 | 2016-06-21 | Infosys Technologies, Ltd. | Methods, systems, and computer-readable media for providing a query layer for cloud databases |
US10242052B2 (en) * | 2012-07-24 | 2019-03-26 | Unisys Corporation | Relational database tree engine implementing map-reduce query handling |
US9454548B1 (en) * | 2013-02-25 | 2016-09-27 | Emc Corporation | Pluggable storage system for distributed file systems |
US11188531B2 (en) * | 2018-02-27 | 2021-11-30 | Elasticsearch B.V. | Systems and methods for converting and resolving structured queries as search queries |
-
2020
- 2020-12-31 CN CN202011641229.5A patent/CN112685446B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598508A (zh) * | 2013-09-18 | 2015-05-06 | Ims保健公司 | 用于快速查询响应的系统和方法 |
WO2017120087A1 (en) * | 2016-01-08 | 2017-07-13 | Microsoft Technology Licensing, Llc | Database operation using metadata of data sources |
CN107133267A (zh) * | 2017-04-01 | 2017-09-05 | 北京京东尚科信息技术有限公司 | 查询elasticsearch集群的方法、装置、电子设备和可读存储介质 |
CN110543517A (zh) * | 2019-08-26 | 2019-12-06 | 汉纳森(厦门)数据股份有限公司 | 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 |
CN110601889A (zh) * | 2019-09-16 | 2019-12-20 | 上海梦鱼信息科技有限公司 | 实现安全反溯源深度加密受控网络链路资源调度管理的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112685446A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112685446B (zh) | 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 | |
US9514187B2 (en) | Techniques for using zone map information for post index access pruning | |
EP3327588B1 (en) | Value-id-based sorting in column-store databases | |
AU2013335229B2 (en) | Profiling data with source tracking | |
US10083227B2 (en) | On-the-fly determination of search areas and queries for database searches | |
CN104765731B (zh) | 数据库查询优化方法和设备 | |
US20160098448A1 (en) | Dynamic database query efficiency improvement | |
US11556534B2 (en) | Subquery predicate generation to reduce processing in a multi-table join | |
CN108536692B (zh) | 一种执行计划的生成方法、装置及数据库服务器 | |
CN105975617A (zh) | 一种多分区表查询处理的方法和装置 | |
US9275155B1 (en) | Querying across a composite join of multiple database tables using a search engine index | |
US20130018891A1 (en) | Real-time search of vertically partitioned, inverted indexes | |
CN106777108A (zh) | 一种基于混合存储架构的数据查询方法和装置 | |
CN110990402B (zh) | 由行存储到列存储的格式转化方法、查询方法及装置 | |
US10437824B2 (en) | Querying across a composite join of multiple database tables using a search engine index | |
US9734177B2 (en) | Index merge ordering | |
US20080059432A1 (en) | System and method for database indexing, searching and data retrieval | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
US8161051B2 (en) | Method and apparatus for data processing with index search | |
CN114625732A (zh) | 基于结构化查询语言sql的查询方法和系统 | |
CN112463886A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN108268612B (zh) | 一种基于olap预计算模型的预校验方法及预校验系统 | |
US7725448B2 (en) | Method and system for disjunctive single index access | |
CN113918605A (zh) | 数据查询方法、装置、设备以及计算机存储介质 | |
WO2023086322A1 (en) | Late materialization of queried data in database cache |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |