CN116126865B - 一种多种数据库混合使用的代理方法及装置 - Google Patents

一种多种数据库混合使用的代理方法及装置 Download PDF

Info

Publication number
CN116126865B
CN116126865B CN202310132743.3A CN202310132743A CN116126865B CN 116126865 B CN116126865 B CN 116126865B CN 202310132743 A CN202310132743 A CN 202310132743A CN 116126865 B CN116126865 B CN 116126865B
Authority
CN
China
Prior art keywords
data table
databases
nodes
query statement
database
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
Application number
CN202310132743.3A
Other languages
English (en)
Other versions
CN116126865A (zh
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.)
Anxin Wangdun Beijing Technology Co ltd
Original Assignee
Anxin Wangdun Beijing Technology 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 Anxin Wangdun Beijing Technology Co ltd filed Critical Anxin Wangdun Beijing Technology Co ltd
Priority to CN202310132743.3A priority Critical patent/CN116126865B/zh
Publication of CN116126865A publication Critical patent/CN116126865A/zh
Application granted granted Critical
Publication of CN116126865B publication Critical patent/CN116126865B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例公开了一种多种数据库混合使用的代理方法及装置,方法包括:采集多种数据库的信息,确定各项数据表的数据库来源和各项数据表对应的数据库信息,得到数据表配置;接收数据表查询请求,找到待查询的一个或多个数据库,启动对应数据库的连接通信,对数据库进行连接初始化动作;接收查询语句,使用预设的语法规则对所述查询语句进行解构,在对应的一个或多个数据库中找到调用的数据表。装置包括:配置中心模块,初始化模块,socket通信模块,语句解构模块,节点管理模块,执行调用模块和函数计算调用模块。本发明能够实现从不同的数据库进行查询并进行不同数据类型的关联和组合,解决了目前混用数据库无法进行统一管理的问题。

Description

一种多种数据库混合使用的代理方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种多种数据库混合使用的代理方法及装置。
背景技术
随着近些年来互联网和云计算的快速发展和普及,互联网业务数据量日渐庞大,很多服务端软件依赖的数据库从关系型数据库到文档型数据库,从单一数据库到多种数据库进行混合使用。
目前多数据库混合使用,绝大部分是通过orm框架来实现不同数据库的驱动,从而达到多数据库使用的目的。但是ORM有其自己的局限性:其一,不同的ORM适配不同类型的数据库,比如NoSQL数据库的ORM是很难在关系型数据库中使用的。其二,ORM无法达到定义一种数据结构,各字段的数据源自不同数据库。只能通过代码来进行实现。
还有一种办法是通过数据库代理中间件来解决。但目前数据库代理中间件通常面向的是数据库分库分表的代理层应用,解决的是海量数据情况的分库分表问题,而不是不同数据库的数据聚合问题,其简化了大数据量下单数据库操作的复杂度,并没有降低多种数据来源下操作的复杂度。
发明内容
有鉴于此,本发明实施例的目的在于提供一种多种数据库混合使用的代理方法及装置,能够实现从不同的数据库进行查询并进行不同数据类型的关联和组合,解决了目前混用数据库无法进行统一管理的问题。
第一方面,本发明实施例提供了一种多种数据库混合使用的代理方法,其中,包括:
采集多种数据库的信息,确定各项数据表的数据库来源和各项数据表对应的数据库信息,得到数据表配置。
接收数据表查询请求,在数据表配置中找到待查询的一个或多个数据库,启动对应数据库的连接通信,对数据库进行连接初始化动作。
接收用于调用数据表的查询语句,使用预设的语法规则对所述查询语句进行解构,在对应的一个或多个数据库中找到调用的数据表。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述各项数据表对应的数据库信息包括:
数据表对应的数据库类型。
数据表对应的数据库名。
数据表对应的数据库连接信息。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述启动对应数据库的连接通信,对数据库进行连接初始化动作,包括:
根据待查询的一个或多个数据库,启动对应的一个或多个数据库的socket通信端口。
根据所述数据表配置,获取待查询的一个或多个数据库的相关配置。
根据获取的相关配置,对待查询的一个或多个数据库进行连接初始化动作。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,接收用于调用数据表的查询语句后,根据当前网络连接的繁忙状态,判断是否进行对所述查询语句进行解构。
若网络连接超过阈值,则暂停对所述查询语句进行解构。
若网络连接未超过阈值,则继续对所述查询语句进行解构。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述使用预设的语法规则对所述查询语句进行解构,包括:
所述预设的语法规则采用MySQL词法或语法规则。
使用MySQL词法或语法规则对所述查询语句校验,若通过,则生成各项数据表节点之间运算关系的关系图。
在关系图的最底层级中找到需要调用的数据表,若没有找到,则返回所述查询语句不合法。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述在对应的一个或多个数据库中找到调用的数据表:
若所述查询语句查询的各数据表的节点属于同一个数据库,则直接通过MySQL执行,得到调用的数据表。
若所述查询语句查询的各数据表的节点属于不同数据库,则对各节点分别进行MySQL执行后,进行函数计算,得到调用的数据表结果集。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述函数计算包括:
根据各节点之间的运算关系进行笛卡尔积运算。
将运算后的节点数据进行标记,得到tmp节点。
将tmp节点进行向上递归运算,得到调用的数据表结果集。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,各项数据表节点之间的运算关系包括:
平级关联关系,所述平级关联关系包括各数据表节点之间的左联接(leftjoin)、右联接(rightjoin)和内部联接(join、innerjoin)。
指定连接关系,通过设置as关键字,临时在各数据表的节点之间生成指定tmp节点。
来源关系,通过设置from关键字,确定各数据表节点在数据库中对应的层级。
第二方面,本发明实施例还提供了一种多种数据库混合使用的代理装置,其中,包括:
配置中心模块,用于采集多种数据库的信息,确定各项数据表的数据库来源和各项数据表对应的数据库信息,得到数据表配置。
初始化模块,用于接收数据表查询请求,在数据表配置中找到待查询的一个或多个数据库,启动对应数据库的连接通信,对数据库进行连接初始化动作。
socket通信模块,用于接收调用数据表的查询语句。
语句解构模块,用于使用MySQL词法或语法规则对所述查询语句进行解构,在对应的一个或多个数据库中找到调用的数据表。
节点管理模块,用于使用MySQL词法或语法规则对所述查询语句校验,若通过,则生成各项数据表节点之间运算关系的关系图。
执行调用模块,用于若所述查询语句查询的各数据表的节点属于同一个数据库,则直接通过MySQL执行,得到调用的数据表。
函数计算调用模块,用于若所述查询语句查询的各数据表的节点属于不同数据库,则对各节点分别进行MySQL执行后,进行函数计算,得到调用的数据表结果集。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述函数计算调用模块包括:
笛卡尔积运算单元,用于根据各节点之间的运算关系进行笛卡尔积运算。
节点标记单元,用于将运算后的节点数据进行标记,得到tmp节点。
递归运算单元,用于将tmp节点进行向上递归运算,得到调用的数据表结果集。
本发明实施例的有益效果是:
本发明通过预定义查询语句中表的来源,可以执行不同数据库来源(连表使用不同数据库来源)的增删改查语句。语法采用MySQL标准语法,减少使用成本和学习成本,也减少语法解析器和抽象语法树的实现成本。
本发明提供一种基于边车结构、采用配置中心方式、从不同的数据库进行查询并进行不同数据类型的关联和组合的数据库查询方法和装置(中间件),解决了目前混用数据库无法进行统一管理的问题。
本发明的语法解析方式采用MySQL语法,支持市面上大多数的ORM框架,并且配置中的数据库连接可以配置数据库中间件,使用成本低,支持配置的热更新。在简化混合数据库使用的同时,也没有增加程序的使用成本,同时保证了程序的扩展性。
本发明支持不同数据库的连接查询、子查询和嵌套查询,极大地简化了代码中,针对不同数据库的连接管理、数据拼接、嵌套查询的开发工作。在应用层面只要定义好数据来源,在配置中心配置好数据库的连接信息,即可像使用单数据库一样使用混合数据库,降低开发者的开发成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明多种数据库混合使用的代理方法的流程图;
图2为本发明多种数据库混合使用的代理方法中对数据库进行连接初始化动作的流程示意图;
图3为本发明多种数据库混合使用的代理方法中使用MySQL词法或语法规则对所述查询语句进行解构的流程示意图;
图4为本发明多种数据库混合使用的代理方法中获得调用的数据表的流程示意图;
图5为本发明多种数据库混合使用的代理方法中函数计算的流程示意图;
图6为本发明多种数据库混合使用的代理方法中各项数据表节点之间的运算关系的示意图;
图7为本发明多种数据库混合使用的代理装置的框架结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件能够以各种不同的配置来布置和设计。
请参照图1,本发明的第一个实施例提供一种多种数据库混合使用的代理方法,包括:
S100,采集多种数据库的信息,确定各项数据表的数据库来源和各项数据表对应的数据库信息,得到数据表配置。
S200,接收数据表查询请求,在数据表配置中找到待查询的一个或多个数据库,启动对应数据库的连接通信,对数据库进行连接初始化动作。
S300,接收用于调用数据表的查询语句,使用预设的语法规则对所述查询语句进行解构,在对应的一个或多个数据库中找到调用的数据表。
具体的,所述各项数据表对应的数据库信息包括:
数据表对应的数据库类型。
数据表对应的数据库名。
数据表对应的数据库连接信息。
具体的,如图2所示,所述启动对应数据库的连接通信,对数据库进行连接初始化动作,包括:
S201,根据待查询的一个或多个数据库,启动对应的一个或多个数据库的socket通信端口。
S202,根据所述数据表配置,获取待查询的一个或多个数据库的相关配置。
S203,根据获取的相关配置,对待查询的一个或多个数据库进行连接初始化动作。
具体的,接收用于调用数据表的查询语句后,根据当前网络连接的繁忙状态,判断是否进行对所述查询语句进行解构。
若网络连接超过阈值,则暂停对所述查询语句进行解构。
若网络连接未超过阈值,则继续对所述查询语句进行解构。
具体的,如图3所示,所述使用预设的语法规则对所述查询语句进行解构,包括:
所述预设的语法规则采用MySQL词法或语法规则。
S301,使用MySQL词法或语法规则对所述查询语句校验,若通过,则生成各项数据表节点之间运算关系的关系图。
S302,在关系图的最底层级中找到需要调用的数据表,若没有找到,则返回所述查询语句不合法。
具体的,如图4所示,所述获得调用的数据表的方法包括:
S303,若所述查询语句查询的各数据表的节点属于同一个数据库,则直接通过MySQL执行,得到调用的数据表。
S304,若所述查询语句查询的各数据表的节点属于不同数据库,则对各节点分别进行MySQL执行后,进行函数计算,得到调用的数据表结果集。
具体的,如图5所示,所述函数计算包括:
S3041,根据各节点之间的运算关系进行笛卡尔积运算。
S3042,将运算后的节点数据进行标记,得到tmp节点。
S3043,将tmp节点进行向上递归运算,得到调用的数据表结果集。
其中,笛卡尔积运算为令A和B是任意两个集合,若序偶的第一个成员是A的元素,第二个成员是B的元素,所有这样的序偶集合,称为集合A和B的笛卡尔乘积或直积。
具体的,如图6所示,各项数据表节点之间的运算关系包括:
平级关联关系,所述平级关联关系包括各数据表节点之间的左联接(leftjoin)、右联接(rightjoin)和内部联接(join、innerjoin)。
左联接的结果集包括子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
右联接是左联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
内部联接为使用比较运算符,根据每个表共有的列的值匹配两个表中的行。
指定连接关系,通过设置as关键字,临时在各数据表的节点之间生成指定tmp节点。
来源关系,通过设置from关键字,确定各数据表节点在数据库中对应的层级。
其中,关系图用于标记节点和运算关系。节点支持嵌套。
具体的,比如A节点和B节点都是MySQL的同库的数据表,其join查询子语句就直接发送给MySQL执行即可,如果节点是MySQL的不同库的数据表,或是MySQL和一个其他类型数据库的表,则分别执行,并将其结果都拿到后再根据其关联关系(左关联、右关联、内联)进行笛卡尔积运算,并将运算数据进行标记,标记为节点的类型为tmp节点,然后向上递归运算。
请参照图7,本发明的第二个实施例提供一种多种数据库混合使用的代理装置,包括:
配置中心模块,用于采集多种数据库的信息,确定各项数据表的数据库来源和各项数据表对应的数据库信息,得到数据表配置。
初始化模块,用于接收数据表查询请求,在数据表配置中找到待查询的一个或多个数据库,启动对应数据库的连接通信,对数据库进行连接初始化动作。
socket通信模块,用于接收调用数据表的查询语句。
语句解构模块,用于使用MySQL词法或语法规则对所述查询语句进行解构,在对应的一个或多个数据库中找到调用的数据表。
节点管理模块,用于使用MySQL词法或语法规则对所述查询语句校验,若通过,则生成各项数据表节点之间运算关系的关系图。
执行调用模块,用于若所述查询语句查询的各数据表的节点属于同一个数据库,则直接通过MySQL执行,得到调用的数据表。
函数计算调用模块,用于若所述查询语句查询的各数据表的节点属于不同数据库,则对各节点分别进行MySQL执行后,进行函数计算,得到调用的数据表结果集。
其中,若数据量巨大,本发明多种数据库混合使用的代理装置(中间件)的连接配置可选用数据库中间件,如MyCat。
具体的,所述函数计算调用模块包括:
笛卡尔积运算单元,用于根据各节点之间的运算关系进行笛卡尔积运算。
节点标记单元,用于将运算后的节点数据进行标记,得到tmp节点。
递归运算单元,用于将tmp节点进行向上递归运算,得到调用的数据表结果集。
本发明实施例旨在保护一种多种数据库混合使用的代理方法及装置,具备如下效果:
1.本发明通过预定义查询语句中表的来源,可以执行不同数据库来源(连表使用不同数据库来源)的增删改查语句。语法采用MySQL标准语法,减少使用成本和学习成本,也减少语法解析器和抽象语法树的实现成本。
2.本发明提供一种基于边车结构、采用配置中心方式、从不同的数据库进行查询并进行不同数据类型的关联和组合的数据库查询方法和装置(中间件),解决了目前混用数据库无法进行统一管理的问题。
3.本发明的语法解析方式采用MySQL语法,支持市面上大多数的ORM框架,并且配置中的数据库连接可以配置数据库中间件,使用成本低,支持配置的热更新。在简化混合数据库使用的同时,也没有增加程序的使用成本,同时保证了程序的扩展性。
4.本发明支持不同数据库的连接查询、子查询和嵌套查询,极大地简化了代码中,针对不同数据库的连接管理、数据拼接、嵌套查询的开发工作。在应用层面只要定义好数据来源,在配置中心配置好数据库的连接信息,即可像使用单数据库一样使用混合数据库,降低开发者的开发成本。
5.本发明实施例所提供的多种数据库混合使用的代理方法及模块的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述多种数据库混合使用的代理方法,从而能够实现从不同的数据库进行查询并进行不同数据类型的关联和组合,解决了目前混用数据库无法进行统一管理的问题。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (5)

1.一种多种数据库混合使用的代理方法,其特征在于,包括:
采集多种数据库的信息,确定各项数据表的数据库来源和各项数据表对应的数据库信息,得到数据表配置;
接收数据表查询请求,在数据表配置中找到待查询的一个或多个数据库,启动对应数据库的连接通信,对数据库进行连接初始化动作;
接收用于调用数据表的查询语句,使用预设的语法规则对所述查询语句进行解构,在对应的一个或多个数据库中找到调用的数据表;
所述使用预设的语法规则对所述查询语句进行解构,包括:
所述预设的语法规则采用MySQL词法或语法规则;
使用MySQL词法或语法规则对所述查询语句校验,若通过,则生成各项数据表节点之间运算关系的关系图;
在关系图的最底层级中找到需要调用的数据表,若没有找到,则返回所述查询语句不合法;
所述在对应的一个或多个数据库中找到调用的数据表包括:
若所述查询语句查询的各数据表的节点属于同一个数据库,则直接通过MySQL执行,得到调用的数据表;
若所述查询语句查询的各数据表的节点属于不同数据库,则对各节点分别进行MySQL执行后,进行函数计算,得到调用的数据表结果集;
所述函数计算包括:
根据各节点之间的运算关系进行笛卡尔积运算;
将运算后的节点数据进行标记,得到tmp节点;
将tmp节点进行向上递归运算,得到调用的数据表结果集;
各项数据表节点之间的运算关系包括:
平级关联关系,所述平级关联关系包括各数据表节点之间的左联接、右联接和内部联接;
指定连接关系,通过设置as关键字,临时在各数据表的节点之间生成指定tmp节点;
来源关系,通过设置from关键字,确定各数据表节点在数据库中对应的层级。
2.根据权利要求1所述的多种数据库混合使用的代理方法,其特征在于,所述各项数据表对应的数据库信息包括:
数据表对应的数据库类型;
数据表对应的数据库名;
数据表对应的数据库连接信息。
3.根据权利要求1所述的多种数据库混合使用的代理方法,其特征在于,所述启动对应数据库的连接通信,对数据库进行连接初始化动作,包括:
根据待查询的一个或多个数据库,启动对应的一个或多个数据库的socket通信端口;
根据所述数据表配置,获取待查询的一个或多个数据库的相关配置;
根据获取的相关配置,对待查询的一个或多个数据库进行连接初始化动作。
4.根据权利要求1所述的多种数据库混合使用的代理方法,其特征在于,接收用于调用数据表的查询语句后,根据当前网络连接的繁忙状态,判断是否进行对所述查询语句进行解构;
若网络连接超过阈值,则暂停对所述查询语句进行解构;
若网络连接未超过阈值,则继续对所述查询语句进行解构。
5.一种多种数据库混合使用的代理装置,其特征在于,包括:
配置中心模块,用于采集多种数据库的信息,确定各项数据表的数据库来源和各项数据表对应的数据库信息,得到数据表配置;
初始化模块,用于接收数据表查询请求,在数据表配置中找到待查询的一个或多个数据库,启动对应数据库的连接通信,对数据库进行连接初始化动作;
socket通信模块,用于接收调用数据表的查询语句;
语句解构模块,用于使用MySQL词法或语法规则对所述查询语句进行解构,在对应的一个或多个数据库中找到调用的数据表;
节点管理模块,用于使用MySQL词法或语法规则对所述查询语句校验,若通过,则生成各项数据表节点之间运算关系的关系图;
执行调用模块,用于若所述查询语句查询的各数据表的节点属于同一个数据库,则直接通过MySQL执行,得到调用的数据表;
函数计算调用模块,用于若所述查询语句查询的各数据表的节点属于不同数据库,则对各节点分别进行MySQL执行后,进行函数计算,得到调用的数据表结果集;
所述函数计算调用模块包括:
笛卡尔积运算单元,用于根据各节点之间的运算关系进行笛卡尔积运算;
节点标记单元,用于将运算后的节点数据进行标记,得到tmp节点;
递归运算单元,用于将tmp节点进行向上递归运算,得到调用的数据表结果集;
各项数据表节点之间的运算关系包括:
平级关联关系,所述平级关联关系包括各数据表节点之间的左联接、右联接和内部联接;
指定连接关系,通过设置as关键字,临时在各数据表的节点之间生成指定tmp节点;
来源关系,通过设置from关键字,确定各数据表节点在数据库中对应的层级。
CN202310132743.3A 2023-02-17 2023-02-17 一种多种数据库混合使用的代理方法及装置 Active CN116126865B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310132743.3A CN116126865B (zh) 2023-02-17 2023-02-17 一种多种数据库混合使用的代理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310132743.3A CN116126865B (zh) 2023-02-17 2023-02-17 一种多种数据库混合使用的代理方法及装置

Publications (2)

Publication Number Publication Date
CN116126865A CN116126865A (zh) 2023-05-16
CN116126865B true CN116126865B (zh) 2023-09-08

Family

ID=86297229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310132743.3A Active CN116126865B (zh) 2023-02-17 2023-02-17 一种多种数据库混合使用的代理方法及装置

Country Status (1)

Country Link
CN (1) CN116126865B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123374A (zh) * 2014-07-28 2014-10-29 北京京东尚科信息技术有限公司 分布式数据库中聚合查询的方法及装置
CN104333512A (zh) * 2014-10-30 2015-02-04 北京思特奇信息技术股份有限公司 一种分布式内存数据库访问系统及方法
WO2015184762A1 (zh) * 2014-11-06 2015-12-10 中兴通讯股份有限公司 数据库查询方法及装置
WO2017049913A1 (zh) * 2015-09-23 2017-03-30 中兴通讯股份有限公司 数据库的执行方法及装置
CN108628986A (zh) * 2018-04-27 2018-10-09 深圳市牛鼎丰科技有限公司 数据查询方法、装置、计算机设备和存储介质
CN111259036A (zh) * 2020-01-10 2020-06-09 苏州达家迎信息技术有限公司 一种跨库跨表查询方法、设备、服务器及存储介质
CN112131231A (zh) * 2020-08-27 2020-12-25 中信银行股份有限公司 一种分布式数据库编目管理方法、系统、电子设备和可读存储介质
CN112541001A (zh) * 2019-09-23 2021-03-23 北京国双科技有限公司 数据查询方法、装置、存储介质及设备
CN114238374A (zh) * 2021-12-16 2022-03-25 深圳前海微众银行股份有限公司 数据查询方法、装置、服务器和存储介质
CN115269561A (zh) * 2022-09-21 2022-11-01 国网智能电网研究院有限公司 一种混合数据库管理方法、装置、混合数据库及电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123374A (zh) * 2014-07-28 2014-10-29 北京京东尚科信息技术有限公司 分布式数据库中聚合查询的方法及装置
CN104333512A (zh) * 2014-10-30 2015-02-04 北京思特奇信息技术股份有限公司 一种分布式内存数据库访问系统及方法
WO2015184762A1 (zh) * 2014-11-06 2015-12-10 中兴通讯股份有限公司 数据库查询方法及装置
WO2017049913A1 (zh) * 2015-09-23 2017-03-30 中兴通讯股份有限公司 数据库的执行方法及装置
CN108628986A (zh) * 2018-04-27 2018-10-09 深圳市牛鼎丰科技有限公司 数据查询方法、装置、计算机设备和存储介质
CN112541001A (zh) * 2019-09-23 2021-03-23 北京国双科技有限公司 数据查询方法、装置、存储介质及设备
CN111259036A (zh) * 2020-01-10 2020-06-09 苏州达家迎信息技术有限公司 一种跨库跨表查询方法、设备、服务器及存储介质
CN112131231A (zh) * 2020-08-27 2020-12-25 中信银行股份有限公司 一种分布式数据库编目管理方法、系统、电子设备和可读存储介质
CN114238374A (zh) * 2021-12-16 2022-03-25 深圳前海微众银行股份有限公司 数据查询方法、装置、服务器和存储介质
CN115269561A (zh) * 2022-09-21 2022-11-01 国网智能电网研究院有限公司 一种混合数据库管理方法、装置、混合数据库及电子设备

Also Published As

Publication number Publication date
CN116126865A (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
CN107463632B (zh) 一种分布式NewSQL数据库系统和数据查询方法
US20130091120A1 (en) Integrated fuzzy joins in database management systems
CN110795455A (zh) 依赖关系解析方法、电子装置、计算机设备及可读存储介质
CN111538744B (zh) 数据血缘的处理方法及装置
US20190197175A1 (en) Progressive optimization for implicit cast predicates
US20140379753A1 (en) Ambiguous queries in configuration management databases
CN109885585B (zh) 支持存储过程、触发器与视图的分布式数据库系统和方法
CN107102995B (zh) 一种sql执行计划的确定方法及装置
CN110263104A (zh) Json字符串处理方法及装置
CN115905630A (zh) 一种图数据库查询方法、装置、设备及存储介质
US20120330875A1 (en) Structure index
CN116126865B (zh) 一种多种数据库混合使用的代理方法及装置
CN113407807A (zh) 搜索引擎的查询优化方法、装置、电子设备
WO2023030461A1 (zh) 一种分布式数据库检测方法及装置
CN112015831A (zh) 基于c语言对关系型数据库进行操作的方法、装置及设备
US11847121B2 (en) Compound predicate query statement transformation
CN109753533A (zh) 一种多源关系型数据库客户端开发方法及装置
CN108780452B (zh) 一种存储过程处理方法及装置
CN111666115B (zh) 用于寻找引擎插件的装置、方法及存储介质
CN116561154A (zh) Sql语句优化方法及装置
CN114115908A (zh) 一种指令集生成、程序解析方法装置、设备以及存储介质
US20170154076A1 (en) Cooperative expression visitors
CN110209885B (zh) 一种图查询方法及系统
CN112416966A (zh) 即席查询方法、装置、计算机设备和存储介质
CN112749189A (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
GR01 Patent grant
GR01 Patent grant