CN117573733A - 一种异构数据库的查询方法、装置、设备和存储介质 - Google Patents

一种异构数据库的查询方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN117573733A
CN117573733A CN202311347649.6A CN202311347649A CN117573733A CN 117573733 A CN117573733 A CN 117573733A CN 202311347649 A CN202311347649 A CN 202311347649A CN 117573733 A CN117573733 A CN 117573733A
Authority
CN
China
Prior art keywords
query
sub
event
data
result
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
Application number
CN202311347649.6A
Other languages
English (en)
Inventor
吴松圃
辛治运
鹿群
陈海雯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gf Securities Co ltd
Original Assignee
Gf Securities Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Gf Securities Co ltd filed Critical Gf Securities Co ltd
Priority to CN202311347649.6A priority Critical patent/CN117573733A/zh
Publication of CN117573733A publication Critical patent/CN117573733A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种异构数据库的查询方法、装置、设备和存储介质;其中,所述方法应用于数据查询引擎,所述方法包括:接收数据查询请求,并基于所述数据查询请求生成查询事件;所述数据查询引擎用于对多个异构数据库进行查询;若不存在所述查询事件的查询结果,将所述查询事件拆分为多个子查询事件;将所述多个子查询事件中满足条件的每一子查询事件,分配到所述数据查询引擎中对应的执行节点进行处理,得到所述每一子查询事件的查询结果。

Description

一种异构数据库的查询方法、装置、设备和存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种异构数据库的查询方法、装置、设备和存储介质。
背景技术
随着电子技术的飞速发展,各行各业的信息化程度不断提升,使得积累的数据越来越多,而这些数据由于建设时期不同、使用场景不同、存储对象不同等,存储于不同类型的数据库中。现有技术中,通常采用串行查询进行异构数据库较多的跨库查询,此类方式效率低,无法满足高并发的跨库查询请求。
发明内容
本申请实施例提供一种异构数据库的查询方法、装置、设备和存储介质,解决了相关技术中对异构数据库较多的跨库查询效率低,无法满足高并发请求的问题。
为达到上述目的,本申请的技术方案是这样实现的:
一种异构数据库的查询方法,应用于数据查询引擎,所述方法包括:
接收数据查询请求,并基于所述数据查询请求生成查询事件;所述数据查询引擎用于对多个异构数据库进行查询;
若不存在所述查询事件的查询结果,将所述查询事件拆分为多个子查询事件;
将所述多个子查询事件中满足条件的每一子查询事件,分配到所述数据查询引擎中对应的执行节点进行处理,得到所述每一子查询事件的查询结果。
一种异构数据库的查询装置,应用于数据查询引擎,所述装置包括:
生成单元,用于接收数据查询请求,并基于所述数据查询请求生成查询事件;所述数据查询引擎用于对多个异构数据库进行查询;
拆分单元,用于若不存在所述查询事件的查询结果,将所述查询事件拆分为多个子查询事件;
处理单元,用于将所述多个子查询事件中满足条件的每一子查询事件,分配到所述数据查询引擎中对应的执行节点进行处理,得到所述每一子查询事件的查询结果。
一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现如上述任一项所述异构数据库的查询方法中的步骤。
一种存储介质,所述存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述任一项提供的异构数据库的查询方法。
本申请的实施例所提供的异构数据库的查询方法、装置、设备和存储介质,接收数据查询请求,并基于所述数据查询请求生成查询事件;所述数据查询引擎用于对多个异构数据库进行查询;若不存在所述查询事件的查询结果,将所述查询事件拆分为多个子查询事件;将所述多个子查询事件中满足条件的每一子查询事件,分配到所述数据查询引擎中对应的执行节点进行处理,得到所述每一子查询事件的查询结果。也就是说,本申请实施例通过将接收到的数据查询请求生成查询事件,先确定是否存在查询事件的查询结果,若不存在,再将查询事件拆分为多个子查询事件,将多个子查询事件中满足条件的每一子查询事件分配到数据查询引擎中对应的执行节点进行处理,得到每一子查询事件的查询结果;解决了相关技术中对异构数据库较多的跨库查询效率低,无法满足高并发请求的问题;提高了异构数据库的跨库查询速度。
附图说明
图1为本申请实施例提供的一种异构数据库的查询方法的流程示意图;
图2为本申请实施例提供的一种分布式数据查询引擎的结构图;
图3为本申请实施例提供的又一种异构数据库的查询方法的流程示意图;
图4为本申请实施例提供的一种异构数据库的查询装置的结构示意图;
图5为本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
本申请所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
下面结合附图及具体实施例对本申请作进一步详细的说明。
本申请的实施例提供一种异构数据库的查询方法,应用于数据查询引擎,参照图1所示,该方法包括以下步骤:
S101:接收数据查询请求,并基于数据查询请求生成查询事件;数据查询引擎用于对多个异构数据库进行查询。
可以理解的,对异构数据库的跨库查询,可以采用不同架构的数据查询引擎。异构数据库是包含多种不同类型数据库的集合,数据库的类型可以包括但不限于:myspl、oracle、postgresq1、kafka、mondoDB、Hive。
本申请以大规模并行处理(Massively Parallel Processing,MPP)架构为例,构建分布式的数据查询引擎,数据查询引擎可以包括一个调度节点Coordinator、多个工作节点Worker和缓存模块Caches,以集群方式运行,在联机分析处理场景下(On-lineAnalytical Processing,OLAP),将多种异构数据库组合起来进行统一计算。
参考图2所示,Coordinator可以接收请求,管理Worker和Caches的工作情况;Worker可以执行具体任务,得到结果数据;Caches可以接收结果数据并存储。
本申请实施例中,Coordinator兼容ANSI和国际标准化组织(InternationalOrganization for Standardization,ISO)的结构化查询语言(Structured QueryLanguage,SQL)协议,可针对不同数据库进行相应的SQL优化。
基于数据查询请求生成查询事件可以理解为通过Coordinator接收数据查询请求,将数据查询请求中的查询语句解析为查询事件。
S102:若不存在查询事件的查询结果,将查询事件拆分为多个子查询事件。
可以理解的,Worker可以支持多种常用协议的连接器,通过不同的连接器从异构数据库中获取数据,并在Worker之间进行数据交换及计算,得到结果数据。
每个查询事件可以被拆分为多个子查询事件,通过不同的Worker执行不同的子查询事件。每个Worker分别查询对应的数据库;例如:worker1查A库,worker2查B库,以此完成异构数据库的跨库查询。每个Worker执行对应的子查询事件,得到对应的子结果数据后,Worker可以将各自的子结果数据进行聚合,得到查询事件的查询结果。查询事件与查询结果可以以key(查询事件)-value(查询结果)的形式存储在Caches中。Coordinator将查询请求解析为查询事件后,可以向Caches发送key-value查询请求,查询Caches中是否存在查询事件的查询结果。
本申请实施例中,Caches根据Coordinator的key-value查询请求,确认是否存在查询事件的查询结果,若不存在,Coordinator将查询事件拆分为多个子查询事件;若存在,数据查询引擎可以将查询结果返回至客户端。
示例性的,Coordinator根据查询请求生成查询事件EventA和EventB;并向Caches发送EventA和EventB的查询请求,确认是否存在EventA的查询结果ResultA和EventB的查询结果ResultB。
若Caches中存在ResultA,但不存在ResultB,Coordinator可以将ResultA返回至客户端,将EventB拆分为M个子查询事件(Eventb1、Eventb1……Eventbm)。
S103:将多个子查询事件中满足条件的每一子查询事件,分配到数据查询引擎中对应的执行节点进行处理,得到每一子查询事件的查询结果。
可以理解的,每个子查询事件通过对应的Worker执行,得到对应的子结果数据,若Caches中部分子查询事件存在对应的子结果数据,此部分子查询事件不需要再进行计算。满足条件可以理解为Caches中不存在对应的子结果数据。
本申请实施例中,将Caches中不存在对应子结果数据的所有子查询事件分配到对应Worker进行计算,得到每个子查询事件对应的子结果数据,Worker将各自的子结果数据进行聚合,得到所有满足条件的子查询事件的查询结果。
示例性的,Coordinator将EventB拆分为M个子查询事件(Eventb1、Eventb1……Eventbm)后,可以在Caches中查询是否存在对应的子结果数据(Resultb1、Resultb1……Resultbm)。
若N(N<M)个子查询事件不存在对应子结果数据,Coordinator将N个子查询事件分配到对应的N个Worker,N个Worker分别对包括但不限于myspl、oracle、postgresq1、kafka、mondoDB、Hive的多个异构数据库进行查询和计算,得到(Resultb1、Resultb1……Resultbn)。剩余部分的M-N个不需要分配到Worker。
由上述内容可知,本申请实施例通过将接收到的数据查询请求生成查询事件,先确定是否存在查询事件的查询结果,若不存在,再将查询事件拆分为多个子查询事件,将多个子查询事件中满足条件的每一子查询事件分配到数据查询引擎中对应的执行节点进行处理,得到每一子查询事件的查询结果;解决了相关技术中对异构数据库较多的跨库查询效率低,无法满足高并发请求的问题;提高了异构数据库的跨库查询速度。
在本申请的一些实施例中,步骤103将多个子查询事件中满足条件的每一子查询事件,分配到数据查询引擎中对应的执行节点进行处理,得到每一子查询事件的查询结果,可以通过如下步骤实现:
查询每一子查询事件是否存在对应的子结果数据;
确定不存在对应子结果数据的子查询事件为满足条件的部分子查询事件;
将满足条件的部分子查询事件分配到数据查询引擎中对应的执行节点进行处理,得到部分子查询事件的查询结果;多个子查询事件的查询结果包括部分子查询事件的查询结果和剩余子查询事件的查询结果,剩余子查询事件存在对应的子结果数据。
本申请实施例中,Caches根据Coordinator的key-value查询请求,确认每一子查询事件是否存在对应的子结果数据。Coordinator将不存在对应的子结果数据的部分子查询事件分配到对应Worker进行计算,Worker将各自的子结果数据进行聚合,得到部分子查询事件的查询结果。剩余子查询事件在Caches中存在对应的子结果数据。
示例性的,Caches中不存在查询事件EventB的查询结果ResultB,Coordinator将EventB拆分为M个子查询事件(Eventb1、Eventb1……Eventbm),若N(N<M)个子查询事件不存在对应子结果数据,Coordinator将N个子查询事件分配到对应的N个Worker,N个Worker分别对包括但不限于myspl、oracle、postgresq1、kafka、mondoDB、Hive的多个异构数据库进行查询和计算,得到部分子查询事件的查询结果(Resultb1、Resultb1……Resultbn)。剩余部分的M-N个子查询事件的查询结果在Caches中存在对应的子结果数据。
在本申请的一些实施例中,该方法还包括:
将部分子查询事件的查询结果和剩余子查询事件的查询结果进行聚合,输出查询结果。
本申请实施例中,Worker可以将部分子查询事件的查询结果和已存储在Caches中的剩余子查询事件的查询结果进行聚合,再返回至在Caches中。
示例性的,Worker可以将N个子查询事件的查询结果(Resultb1、Resultb1……Resultbn)和已存在Caches中的M-N个子查询事件的查询结果进行聚合,得到查询事件EventB的查询结果ResultB。本申请的一些实施例中,将满足条件的部分子查询事件分配到数据查询引擎中对应的执行节点进行处理,得到部分子查询事件的查询结果之后,该方法还包括:
确定满足条件的部分子查询事件和部分子查询事件的查询结果之间的对应关系;
存储对应关系。
本申请实施例中,Coordinator将可以将不存在对应的子结果数据的部分子查询事件分配到对应Worker进行计算,Worker将各自的子结果数据进行聚合,得到部分子查询事件的查询结果;Coordinator以key-value的形式将部分子查询事件与部分子查询事件的查询结果存入Caches中。
示例性的,Caches中不存在查询事件EventB的查询结果ResultB,Coordinator将EventB拆分为M个子查询事件(Eventb1、Eventb1……Eventbm),若N(N<M)个子查询事件不存在对应子结果数据,Coordinator将N个子查询事件分配到对应的N个Worker,N个Worker分别对包括但不限于myspl、oracle、postgresq1、kafka、mondoDB、Hive的多个异构数据库进行查询和计算,得到部分子查询事件的查询结果(Resultb1、Resultb1……Resultbn)。Worker将(Resultb1、Resultb1……Resultbn)进行聚合,将N个子查询事件(Eventb1、Eventb1……Eventbm)作为EventB1,确定EventB1和ResultB1的对应关系,并存入Caches中。
Coordinator可以将每次查询事件中满足条件的部分子查询事件拆分到Worker执行,将部分子查询事件与部分子查询事件的查询结果的对应关系进行存储,面对数据量巨大的查询事件,可以更多利用Caches中已有的查询结果,减少Worker的计算,提升数据查询引擎的效率。
本申请的一些实施例中,查询每一子查询事件是否存在对应的子结果数据,包括:
根据对应关系确定数据查询引擎的缓存模块中是否存在查询事件的查询结果。
可以理解的,Caches可以是一类kv结构的内存存储中间件。Caches也可以是Worker本身的内存,本申请实施例中的Worker可横向扩充,随着Worker节点的增加,其内存的总量是不断增加的,能加载的数据也更多。当异构数据库跨库查询大表时,Worker不够缓存查询计算的中间结果集,则可以直接将这些数据通过各节点上的连接器HiveConnector,将数据落盘到分布式系统基础架构(Hadoop)集群的分布式文件系统(HDFS)上,然后在Worker中完成计算,再将数据返回给Caches,等待Coordinator异步轮询向Caches取数。异步落盘的方式可以支持对数据量万亿字节、千万亿字节级的大表的异步查询分析。
本申请实施例中,Caches根据Coordinator的key-value查询请求,确认每一子查询事件是否存在对应的子结果数据。
本申请的一些实施例中,该方法还包括:
采用预设算法对数据查询引擎中的查询结果进行刷新,确定第一查询结果和第二查询结果;第一查询结果包括查询次数超过预设次数的查询请求对应的查询结果;第二查询结果包括查询次数未超过预设次数的查询请求对应的查询结果。
可以理解的,预设次数可以根据实际情况进行设置,本申请对此不做具体限定。第一查询结果可以理解为重复查询次数较高的查询请求对应的查询结果,即热查询结果;第二查询结果可以理解为重复查询不高的查询请求对应的查询结果,即慢查询结果。预设算法可以是最近最少使用(Least recently used,LRU)算法。
本申请实施例中,通过Coordinator轮询Caches中的查询结果,利用LRU算法刷新热查询结果和慢查询结果,可以提升数据查询引擎的查询效率,同时,面对慢查询,不会因为计算时间过长而导致超时。本申请的一些实施例中,该方法还包括:
若存在查询事件的查询结果,输出查询结果。
本申请实施例中,Caches根据Coordinator的key-value查询请求,确认是否存在查询事件的查询结果,若存在,数据查询引擎可以将查询结果返回至客户端。
示例性的,Coordinator根据查询请求生成查询事件EventA和EventB;并向Caches发送EventA和EventB的查询请求,确认是否存在EventA的查询结果ResultA和EventB的查询结果ResultB。Caches中存在ResultA,则Coordinator可以将ResultA返回至客户端,
在一个可实现的场景中,参考图3所示,本申请提供的异构数据库的查询方法可以通过如下步骤实现:
S301:客户端向数据查询引擎发起查询请求。
S302:Coordinator接收查询请求,解析SQL,生成执行计划。
S303:查询Caches中是否有对应数据。若有,执行步骤S304;若没有,执行步骤S310。
S304:Coordinator划分任务给Worker执行。
S305:判断是否是大表查询。若是,执行步骤S306;若不是执行步骤S307.
S306:Worker将从异构数据库查回的大量级数据存在HDFS中,分布处理。
S307:Worker连接不同数据库查,执行对应任务。
S308:Worker将计算结果存入Cache中,Coordinator可以轮询Caches中的结果数据。
S309:Coordinator接收结果数据。
S310:向客户端返回结果数据。
基于与前述相同的发明构思,图4为本发明实施例提供的一种异构数据库的查询装置的结构示意图,应用于数据查询引擎,该异构数据库的查询装置400包括:
生成单元401,用于用于接收数据查询请求,并基于数据查询请求生成查询事件;数据查询引擎用于对多个异构数据库进行查询;
拆分单元402,用于若不存在查询事件的查询结果,将查询事件拆分为多个子查询事件;
处理单元403,用于将多个子查询事件中满足条件的每一子查询事件,分配到数据查询引擎中对应的执行节点进行处理,得到每一子查询事件的查询结果。
本申请的一些实施例中,处理单元403,还用于查询每一子查询事件是否存在对应的子结果数据;确定不存在对应子结果数据的子查询事件为满足条件的部分子查询事件;将满足条件的部分子查询事件分配到数据查询引擎中对应的执行节点进行处理,得到部分子查询事件的查询结果;多个子查询事件的查询结果包括部分子查询事件的查询结果和剩余子查询事件的查询结果,剩余子查询事件存在对应的子结果数据。
本申请的一些实施例中,处理单元403,还用于将部分子查询事件的查询结果和剩余子查询事件的查询结果进行聚合,输出查询结果。
本申请的一些实施例中,处理单元403,还用于确定满足条件的部分子查询事件和部分子查询事件的查询结果之间的对应关系;存储对应关系。
本申请的一些实施例中,处理单元403,还用于采用预设算法对数据查询引擎中的查询结果进行刷新,确定第一查询结果和第二查询结果;第一查询结果包括查询次数超过预设次数的查询请求对应的查询结果;第二查询结果包括查询次数未超过预设次数的查询请求对应的查询结果。
本申请的一些实施例中,处理单元403,还用于若存在查询事件的查询结果,输出查询结果。
基于前述实施例,本申请的实施例提供一种电子设备,图5为本发明实施例电子设备的一种硬件结构示意图,该电子设备500包括:至少一个处理器501、存储器502,可选的,电子设备500还可进一步包括至少一个通信接口503,电子设备500中的各个组件通过总线系统504耦合在一起,可理解,总线系统504用于实现这些组件之间的连接通信。总线系统504除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统504。
可以理解,存储器502可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static Random Access Memory,SRAM)、同步静态随机存取存储器(Synchronous Static Random Access Memory,SSRAM)、动态随机存取存储器(DynamicRandom Access Memory,DRAM)、同步动态随机存取存储器(Synchronous Dynamic RandomAccess Memory,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSynchronous Dynamic Random Access Memory,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced Synchronous Dynamic Random Access Memory,ESDRAM)、同步连接动态随机存取存储器(Sync Link Dynamic Random Access Memory,SLDRAM)、直接内存总线随机存取存储器(Direct Rambus Random Access Memory,DRRAM)。本发明实施例描述的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器502用于存储各种类型的数据以支持电子设备500的操作。这些数据的示例包括:用于在电子设备500上操作的任何计算机程序,实现本发明实施例方法的程序可以包含在存储器502中。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,ASIC)、DSP、可编程逻辑器件(Programmable Logic Device,PLD)、复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器(Micro Controller Unit,MCU)、微处理器(Microprocessor)、或其他电子元件实现,用于执行上述方法。
基于前述实施例,本申请的实施例提供一种存储介质,该存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行图1对应的实施例提供的异构数据库的查询方法。
需要说明的是,上述计算机存储介质可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所描述的方法。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种异构数据库的查询方法,其特征在于,应用于数据查询引擎,所述方法包括:
接收数据查询请求,并基于所述数据查询请求生成查询事件;所述数据查询引擎用于对多个异构数据库进行查询;
若不存在所述查询事件的查询结果,将所述查询事件拆分为多个子查询事件;
将所述多个子查询事件中满足条件的每一子查询事件,分配到所述数据查询引擎中对应的执行节点进行处理,得到所述每一子查询事件的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述多个子查询事件中满足条件的每一子查询事件,分配到所述数据查询引擎中对应的执行节点进行处理,得到所述每一子查询事件的查询结果,包括:
查询所述每一子查询事件是否存在对应的子结果数据;
确定不存在对应子结果数据的子查询事件为满足条件的部分子查询事件;
将所述满足条件的部分子查询事件分配到所述数据查询引擎中对应的执行节点进行处理,得到所述部分子查询事件的查询结果;所述多个子查询事件的查询结果包括所述部分子查询事件的查询结果和剩余子查询事件的查询结果,所述剩余子查询事件存在对应的子结果数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述部分子查询事件的查询结果和所述剩余子查询事件的查询结果进行聚合,输出所述查询结果。
4.根据权利要求2所述的方法,其特征在于,所述将所述满足条件的部分子查询事件分配到所述数据查询引擎中对应的执行节点进行处理,得到所述部分子查询事件的查询结果之后,所述方法还包括:
确定所述满足条件的部分子查询事件和所述部分子查询事件的查询结果之间的对应关系;
存储所述对应关系。
5.根据权利要求4所述的方法,其特征在于,所述查询所述每一子查询事件是否存在对应的子结果数据,包括:
根据所述对应关系确定所述数据查询引擎的缓存模块中是否存在所述查询事件的查询结果。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
采用预设算法对所述数据查询引擎中的查询结果进行刷新,确定第一查询结果和第二查询结果;所述第一查询结果包括查询次数超过预设次数的查询请求对应的查询结果;所述第二查询结果包括查询次数未超过预设次数的查询请求对应的查询结果。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
若存在所述查询事件的查询结果,输出所述查询结果。
8.一种异构数据库的查询装置,应用于数据查询引擎,其特征在于,所述装置包括:
生成单元,用于接收数据查询请求,并基于所述数据查询请求生成查询事件;所述数据查询引擎用于对多个异构数据库进行查询;
拆分单元,用于若不存在所述查询事件的查询结果,将所述查询事件拆分为多个子查询事件;
处理单元,用于将所述多个子查询事件中满足条件的每一子查询事件,分配到所述数据查询引擎中对应的执行节点进行处理,得到所述每一子查询事件的查询结果。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述异构数据库的查询方法的步骤。
10.一种存储介质,所述存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述权利要求1至7中任一项提供的异构数据库的查询方法。
CN202311347649.6A 2023-10-17 2023-10-17 一种异构数据库的查询方法、装置、设备和存储介质 Pending CN117573733A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311347649.6A CN117573733A (zh) 2023-10-17 2023-10-17 一种异构数据库的查询方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311347649.6A CN117573733A (zh) 2023-10-17 2023-10-17 一种异构数据库的查询方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN117573733A true CN117573733A (zh) 2024-02-20

Family

ID=89887023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311347649.6A Pending CN117573733A (zh) 2023-10-17 2023-10-17 一种异构数据库的查询方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN117573733A (zh)

Similar Documents

Publication Publication Date Title
US10831562B2 (en) Method and system for operating a data center by reducing an amount of data to be processed
CN111382156A (zh) 一种数据采集方法、系统、装置、电子设备及存储介质
CN105550274A (zh) 双副本并行数据库的查询方法和装置
CN115114374B (zh) 事务执行方法、装置、计算设备及存储介质
CN114218267A (zh) 查询请求异步处理方法、装置、计算机设备、存储介质
EP3779720B1 (en) Transaction processing method and system, and server
CN113360577A (zh) 一种mpp数据库数据处理方法、装置、设备及存储介质
CN110806942B (zh) 数据处理的方法和装置
US11789957B2 (en) System, method, and apparatus for querying a database
CN110837499B (zh) 数据访问处理方法、装置、电子设备和存储介质
CN111400301A (zh) 一种数据查询方法、装置及设备
CN117573733A (zh) 一种异构数据库的查询方法、装置、设备和存储介质
CN116860798A (zh) 数据查询方法、电子设备及计算机可读存储介质
CN107153653B (zh) 一种分库分表的轮询访问方法及装置
CN115114289A (zh) 一种数据查询方法、装置及电子设备
CN117056033A (zh) 数据处理方法、装置、mec服务器及存储介质
CN113177089A (zh) 一种分布式数据存储引擎调度方法
CN114297260A (zh) 分布式rdf数据查询方法、装置和计算机设备
CN114443686A (zh) 一种基于关系型数据的压缩图构建方法及装置
CN114490727A (zh) 目标数据库的高维向量搜索方法及相关设备
CN114969020B (zh) 一种数据处理方法、装置、设备及介质
CN117539912B (zh) 一种加速异构数据源访问的系统、方法及设备
CN118245503B (zh) 存储过程的执行方法、装置、电子设备及可读存储介质
CN116226175A (zh) 结构化查询语言语句分发方法、分布式数据库和存储介质
CN117573730A (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