CN114036158B - 一种Elasticsearch与MySQL的联合查询方法和装置 - Google Patents
一种Elasticsearch与MySQL的联合查询方法和装置 Download PDFInfo
- Publication number
- CN114036158B CN114036158B CN202111372230.7A CN202111372230A CN114036158B CN 114036158 B CN114036158 B CN 114036158B CN 202111372230 A CN202111372230 A CN 202111372230A CN 114036158 B CN114036158 B CN 114036158B
- Authority
- CN
- China
- Prior art keywords
- query
- blank
- mapping
- index
- elastic search
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- 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
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
Abstract
本发明公开了一种Elasticsearch与MySQL的联合查询方法,包括以下步骤:获取用户端查询字符串的查询请求;根据所述查询请求生成查询条件;调用驱动器在Elasticsearch数据库和MySQL数据库中查询符合所述查询条件的查询结果;将所述查询结果发送给用户端;其中,在查询Elasticsearch数据库时,合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统。通过定时维护Elasticsearch数据库中别名,建立以时间范围命名的别名的时间切片索引,通过在别名下新建空白索引,以同别名中的其他索引的映射并集作为该空白索引的映射,同时作为该别名的映射告知Presto系统,当Presto系统对Elasticsearch数据库和MySQL数据库进行联合查询,可直接查询到符合查询条件的数据。
Description
技术领域
本发明属于数据库联合查询的技术领域,具体涉及一种Elasticsearch与MySQL的联合查询方法和装置。
背景技术
Elasticsearch数据库是一个实时的分布式存储引擎,可通过搜索和索引功能使存储的数据被索引、搜索、排序和过滤,并且Elasticsearch数据库提供了丰富的聚合功能可对数据进行多维度分析。但是Elasticsearch数据库实质一种noSQL数据库(非关系型的数据库),其不支持SQL的语法,难以与SQL数据库进行关联分析。
MySQL数据库是一种关系型数据库,其处理数据的效率高、速度快,并且方便将多组数据关联分析。但是MySQL数据库数据库只能针对特定的数据类型关联分析,在将MySQL数据库数据库与其他数据库关联分析时,通常将NoSQL数据转换为SQL数据以进行关联分析,但是频繁转换数据格式容易造成数据转换时出现错误。
现有相关技术中,在将Elasticsearch数据库与MySQL数据库进行关联数据分析时,通过在Elasticsearch数据库中保存有包含时间字段并按照日期建立的索引,在进行联合查询时,通过设置查询条件,查找出符合查询条件的索引范围,并通过逐步统计和计算,定位需要查询的目标索引和时间区间。在查询时,由于Elasticsearch数据库的索引直接映射为MySQL数据库的表,在查询时需要逐步缩小查询范围才可定位到查询的区间,造成查询困难,查询速度较慢。
发明内容
本发明的目的是要解决上述的技术问题,提供一种一种Elasticsearch与MySQL的联合查询方法和装置。
为了解决上述问题,本发明按以下技术方案予以实现的:
第一方面,本发明提供了一种Elasticsearch与MySQL的联合查询方法,包括以下步骤:
获取用户端查询字符串的查询请求;
根据所述查询请求生成查询条件;
调用驱动器在Elasticsearch数据库和MySQL数据库中查询符合所述查询条件的查询结果;
将所述查询结果发送给用户端;
其中,在查询Elasticsearch数据库时,合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统。
结合第一方面,本发明还提供了第一方面的第1种实施方式,所述合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统,具体为:
按照预设范围对Elasticsearch数据库的时间切片索引与别名建立匹配关系;
合并相同所述别名所包含的所述时间切片索引的映射并生成合并映射;
建立所述合并映射的空白索引,所述空白索引生成有空白映射;
将所述空白映射作为所述别名的映射发送至Presto系统。
结合第一方面,本发明还提供了第一方面的第2种实施方式,所述根据所述查询请求生成查询条件,具体为:
获取用户端的查询字符串;
调用Elasticsearch数据库对查询字符串分割并解析为多个分割文本;
分析每个分割文本并组合为查询条件。
结合第一方面,本发明还提供了第一方面的第3种实施方式,所述调用驱动器对Elasticsearch数据库和MySQL数据库查询符合所述查询条件的查询结果,具体为:
调用MySQL驱动器,查询MySQL数据库中符合所述查询条件的SQL数据;
调用Elasticsearch驱动器,查询Elasticsearch数据库中包含查询字符串的字符串数据。
结合第一方面,本发明还提供了第一方面的第4种实施方式,所述查询MySQL数据库中符合所述查询条件的SQL数据前,还包括以下步骤:
根据预设转换顺序,将MySQL数据库中符合所述查询条件的SQL数据的格式转换为字符串格式。
第一方面,本发明提供了一种Elasticsearch与MySQL的联合查询装置,包括:
获取模块,所述获取模块用于获取用户端查询字符串的查询请求;
生成模块,所述生成模块用于根据所述查询请求生成查询条件;
查询模块,所述查询模块用于调用驱动器在Elasticsearch数据库和MySQL数据库中查询符合所述查询条件的查询结果;
发送模块,所述发送模块用于将所述查询结果发送给用户端;
所述查询模块工作时,执行以下命令:在查询Elasticsearch数据库时,合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统。
结合第二方面,本发明还提供了第二方面的第1种实施方式,所述查询模块内设有Elasticsearch查询单元,所述Elasticsearch查询单元工作时,具体执行以下命令:
按照预设范围对Elasticsearch数据库的时间切片索引与别名建立匹配关系;
合并相同所述别名所包含的所述时间切片索引的映射并生成合并映射;
建立所述合并映射的空白索引,所述空白索引生成有空白映射;
将所述空白映射作为所述别名的映射发送至Presto系统。
结合第二方面,本发明还提供了第二方面的第2种实施方式,所述生成模块工作时,具体执行以下命令:
获取用户端的查询字符串;
调用Elasticsearch数据库对查询字符串分割并解析为多个分割文本;
分析每个分割文本并组合为查询条件。
结合第二方面,本发明还提供了第二方面的第3种实施方式,所述查询模块内设有调用单元,所述调用单元工作时,具体执行以下命令:
调用MySQL驱动器,查询MySQL数据库中符合所述查询条件的SQL数据;
调用Elasticsearch驱动器,查询Elasticsearch数据库中包含查询字符串的字符串数据。
结合第二方面,本发明还提供了第二方面的第4种实施方式,还包括:
转换模块,所述转换模块用于根据预设转换顺序,将MySQL数据库中符合所述查询条件的SQL数据转换为字符串格式。
与现有技术相比,本发明的有益效果是:
1.通过定时维护Elasticsearch数据库中别名,建立以时间范围命名的别名(例如last_month、last_quarter)的时间切片索引,通过在别名下新建空白索引,空白索引生成有空白映射,空白映射中包含有同别名中的其他索引的映射并集,将空白映射作为该别名的映射作为该别名的映射告知Presto系统,当Presto系统对Elasticsearch数据库和MySQL数据库进行联合查询,可直接查询到符合查询条件的数据。避免了传统方法中Elasticsearch数据库时间切片索引直接映射为MySQL数据库中表,占用过多系统内存,造成执行效率低,且面对复杂查询时不够灵活,查询效果较差的问题。
2.Elasticsearch数据库底层把所有的数据都会当成字符串,所有的数据在Elasticsearch数据库底层都是会以字符串的形式保存。在联合查询时,通过字符串查询更够更精准快速地查找到待查询的数据,提高联合查询的效率。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明,其中:
图1是本发明的一种Elasticsearch与MySQL的联合查询方法的流程示意图;
图2是本发明的一种Elasticsearch与MySQL的联合查询装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
noSQL数据库(非关系型的数据库)具有数据格式灵活的特点,但不利于关联分析;SQL数据库(关系型的数据库)具有效率高,速度快,易于关联的特点,但无法灵活的选择数据格式。
网约车领域,关联上述二者数据一般采用通过人工将noSQL数据转为SQL数据的方法来实现的,但是人工转换数据的方法有以下缺点:增加额外人工成本、频繁转换SQL数据库数据格式引起系统风险增加、复杂的noSQL数据难以转换等问题。
现有相关技术中,Elasticsearch数据库是一种noSQL数据库,MySQL数据库是一种SQL数据库,在将Elasticsearch数据库与MySQL数据库进行关联数据分析时,通过在Elasticsearch数据库中保存有包含时间字段并按照日期建立的索引,在进行联合查询时,通过设置查询条件,查找出符合查询条件的索引范围,并通过逐步统计和计算,定位需要查询的目标索引和时间区间。在查询时,由于Elasticsearch数据库的索引直接映射为MySQL数据库的表,在查询时需要逐步缩小查询范围才可定位到查询的区间,造成查询困难,且查询所占用的存储空间较大,查询速度较慢。
实施例1
如图1所示,第一方面,本发明提供一种Elasticsearch与MySQL的联合查询方法,本方法包括以下步骤:
获取用户端查询字符串的查询请求;
根据所述查询请求生成查询条件;
调用驱动器在Elasticsearch数据库和MySQL数据库中查询符合所述查询条件的查询结果;
将所述查询结果发送给用户端;
其中,在查询Elasticsearch数据库时,合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统。
通过定时维护Elasticsearch数据库中别名,建立以时间范围命名的别名(例如last_month、last_quarter)的时间切片索引,通过在别名下新建空白索引,空白索引生成有空白映射,空白映射中包含有同别名中的其他索引的映射并集,将空白映射作为该别名的映射作为该别名的映射告知Presto系统,当Presto系统对Elasticsearch数据库和MySQL数据库进行联合查询,可直接查询到符合查询条件的数据。避免了传统方法中Elasticsearch数据库时间切片索引直接映射为MySQL数据库中表,占用过多系统内存,造成执行效率低,且面对复杂查询时不够灵活,查询效果较差的问题。
步骤S1:获取用户端查询字符串的查询请求。
具体的,Elasticsearch数据库底层把所有的数据都会当成字符串,所有的数据在Elasticsearch数据库底层都是会以字符串的形式保存。在联合查询时,通过字符串查询更够更精准快速地查找到待查询的数据,提高联合查询的效率。
步骤S2:根据所述查询请求生成查询条件。
所述步骤S2具体包括以下步骤:
步骤S201:获取用户端的查询字符串;
步骤S202:调用Elasticsearch数据库对查询字符串分割并解析为多个分割文本;
步骤S203:分析每个分割文本并组合为查询条件。
具体的,在Elasticsearch数据库查询字符串时,通过对用户端请求的待查询字符串分割、解析、分析并组合为查询条件。通过查询条件匹配MySQL数据库中符合查询条件的SQL数据,相比与传统方法中通过“where”过滤条件进行查询,避免逐步缩小查询范围才可定位到查询的区间,提高的效率,可精准快速的查询到复符合查询条件的SQL数据。
步骤S3:调用驱动器在Elasticsearch数据库和MySQL数据库中查询符合所述查询条件的查询结果。
所述步骤S3具体包括以下步骤:
步骤S301:调用MySQL驱动器,查询MySQL数据库中符合所述查询条件的SQL数据;
步骤S302:调用Elasticsearch驱动器,查询Elasticsearch数据库中包含查询字符串的字符串数据。
具体的,在Presto系统中,设有多个不同的驱动器,对MySQL数据库分配一专用于调用MySQL数据库的驱动器称为MySQL驱动器,对Elasticsearch数据库分配一专用于调用Elasticsearch数据库的驱动器称为Elasticsearch驱动器,通过MySQL驱动器查询MySQL数据库中符合所述查询条件的SQL数据,通过Elasticsearch驱动器查询Elasticsearch数据库中包含查询字符串的字符串数据,查询的SQL数据和字符串数据即为联合查询的查询结果。
步骤S4:将所述查询结果发送给用户端;
具体的,按照时间范围,将符合客户端查询条件的查询结果发送给客户端。
步骤S5:在查询Elasticsearch数据库时,合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统。
具体的,Presto是一个分布式SQL查询引擎,其用来专门进行高速、实时的数据分析。Presto本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的联合查询。通过Presto可实现Elasticsearch数据库和MySQL数据库的联合查询。
所述步骤S5具体包括以下步骤:
步骤S501:按照预设范围对Elasticsearch数据库的时间切片索引与别名建立匹配关系。
具体的,在Elasticsearch数据库存储有待查询数据的时间切片索引,其中待查询数据包括按照时间建立的流水数据或日志数据,通过别名的方式,对不同时间范围的时间切片索引分别归类与不同别名下,方便一次性查询较大时间范围的流水数据或日志数据。例如,2021年第一周的索引存储在“2021w1”索引下,2021年第二周的索引存储在“2021w2”索引下,以此类推,2021年第N周的索引存储在“2021wN”索引下,将2021w1~2021w4索引的别名均为“last_month”,当需要查询2021年1月的SQL数据时,不必像传统方案中分别依次在2021w1、2021w2、2021w3、2021w4进行分别查找并统计,可直接通过查找“from last_month”直接找到2021w1~2021w4索引中的SQL数据。此外,可通过定时维护别名,实现动态的滚动查询,例如,对SQL数据进行了每周索引,别名为“last_month”下包含2021w1~2021w4的索引,这周为第5周,第5周的索引为“2021w5”,将“2021w5”的别名新增为“last_month”,而“last_month”别名下“2021w1”索引将会被删除。这样,查询时使用的别名不变,当需要删除数据的时候,可以直接删除整个索引。
步骤S502:合并相同所述别名所包含的所述时间切片索引的映射并生成合并映射。
具体的,在进行别名维护时,将别名的名称相同的索引的映射进行合并,可避免SQL数据重复占用过多的存储空间,并且可避免在查询时出现多个相同的别名与查询条件相匹配,需要对每个别名下的索引统计,或索引出现错误不可被查询。
步骤S503:建立所述合并映射的空白索引,所述空白索引生成有空白映射。
具体的,建立所述映射的空白索引,并将所述空白索引与所述别名相匹配,将所述空白索引的映射作为所述别名的映射发送至Presto系统。通过将空白索引的映射作为所述别名的映射告知Presto系统,避免了传统方法中Elasticsearch数据库时间切片索引直接映射为MySQL数据库中表,占用过多系统内存,造成执行效率低,且面对复杂查询时不够灵活,查询效果较差的问题。
步骤S504:将所述空白映射作为所述别名的映射发送至Presto系统。
具体的,为了能够将时间域视为时间,数字域视为数字,字符串域视为全文或精确值字符串,Elasticsearch数据库需要知道每个域中数据的类型,这些信息包含在映射中,映射就是指明字段类型,如数据输入和输出中解释的,索引中每个文档都有类型,每种类型都有它自己的映射,或者模式定义。映射定义了类型中的域,每个域的数据类型,以及Elasticsearch数据库如何处理这些域。当首次创建一个索引的时,可以指定类型的映射,也可以为新类型(或者为存在的类型更新映射)增加映射。可以增加一个存在的映射,但不能修改存在的域映射。如果一个域的映射已经存在,那么该域的数据可能已经被索引。如果修改这个域的映射,索引的数据可能会出错,不能被正常的搜索。由于别名的映射是可动态生成的,而索引的映射是固定不可修改的,若要修改索引的映射,一般通过建立新索引,将原索引的数据迁移至新索引名下。
例如,获取第一别名,根据第一别名匹配对应的第一索引,所述第一索引生成有第一映射;获取第二别名,根据第二别名匹配对应的第二索引,所述第二索引生成有第二映射;所述第一索引和所述第二索引均为时间切片索引;若第一别名与第二别名的相同,合并所述第一映射与所述第二映射生成第三映射;根据所述第三映射建立空白索引,所述空白索引生成有第四映射;所述第四映射为所述空白索引的映射;建立所述空白索引与所述第一别名的匹配关系;将所述第四映射告知Presto系统。通过创建一个空白索引,空白索引生成有第四映射,第四映射与第三映射的物理地址相同,在进行查询时,通过第四映射直接查找到空白索引,由于空白索引与第一别名建立有匹配关系,空白索引通过第三映射而建立的,第三映射为第一映射和第二映射合并后的映射,即可通过空白索引直接找到合并有第一映射和第二映射的SQL数据。通过查询空白索引替代直接查询第一索引和第二索引,可避免第一索引和第二索引的数据出错,造成查询失败。
进一步地,本发明实施例优选地还包括:
根据预设转换顺序,将MySQL数据库中符合所述查询条件的SQL数据转换为字符串格式。
在MySQL数据库中查询到与查询条件相符的SQL数据后,通过预设转换顺序将相符的SQL数据转换为字符串格式,解决了多索引下noSQL数据转为单表SQL时数据不一致的问题,避免人工频繁转换数据格式。例如,当查询“手机号”字段时,“手机号”字段在“2021w1”索引下是整数型格式,在“2021w2”索引下是字符串格式,通过预设转换顺序:整数型格式->浮点型格式->字符串格式,可自动取字符串格式作为别名映射里的内容,当查询“fromlast_month”取“手机号”这个字段时,“2021w1”索引下整数型格式的“手机号”数据通过预设转换顺序转换为字符串格式,而“2021w2”的“手机号”数据也为字符串格式,向用户端发送查询结果时,就会取出字符串格式的数据,避免了人工在SQL数据层手动转换数据格式,在查询时也不会报错,具有一定的鲁棒性。
综上所述,当本发明方法执行时,一方面,通过定时维护Elasticsearch数据库中别名,建立以时间范围命名的别名(例如last_month、last_quarter)的时间切片索引,通过在别名下新建空白索引,以同别名中的其他索引的映射并集作为该空白索引的映射,同时作为该别名的映射告知Presto系统,当Presto系统对Elasticsearch数据库和MySQL数据库进行联合查询,可直接查询到符合查询条件的数据。另一方面,通过在Elasticsearch数据库查询字符串,可避免传统方法中通过“where”过滤条件进行查询,避免逐步缩小查询范围才可定位到查询的区间,提高的效率,可精准快速的查询到复符合查询条件的SQL数据。此外,在MySQL数据库中查询到与查询条件相符的SQL数据后,通过预设转换顺序将相符的SQL数据转换为字符串格式,解决了多索引下noSQL数据转为单表SQL时数据不一致的问题,避免人工频繁转换数据格式造成数据出现错误的问题。
本发明所述Elasticsearch与MySQL的联合查询方法的其它步骤参照现有技术。
实施例2
如图2所示,第二方面,本发明公开了一种Elasticsearch与MySQL的联合查询装置,包括获取模块M1、生成模块M2、查询模块M3和发送模块M4,其中:
获取模块M1用于获取用户端查询字符串的查询请求;
生成模块M2用于根据所述查询请求生成查询条件;
查询模块M3用于调用驱动器在Elasticsearch数据库和MySQL数据库中查询符合所述查询条件的查询结果;
发送模块M4用于将所述查询结果发送给用户端;
查询模块M3工作时,执行以下命令:在查询Elasticsearch数据库时,合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统。
针对第二方面,还包括第1种优选实施,还包括转换模块M5:
转换模块M5用于根据预设转换顺序,将MySQL数据库中符合所述查询条件的SQL数据的格式转换为字符串格式。
综上所述,本实施例所述装置在运行时,能实现实施例1中所述的Elasticsearch与MySQL的联合查询方法的全部步骤,以实现实施例1中所达到的技术效果。
本实施例所述的Elasticsearch与MySQL的联合查询装置的其它结构参见现有技术。
实施例3
本发明还公开一种电子设备,至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,所述至少一个处理器执行指令时,具体实现以下的步骤:
获取用户端查询字符串的查询请求;
根据所述查询请求生成查询条件;
调用驱动器在Elasticsearch数据库和MySQL数据库中查询符合所述查询条件的查询结果;
将所述查询结果发送给用户端;
其中,在查询Elasticsearch数据库时,合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统。
实施例4
本发明还公开一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时,具体实现以下步骤:
获取用户端查询字符串的查询请求;
根据所述查询请求生成查询条件;
调用驱动器在Elasticsearch数据库和MySQL数据库中查询符合所述查询条件的查询结果;
将所述查询结果发送给用户端;
其中,在查询Elasticsearch数据库时,合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,上述编程语言包括面向对象的编程语言—诸如Smalltalk、C++、Java等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
Claims (2)
1.一种Elasticsearch与MySQL的联合查询方法,其特征在于,包括以下步骤:
获取用户端查询字符串的查询请求;
根据所述查询请求生成查询条件,具体为:
获取用户端的查询字符串;
调用Elasticsearch数据库对查询字符串分割并解析为多个分割文本;
分析每个分割文本并组合为查询条件;
调用驱动器在Elasticsearch数据库和MySQL数据库中查询符合所述查询条件的查询结果,具体为:
调用MySQL驱动器,根据预设转换顺序,将MySQL数据库中符合所述查询条件的SQL数据的格式转换为字符串格式,查询MySQL数据库中符合所述查询条件的SQL数据;
调用Elasticsearch驱动器,查询Elasticsearch数据库中包含查询字符串的字符串数据;
将所述查询结果发送给用户端;
其中,在查询Elasticsearch数据库时,合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统;
所述合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统,具体为:
按照预设范围对Elasticsearch数据库的时间切片索引与别名建立匹配关系;
合并相同所述别名所包含的所述时间切片索引的映射并生成合并映射;映射为索引的字段类型;
建立所述合并映射的空白索引,所述空白索引生成有空白映射,具体为,通过定时维护Elasticsearch数据库中的别名,建立以时间范围命名的别名的时间切片索引,通过在别名下新建空白索引,空白索引生成有空白映射,空白映射中包含有同别名中的其他索引的映射并集;
将所述空白映射作为所述别名的映射发送至Presto系统。
2.一种Elasticsearch数据库与MySQL数据库的联合查询装置,其特征在于,包括:
获取模块,所述获取模块用于获取用户端查询字符串的查询请求;
生成模块,所述生成模块用于根据所述查询请求生成查询条件,具体执行以下命令:
获取用户端的查询字符串;
调用Elasticsearch数据库对查询字符串分割并解析为多个分割文本;
分析每个分割文本并组合为查询条件;
转换模块,所述转换模块用于根据预设转换顺序,将MySQL数据库中符合所述查询条件的SQL数据转换为字符串格式;
查询模块,所述查询模块用于调用驱动器在Elasticsearch数据库和MySQL数据库中查询符合所述查询条件的查询结果,具体执行以下命令:
调用MySQL驱动器,查询MySQL数据库中符合所述查询条件的SQL数据;
调用Elasticsearch驱动器,查询Elasticsearch数据库中包含查询字符串的字符串数据;
发送模块,所述发送模块用于将所述查询结果发送给用户端;
所述查询模块工作时,执行以下命令:在查询Elasticsearch数据库时,合并Elasticsearch数据库中相同别名所包含时间切片索引的映射,将空白索引的空白映射作为所述别名的映射发送至Presto系统;
所述查询模块内设有Elasticsearch查询单元,所述Elasticsearch查询单元工作时,具体执行以下命令:
按照预设范围对Elasticsearch数据库的时间切片索引与别名建立匹配关系;
合并相同所述别名所包含的所述时间切片索引的映射并生成合并映射;映射为索引的字段类型;
建立所述合并映射的空白索引,所述空白索引生成有空白映射,具体为,通过定时维护Elasticsearch数据库中的别名,建立以时间范围命名的别名的时间切片索引,通过在别名下新建空白索引,空白索引生成有空白映射,空白映射中包含有同别名中的其他索引的映射并集;
将所述空白映射作为所述别名的映射发送至Presto系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111372230.7A CN114036158B (zh) | 2021-11-18 | 2021-11-18 | 一种Elasticsearch与MySQL的联合查询方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111372230.7A CN114036158B (zh) | 2021-11-18 | 2021-11-18 | 一种Elasticsearch与MySQL的联合查询方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114036158A CN114036158A (zh) | 2022-02-11 |
CN114036158B true CN114036158B (zh) | 2023-05-12 |
Family
ID=80138155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111372230.7A Active CN114036158B (zh) | 2021-11-18 | 2021-11-18 | 一种Elasticsearch与MySQL的联合查询方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036158B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115549862B (zh) * | 2022-12-05 | 2023-03-31 | 大方智造(天津)科技有限公司 | 基于动态解析的mes系统并发性能测试数据接收方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329987A (zh) * | 2017-06-02 | 2017-11-07 | 广州启辰电子科技有限公司 | 一种基于mongo数据库的搜索系统 |
CN112685446A (zh) * | 2020-12-31 | 2021-04-20 | 上海梦鱼信息科技有限公司 | 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2063364A1 (en) * | 2007-11-19 | 2009-05-27 | Siemens Aktiengesellschaft | Module for building database queries |
US10489402B2 (en) * | 2016-11-08 | 2019-11-26 | International Business Machines Corporation | Bridging native JDBC calls with DBaaS using ESB |
CN107958080A (zh) * | 2017-12-14 | 2018-04-24 | 上海特易信息科技有限公司 | 一种基于ElasticSearch的大数据报表处理方法 |
CN110008244A (zh) * | 2019-03-29 | 2019-07-12 | 国家计算机网络与信息安全管理中心 | 一种数据查询方法及数据查询装置 |
CN112463886A (zh) * | 2020-11-30 | 2021-03-09 | 浙江大华技术股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112925783A (zh) * | 2021-03-26 | 2021-06-08 | 北京金山云网络技术有限公司 | 业务数据处理方法和装置、电子设备和存储介质 |
-
2021
- 2021-11-18 CN CN202111372230.7A patent/CN114036158B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329987A (zh) * | 2017-06-02 | 2017-11-07 | 广州启辰电子科技有限公司 | 一种基于mongo数据库的搜索系统 |
CN112685446A (zh) * | 2020-12-31 | 2021-04-20 | 上海梦鱼信息科技有限公司 | 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114036158A (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11392604B2 (en) | Designating fields in machine data using templates | |
CN109299102B (zh) | 一种基于Elastcisearch的HBase二级索引系统及方法 | |
KR102407510B1 (ko) | 데이터 저장 및 조회 방법, 장치, 기기 및 매체 | |
JP6617117B2 (ja) | 半構造データのためのスケーラブルな分析プラットフォーム | |
CN110032604B (zh) | 数据存储装置、转译装置及数据库访问方法 | |
CN108363746B (zh) | 一种支持多源异构数据的统一sql查询系统 | |
US8140558B2 (en) | Generating structured query language/extensible markup language (SQL/XML) statements | |
US20140214897A1 (en) | SYSTEMS AND METHODS FOR ACCESSING A NoSQL DATABASE USING BUSINESS INTELLIGENCE TOOLS | |
US20090049021A1 (en) | System and method for storing text annotations with associated type information in a structured data store | |
US11030242B1 (en) | Indexing and querying semi-structured documents using a key-value store | |
CN109313640B (zh) | 用于数据库优化的方法和系统 | |
US9218394B2 (en) | Reading rows from memory prior to reading rows from secondary storage | |
CN110688544A (zh) | 一种查询数据库的方法、设备及存储介质 | |
CN109241100B (zh) | 一种查询方法、装置、设备及存储介质 | |
CN111198898B (zh) | 大数据查询方法及大数据查询装置 | |
CN112579610A (zh) | 多数据源结构分析方法、系统、终端设备及存储介质 | |
CN114036158B (zh) | 一种Elasticsearch与MySQL的联合查询方法和装置 | |
KR20200094074A (ko) | 인덱스 관리 방법, 장치, 기기 및 저장 매체 | |
US20200110838A1 (en) | Intelligent visualization of unstructed data in column-oriented data tables | |
US20110302220A1 (en) | Sql processing for data conversion | |
US11200230B2 (en) | Cost-based optimization for document-oriented database queries | |
CN110674177B (zh) | 数据查询方法、装置、电子设备和存储介质 | |
CN111797095A (zh) | 索引构建方法和json数据查询方法 | |
US20160188613A1 (en) | Virtualized workspaces for standardization of access to data | |
US7185004B1 (en) | System and method for reverse routing materialized query tables in a database |
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 |