CN107229628B - 分布式数据库预处理的方法及装置 - Google Patents
分布式数据库预处理的方法及装置 Download PDFInfo
- Publication number
- CN107229628B CN107229628B CN201610171043.5A CN201610171043A CN107229628B CN 107229628 B CN107229628 B CN 107229628B CN 201610171043 A CN201610171043 A CN 201610171043A CN 107229628 B CN107229628 B CN 107229628B
- Authority
- CN
- China
- Prior art keywords
- distributed database
- operation statement
- template
- preprocessing
- server cluster
- 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/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
-
- 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
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式数据库预处理的方法,包括以下步骤:从客户端处获取分布式数据库操作语句模板,并获取操作语句参数信息;通过解析所述分布式数据库操作语句模板确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,并发送所述分布式数据库操作语句模板至所述分布式数据库服务器集群;发送所述操作语句参数信息至所述分布式数据库服务器集群;获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果。本发明还公开了一种分布式数据库预处理的装置。本发明解决了数据库预处理技术不能在分布式数据库服务器上使用的技术问题。
Description
技术领域
本发明涉及数据库预处理技术领域,尤其涉及一种分布式数据库预处理的方法及装置。
背景技术
目前,通常采用数据库预处理技术对数据库服务器进行操作,当创建数据库预处理操作语句时,客户端向数据库服务器发送一个包括查询、插入、更新等操作的数据库操作语句模板,然后,数据库服务器对数据库操作语句模板进行解析,生成对应的语法树,并将经过处理的数据库操作语句模板保存起来,数据库预处理操作语句模板用问号(?)代表执行具体操作的参数值,当客户端执行对应的查询、插入、更新等具体操作时,可以将问号所代表的参数值发送至数据库服务器,即可得到操作结果,上述过程可以重复多次,采用数据库预处理操作技术的优势在于:
1、数据库所在的服务器只需解析一次数据库操作语句,并且完整的数据库操作语句不会被发送至服务器,只需采用二进制协议的形式发送参与具体业务的参数信息,节约了处理具体业务的开销如内存、带宽;
2、数据库所在的服务器缓存了部分处理数据库操作语句的计划,所以只需执行一次解析数据库操作语句的动作,提高了处理具体业务的效率;
3、采用预处理技术的数据库服务器,可以有效避免所述数据库服务器遭遇注入式攻击,提高了数据库服务器的安全性。
但是,数据库预处理技术目前只能在独立式数据库服务器上使用,而不能在分布式数据库服务器上使用。
发明内容
本发明的主要目的在于提供一种分布式数据库预处理的方法及装置,旨在解决数据库预处理技术不能在分布式数据库服务器上使用的技术问题。
为了实现上述目的,本发明提供一种分布式数据库预处理的方法,所述方法包括以下步骤:
从客户端处获取分布式数据库操作语句模板,并获取操作语句参数信息;
通过解析所述分布式数据库操作语句模板确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,并发送所述分布式数据库操作语句模板至所述分布式数据库服务器集群;
发送所述操作语句参数信息至所述分布式数据库服务器集群;
获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果。
优选地,所述通过解析所述分布式数据库操作语句模板确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群的步骤包括:
解析所述分布式数据库操作语句模板生成语法树;
根据所述语法树,计算生成所述分布式数据库操作语句模板的执行计划树;
根据所述执行计划树,获取与所述分布式数据库操作语句模板对应的分布式数据库服务器集群。
优选地,所述操作语句参数信息包括操作语句参数值及用于将所述操作语句参数值匹配给所述分布式数据库操作语句模板的标识信息。
优选地,所述获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果的步骤包括:
获取由所述分布式数据库服务器集群返回的结果数据,其中,所述结果数据是位于所述分布式数据库服务器集群中的多个分布式数据库服务器结合所述分布式数据库操作语句模板及所述操作语句参数信息对存储于对应的分布式数据库服务器中的数据进行处理而得到的结果;
对所述结果数据进行汇总计算,获取经过汇总计算的结果集。
优选地,所述获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果的步骤之后还包括:
将所述处理结果发送至客户端;从客户端处获取关闭预处理操作的请求信息,并发送所述请求信息至执行预处理操作的分布式数据库服务器集群;关闭位于所述分布式数据库服务器集群中的多个分布式数据库服务器的预处理服务。
此外,为实现上述目的,本发明还提供一种分布式数据库预处理的装置,所述装置包括:
模板获取模块,用于从客户端处获取分布式数据库操作语句模板,并获取操作语句参数信息;
模板处理模块,用于通过解析所述分布式数据库操作语句模板确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,并发送所述分布式数据库操作语句模板至所述分布式数据库服务器集群;
参数信息转发模块,用于发送所述操作语句参数信息至所述分布式数据库服务器集群;
结果返回模块,用于获取所述分布式数据库服务器根据所述执行预处理操作的请求信息返回的处理结果。
优选地,所述操作语句参数信息包括操作语句参数值及用于将所述操作语句参数值匹配给所述分布式数据库操作语句模板的标识信息。
优选地,所述模板处理模块还用于:
解析生成所述分布式数据库操作语句模板的语法树;
根据所述语法树,计算生成所述分布式数据库操作语句模板的执行计划树;
根据所述执行计划树,获取与所述分布式数据库操作语句模板对应的分布式数据库服务器集群。
优选地,所述结果返回模块还用于:
获取由所述分布式数据库服务器集群返回的结果数据,其中,所述结果数据是位于所述分布式数据库服务器集群中的多个分布式数据库服务器结合所述分布式数据库操作语句模板及所述操作语句参数信息对存储于对应的分布式数据库服务器中的数据进行处理而得到的结果;
对所述结果数据进行汇总计算,获取经过汇总计算的结果集。
优选地,所述分布式数据库预处理的装置还包括:
将所述处理结果发送至客户端;从客户端处获取关闭预处理操作的请求信息,并发送所述请求信息至执行预处理操作的分布式数据库服务器集群;关闭位于所述分布式数据库服务器集群中的多个分布式数据库服务器的预处理服务。
本发明提供了一种分布式数据库预处理的方法及装置,通过从客户端处获取分布式数据库操作语句模板,并获取操作语句参数信息,对所述分布式数据库操作语句模板进行解析,确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,发送所述分布式数据库操作语句模板至所述分布式数据库服务器集群,并发送所述操作语句参数信息至所述分布式数据库服务器集群,获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果,从而解决了数据库预处理技术不能在分布式数据库服务器上使用的技术问题。
附图说明
图1为本发明分布式数据库预处理的方法一实施例的流程示意图;
图2为本发明分布式数据库预处理的方法二实施例的流程示意图;
图3为本发明分布式数据库预处理的装置一实施例的功能模块示意图;
图4是本发明实施例中分布式数据库系统的结构示意图;
图5是本发明实施例中分布式数据库操作语句预处理的装置的另一种功能模块示意图;
图6为本发明分布式数据库预处理的装置二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种分布式数据库预处理的方法。
参照图1,图1为本发明分布式数据库操作语句预处理的方法一实施例的流程示意图。
在一实施例中,该分布式数据库操作语句预处理的方法包括:
步骤S10,从客户端处获取分布式数据库操作语句模板,并获取操作语句参数信息;
本实施例中的技术方案涉及客户端与分布式数据库服务器之间的交互,以实现客户端通过发送分布式数据库操作语句请求来完成对分布式数据库的访问。其中,本实施例在客户端与分布式数据库服务器之间引入中间件,也称分布式数据库操作语句预处理的装置,通过中间件实现分布式数据库预处理。
本实施例分布式数据库系统的结构可以如图4所示,其中,本实施例中的分布式数据库操作语句预处理的装置可以包括执行模块及操作语句路由模块(SQL路由模块)。
具体地,作为一种功能模块设置方式,可以参照图5所示,所述执行模块可以包括线程池单元、线程调度单元、数据操作语句解析单元(SQL解析单元)、数据操纵语言单元(DML单元)、数据定义语言单元(DDL单元)、中介数据缓存单元,以及与SQL路由接口,具体的执行模块的组成部分,在此不作限定。
具体地,所述线程池单元负责管理所述分布式数据库操作语句预处理的装置的所有线程的使用与回收。当所述分布式数据库操作语句预处理的装置获取由客户端处发送的分布式数据库操作语句模板时,所述线程调度单元从所述线程池单元调度一个线程用于处理所述分布式数据库操作语句模板。
所述数据定义语言单元负责将数据定义语句转化为可在分布式数据库服务器中执行的数据定义语句,并将所述数据定义语句的分发策略信息存储于数据字典文件中,再将所述分发策略信息加载至缓存中,以供所述数据操纵语言单元使用。
当所述分布式数据库操作语句预处理的装置启动时,所述分布式数据库操作语句预处理的装置将全部分发策略信息加载至缓存中,所述中介数据缓存单元负责管理所述分发策略信息,并向所述数据操纵语言单元提供查询服务。
本实施例中,通过在客户端处设定分布式数据库操作语句,其中,所述分布式数据库操作语句包括分布式数据库操作语句模板与分布式数据库操作语句参数值。客户端将分布式数据库操作语句拆分为单独的分布式数据库操作语句模板与单独的分布式数据库操作语句参数值,其中,单独的分布式数据库操作语句模板,如INSERT INTO students(firstname,lastname,email)VALUES(?,?,?),可以包括操作语句语法框架、数据库表头信息、操作语句参数变量,具体地,所述分布式数据库操作语句模板的组成部分,在此不作限定。分布式数据库操作语句模板由客户端发送至分布式数据库操作语句预处理的装置。
步骤S20,通过解析所述分布式数据库操作语句模板确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,并发送所述分布式数据库操作语句模板至所述分布式数据库服务器集群;
在获取分布式数据库操作语句模板后,分布式数据库操作语句预处理的装置对所述分布式数据库操作语句模板进行解析,确定存储以数据库表头信息作为标识的数据库表的分布式数据库服务器,将全部符合条件的分布式数据库服务器打包成一个分布式数据库服务器集群,再向所述分布式数据库服务器集群发送包括所述数据库表头信息的分布式数据库操作语句模板。
步骤S30,发送所述操作语句参数信息至所述分布式数据库服务器集群;
在分布式数据库操作语句预处理的装置获取由客户端发送的与所述分布式数据库操作语句模板匹配的操作语句参数信息后,所述分布式数据库操作语句预处理的装置将所述操作语句参数信息发送至经过确定的分布式数据库服务器集群。
位于所述分布式数据库服务器集群中的所有分布式数据库服务器将之前获取的分布式数据库操作语句模板与所述操作语句参数信息进行组合,形成可以被所述分布式数据库服务器执行的完整的分布式数据库操作语句,通过执行所述分布式数据库操作语句,完成对存储于所述分布式数据库服务器中的数据的具体操作,如查询数据、插入数据、更新数据等,具体的,所述具体操作的操作内容,在此不作限定。
步骤S40,获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果。
在完成相关的操作后,所有分布式数据库服务器将操作结果发送至分布式数据库操作语句预处理的装置,所述操作结果包括操作成功信息、操作失败信息、操作用时信息等,具体地,所述操作结果,在此不作限定。
本实施例通过从客户端处获取分布式数据库操作语句模板,并获取操作语句参数信息,对所述分布式数据库操作语句模板进行解析,确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,发送所述分布式数据库操作语句模板至所述分布式数据库服务器集群,并发送所述操作语句参数信息至所述分布式数据库服务器集群,获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果。解决了数据库预处理技术不能在分布式数据库服务器上使用的技术问题。
进一步地,在其他实施例中,上述步骤S20可以包括:
解析生成所述分布式数据库操作语句模板的语法树;
根据所述语法树,计算所述分布式数据库操作语句模板生成执行计划树;
根据所述执行计划树,获取与所述分布式数据库操作语句模板对应的分布式数据库服务器集群。
该实施例中,通过解析由客户端处获取的分布式数据库操作语句模板,生成所述分布式数据库操作语句模板的语法树,由数据操纵语言单元对所述语法树进行计算,生成所述分布式数据库操作语句模板的计划执行树,根据所述计划执行树,所述数据操纵语言单元确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,并将所有位于所述分布式数据库服务器集群中的分布式数据库服务器的网络地址信息存储于所述执行计划树的节点中,由分布式数据库操作语句预处理的装置将所述分布式数据库操作语句模板发送至所述分布式数据库服务器集群。
具体地,所述数据操作语句解析单元负责解析由客户端处获取的分布式数据库操作语句模板,生成所述分布式数据库操作语句模板的语法树,再将所述语法树发送至所述数据操纵语言单元与所述数据定义语言单元用于生成与所述分布式数据库操作语句模板对应的执行计划树。
在一种实施方式中,客户端将分布式数据库操作语句模板发送至分布式数据库操作语句预处理的装置,当所述分布式数据库操作语句预处理的装置获取所述分布式数据库操作语句模板时,对所述分布式数据库操作语句模板中的操作语句语法框架进行解析,得到语法树,所述数据操纵语言单元通过分析所述语法树,获取所述分布式数据库操作语句模板中的数据库表头信息,并通过中介数据缓存单元获取存储以所述数据库表头信息作为标识的数据库表的所有分布式数据库服务器的网络地址信息,根据所述网络地址信息,生成执行计划树,并将所述网络地址信息存储于所述执行计划树中。
上述实施例方案,通过存储于所述执行计划树中的所述网络地址信息,确定与所述分布式数据库操作语句模板对应的所有分布式数据库服务器,并与所述所有分布式数据库服务器集群建立逻辑链路通道,其中,所述分布式数据库服务器组成一个分布式数据库服务器集群。通过操作语句路由器即操作语句路由模块通过所述逻辑链路通道向所述分布式数据库服务器集群发送所述分布式数据库操作语句模板。解决了数据库预处理技术不能在分布式数据库服务器上使用的技术问题。
进一步地,在其他实施例中,操作语句参数信息包括操作语句参数值及用于将所述操作语句参数值匹配给所述分布式数据库操作语句模板的标识信息。
该实施例中,参数信息可以包括中间变量。位于所述分布式数据库服务器集群中的所有分布式数据库服务器将之前获取的分布式数据库操作语句模板中的问号(?)与所述中间变量进行组合,获取包括所述中间变量的分布式数据库操作语句模板,如INSERT INTOstudents(firstname,lastname,email)VALUES(x,y,z),其中,中间变量x、中间变量y及中间变量z可以与在客户端中设定的参数x、参数y及参数z形成逻辑关系,具体地,所述中间变量的数量,在此不作限定。在所述客户端中,当对所述参数x、所述参数y及所述参数z执行赋值运算操作如循环赋值运算时,用于执行赋值操作的参数值可以对所述中间变量x、所述中间变量y及所述中间变量z进行赋值,其中,所述参数值是所述参数信息的组成部分。中间变量的引入,解决了当需多次要执行发送参数信息的操作时,需要在客户端处多次输入参数值的问题,提升了用户体验。
进一步地,在其他实施例中,上述步骤S40可以包括:
获取由所述分布式数据库服务器集群返回的结果数据,其中,所述结果数据是位于所述分布式数据库服务器集群中的多个分布式数据库服务器结合所述分布式数据库操作语句模板及所述操作语句参数信息对存储于对应的分布式数据库服务器中的数据进行处理而得到的结果;
对所述结果数据进行汇总计算,获取经过汇总计算的结果集。
该实施例中,分布式数据库服务器通过结合分布式数据库操作语句模板与操作语句参数信息,对存储于所述分布式数据库服务器中的数据进行处理,处理方式可以包括增添数据、删除数据、更改数据、查询数据等,具体地,所述处理方式的处理内容,在此不作限定。在完成相关的操作后,所述分布式数据库服务器得到处理结果,所述处理结果可以包括操作成功信息、操作失败信息、操作用时信息等。具体地,所述操作成功信息的具体内容,如通过查询操作得到的数据,在此不作限定。
在一种实施方式中,操作语句路由器监听所述分布式数据库服务器的处理过程,当处理结束时,所述分布式数据库服务器将结果数据发送至执行计划树的节点中,由分布式数据库操作语句预处理的装置对存储于所述节点中的所述结果数据进行汇总计算,得到经过汇总计算的结果集。解决了数据库预处理技术不能在分布式数据库服务器上使用的技术问题。
参照图2,图2为本发明分布式数据库预处理的方法二实施例的流程示意图,在上述实施例的基础上,在上述步骤S40之后还包括:
步骤S50,将所述处理结果发送至客户端;从客户端处获取关闭预处理操作的请求信息,并发送所述请求信息至执行预处理操作的分布式数据库服务器集群;关闭位于所述分布式数据库服务器集群中的多个分布式数据库服务器的预处理服务。
本实施例中,将所述处理结果发送至客户端,并从客户端处获取关闭预处理操作的请求信息,当分布式数据库操作语句预处理的装置获取关闭预处理操作的请求信息时,所述分布式数据库操作语句预处理的装置销毁相关的数据,具体地,所述数据可以包括语法树、执行计划树及相关的缓存信息,在此不作限定。同时,向执行预处理操作的分布式数据库服务器发送所述请求信息,关闭所述数据库服务器的预处理服务。解决了数据库预处理技术不能在分布式数据库服务器上使用的技术问题,并在释放硬件资源的基础上,节省了硬件资源的内存与存储空间。
本发明进一步提供一种分布式数据库预处理的装置。
参照图3,图3为本发明分布式数据库预处理的装置一实施例的功能模块示意图。
在一实施例中,该分布式数据库操作语句预处理的装置可以包括:模板获取模块01、模板处理模块02、参数信息转发模块03、结果返回模块04,其中:
模板获取模块01,用于从客户端处获取分布式数据库操作语句模板,并获取操作语句参数信息;
本实施例中的技术方案涉及客户端与分布式数据库服务器之间的交互,以实现客户端通过发送分布式数据库操作语句请求来完成对分布式数据库的操作。其中,本实施例在客户端与分布式数据库服务器之间引入中间件,也即本实施例提出的分布式数据库操作语句预处理的装置,通过中间件实现分布式数据库预处理。本实施例中,通过在客户端处设定分布式数据库操作语句,其中,所述分布式数据库操作语句包括分布式数据库操作语句模板与分布式数据库操作语句参数值。客户端将分布式数据库操作语句拆分为单独的分布式数据库操作语句模板与单独的分布式数据库操作语句参数值,其中,单独的分布式数据库操作语句模板,如INSERT INTO students(firstname,lastname,email)VALUES(?,?,?),可以包括操作语句语法框架、数据库表头信息、操作语句参数变量,具体地,所述分布式数据库操作语句模板的组成部分,在此不作限定。分布式数据库操作语句模板由客户端发送至分布式数据库操作语句预处理的装置。
模板处理模块02,用于通过解析所述分布式数据库操作语句模板确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,并发送所述分布式数据库操作语句模板至所述分布式数据库服务器集群;
在获取分布式数据库操作语句模板后,分布式数据库操作语句预处理的装置对所述分布式数据库操作语句模板进行解析,确定存储以数据库表头信息作为标识的数据库表的分布式数据库服务器,将全部符合条件的分布式数据库服务器打包成一个分布式数据库服务器集群,再向所述分布式数据库服务器集群发送包括所述数据库表头信息的分布式数据库操作语句模板。
参数信息转发模块03,用于发送所述操作语句参数信息至所述分布式数据库服务器集群;
在分布式数据库操作语句预处理的装置获取由客户端发送的与所述分布式数据库操作语句模板匹配的操作语句参数信息后,所述分布式数据库操作语句预处理的装置将所述操作语句参数信息发送至经过确定的分布式数据库服务器集群。
位于所述分布式数据库服务器集群中的所有分布式数据库服务器将之前获取的分布式数据库操作语句模板与所述操作语句参数信息进行组合,形成可以被所述分布式数据库服务器执行的完整的分布式数据库操作语句,通过执行所述分布式数据库操作语句,完成对存储于所述分布式数据库服务器中的数据的具体操作,如查询数据、插入数据、更新数据等,具体的,所述具体操作的操作内容,在此不作限定。
结果返回模块04,用于获取所述分布式数据库服务器根据所述执行预处理操作的请求信息返回的处理结果。
在完成相关的操作后,所有分布式数据库服务器将操作结果发送至分布式数据库操作语句预处理的装置,所述操作结果包括操作成功信息、操作失败信息、操作用时信息等,具体地,所述操作结果,在此不作限定。
本实施例通过从客户端处获取分布式数据库操作语句模板,并获取操作语句参数信息,对所述分布式数据库操作语句模板进行解析,确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,发送所述分布式数据库操作语句模板至所述分布式数据库服务器集群,并发送所述操作语句参数信息至所述分布式数据库服务器集群,获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果。解决了数据库预处理技术不能在分布式数据库服务器上使用的技术问题。
在一种实际应用中,本实施例分布式数据库系统的结构可以如图4所示,其中,本实施例中的分布式数据库操作语句预处理的装置可以包括执行模块及操作语句路由模块(SQL路由模块),其中,该执行模块可以包括上述实施例中的模板获取模块01和模板处理模块02的功能,操作语句路由模块可以包括上述实施例中的参数信息转发模块03和结果返回模块04。
具体地,作为一种功能模块设置方式,可以参照图5所示,所述执行模块可以包括线程池单元、线程调度单元、数据操作语句解析单元(SQL解析单元)、数据操纵语言单元(DML单元)、数据定义语言单元(DDL单元)、中介数据缓存单元,以及与SQL路由接口,具体的执行模块的组成部分,在此不作限定。
具体地,所述线程池单元负责管理所述分布式数据库操作语句预处理的装置的所有线程的使用与回收。当所述分布式数据库操作语句预处理的装置获取由客户端处发送的分布式数据库操作语句模板时,所述线程调度单元从所述线程池单元调度一个线程用于处理所述分布式数据库操作语句模板。
所述数据定义语言单元负责将数据定义语句转化为可在分布式数据库服务器中执行的数据定义语句,并将所述数据定义语句的分发策略信息存储于数据字典文件中,再将所述分发策略信息加载至缓存中,以供所述数据操纵语言单元使用。
当所述分布式数据库操作语句预处理的装置启动时,所述分布式数据库操作语句预处理的装置将全部分发策略信息加载至缓存中,所述中介数据缓存单元负责管理所述分发策略信息,并向所述数据操纵语言单元提供查询服务。
进一步地,在其他实施例中,上述模板处理模块02可以用于:
解析生成所述分布式数据库操作语句模板的语法树;根据所述语法树,计算生成所述分布式数据库操作语句模板的执行计划树;根据所述执行计划树,获取与所述分布式数据库操作语句模板对应的分布式数据库服务器集群。
基于图4所示的执行模块,在该实施例中,通过解析由客户端处获取的分布式数据库操作语句模板,生成所述分布式数据库操作语句模板的语法树,由数据操纵语言单元对所述语法树进行计算,生成所述分布式数据库操作语句模板的计划执行树,根据所述计划执行树,所述数据操纵语言单元确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,并将所有位于所述分布式数据库服务器集群中的分布式数据库服务器的网络地址信息存储于所述执行计划树的节点中,由分布式数据库操作语句预处理的装置将所述分布式数据库操作语句模板发送至所述分布式数据库服务器集群。
具体地,所述数据操作语句解析单元负责解析由客户端处获取的分布式数据库操作语句模板,生成所述分布式数据库操作语句模板的语法树,再将所述语法树发送至所述数据操纵语言单元与所述数据定义语言单元用于生成与所述分布式数据库操作语句模板对应的执行计划树。
在一种实施方式中,客户端将分布式数据库操作语句模板发送至分布式数据库操作语句预处理的装置,当所述分布式数据库操作语句预处理的装置获取所述分布式数据库操作语句模板时,对所述分布式数据库操作语句模板中的操作语句语法框架进行解析,得到语法树,所述数据操纵语言单元通过分析所述语法树,获取所述分布式数据库操作语句模板中的数据库表头信息,并通过中介数据缓存单元获取存储以所述数据库表头信息作为标识的数据库表的所有分布式数据库服务器的网络地址信息,根据所述网络地址信息,生成执行计划树,并将所述网络地址信息存储于所述执行计划树中。
通过存储于所述执行计划树中的所述网络地址信息,确定与所述分布式数据库操作语句模板对应的所有分布式数据库服务器,并与所述所有分布式数据库服务器集群建立逻辑链路通道,其中,所述分布式数据库服务器组成一个分布式数据库服务器集群。通过操作语句路由器即操作语句路由模块通过所述逻辑链路通道向所述分布式数据库服务器集群发送所述分布式数据库操作语句模板。解决了数据库预处理技术不能在分布式数据库服务器上使用的技术问题。
进一步地,在其他实施例中,操作语句参数信息包括操作语句参数值及用于将所述操作语句参数值匹配给所述分布式数据库操作语句模板的标识信息。
该实施例中,参数信息可以包括中间变量。位于所述分布式数据库服务器集群中的所有分布式数据库服务器将之前获取的分布式数据库操作语句模板中的问号(?)与所述中间变量进行组合,获取包括所述中间变量的分布式数据库操作语句模板,如INSERT INTOstudents(firstname,lastname,email)VALUES(x,y,z),其中,中间变量x、中间变量y及中间变量z可以与在客户端中设定的参数x、参数y及参数z形成逻辑关系,具体地,所述中间变量的数量,在此不作限定。在所述客户端中,当对所述参数x、所述参数y及所述参数z执行赋值运算操作如循环赋值运算时,用于执行赋值操作的参数值可以对所述中间变量x、所述中间变量y及所述中间变量z进行赋值,其中,所述参数值是所述参数信息的组成部分。中间变量的引入,解决了当需多次要执行发送参数信息的操作时,需要在客户端处多次输入参数值的问题,提升了用户体验。
进一步地,在其他实施例中,上述结果返回模块04可以用于:
获取由所述分布式数据库服务器集群返回的结果数据,其中,所述结果数据是位于所述分布式数据库服务器集群中的多个分布式数据库服务器结合所述分布式数据库操作语句模板及所述操作语句参数信息对存储于对应的分布式数据库服务器中的数据进行处理而得到的结果;对所述结果数据进行汇总计算,获取经过汇总计算的结果集。
在该实施例中,分布式数据库服务器通过结合分布式数据库操作语句模板与操作语句参数信息,对存储于所述分布式数据库服务器中的数据进行处理,处理方式可以包括增添数据、删除数据、更改数据、查询数据等,具体地,所述处理方式的处理内容,在此不作限定。在完成相关的操作后,所述分布式数据库服务器得到处理结果,所述处理结果可以包括操作成功信息、操作失败信息、操作用时信息等。具体地,所述操作成功信息的具体内容,如通过查询操作得到的数据,在此不作限定。
在一种实施方式中,操作语句路由器监听所述分布式数据库服务器的处理过程,当处理结束时,所述分布式数据库服务器将结果数据发送至执行计划树的节点中,由分布式数据库操作语句预处理的装置对存储于所述节点中的所述结果数据进行汇总计算,得到经过汇总计算的结果集。解决了数据库预处理技术不能在分布式数据库服务器上使用的技术问题。
参照图6,图6为本发明分布式数据库预处理的装置二实施例的功能模块示意图,在上述实施例的基础上,该分布式数据库预处理的装置还包括:
关闭模块05,将所述处理结果发送至客户端;从客户端处获取关闭预处理操作的请求信息,并发送所述请求信息至执行预处理操作的分布式数据库服务器集群;关闭位于所述分布式数据库服务器集群中的多个分布式数据库服务器的预处理服务。
本实施例中,将所述处理结果发送至客户端,并从客户端处获取关闭预处理操作的请求信息,当分布式数据库操作语句预处理的装置获取关闭预处理操作的请求信息时,所述分布式数据库操作语句预处理的装置销毁相关的数据,具体地,所述数据可以包括语法树、执行计划树及相关的缓存信息,在此不作限定。同时,向执行预处理操作的分布式数据库服务器发送所述请求信息,关闭所述数据库服务器的预处理服务。解决了数据库预处理技术不能在分布式数据库服务器上使用的技术问题,并在释放硬件资源的基础上,节省了硬件资源的内存与存储空间。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机。服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种分布式数据库预处理的方法,其特征在于,所述分布式数据库预处理的方法包括以下步骤:
从客户端处获取分布式数据库操作语句模板,并获取操作语句参数信息;
通过解析所述分布式数据库操作语句模板确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,并发送所述分布式数据库操作语句模板至所述分布式数据库服务器集群;
发送所述操作语句参数信息至所述分布式数据库服务器集群;
获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果;
所述通过解析所述分布式数据库操作语句模板确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群的步骤包括:
解析所述分布式数据库操作语句模板生成语法树;
根据所述语法树,计算生成所述分布式数据库操作语句模板的执行计划树;
根据所述执行计划树,获取与所述分布式数据库操作语句模板对应的分布式数据库服务器集群。
2.如权利要求1所述的分布式数据库预处理的方法,其特征在于,所述操作语句参数信息包括操作语句参数值及用于将所述操作语句参数值匹配给所述分布式数据库操作语句模板的标识信息。
3.如权利要求1所述的分布式数据库预处理的方法,其特征在于,所述获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果的步骤包括:
获取由所述分布式数据库服务器集群返回的结果数据,其中,所述结果数据是位于所述分布式数据库服务器集群中的多个分布式数据库服务器结合所述分布式数据库操作语句模板及所述操作语句参数信息对存储于对应的分布式数据库服务器中的数据进行处理而得到的结果;
对所述结果数据进行汇总计算,获取经过汇总计算的结果集。
4.如权利要求1至3中任意一项所述的分布式数据库预处理的方法,其特征在于,所述获取所述分布式数据库服务器集群根据所述分布式数据库操作语句模板及所述操作语句参数信息返回的处理结果的步骤之后还包括:
将所述处理结果发送至客户端;
从客户端处获取关闭预处理操作的请求信息,并发送所述请求信息至执行预处理操作的分布式数据库服务器集群;
关闭位于所述分布式数据库服务器集群中的多个分布式数据库服务器的预处理服务。
5.一种分布式数据库预处理的装置,其特征在于,所述装置包括:
模板获取模块,用于从客户端处获取分布式数据库操作语句模板,并获取操作语句参数信息;
模板处理模块,用于通过解析所述分布式数据库操作语句模板确定与所述分布式数据库操作语句模板对应的分布式数据库服务器集群,并发送所述分布式数据库操作语句模板至所述分布式数据库服务器集群;
参数信息转发模块,用于发送所述操作语句参数信息至所述分布式数据库服务器集群;
结果返回模块,用于获取所述分布式数据库服务器根据执行预处理操作的请求信息返回的处理结果;
所述模板处理模块还用于:
解析生成所述分布式数据库操作语句模板的语法树;根据所述语法树,计算生成所述分布式数据库操作语句模板的执行计划树;根据所述执行计划树,获取与所述分布式数据库操作语句模板对应的分布式数据库服务器集群。
6.如权利要求5所述的分布式数据库预处理的装置,其特征在于,所述操作语句参数信息包括操作语句参数值及用于将所述操作语句参数值匹配给所述分布式数据库操作语句模板的标识信息。
7.如权利要求5所述的分布式数据库预处理的装置,其特征在于,所述结果返回模块还用于:
获取由所述分布式数据库服务器集群返回的结果数据,其中,所述结果数据是位于所述分布式数据库服务器集群中的多个分布式数据库服务器结合所述分布式数据库操作语句模板及所述操作语句参数信息对存储于对应的分布式数据库服务器中的数据进行处理而得到的结果;对所述结果数据进行汇总计算,获取经过汇总计算的结果集。
8.如权利要求5至7中任意一项所述的分布式数据库预处理的装置,其特征在于,还包括:
关闭模块,用于将所述处理结果发送至客户端;从客户端处获取关闭预处理操作的请求信息,并发送所述请求信息至执行预处理操作的分布式数据库服务器集群;关闭位于所述分布式数据库服务器集群中的多个分布式数据库服务器的预处理服务。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610171043.5A CN107229628B (zh) | 2016-03-23 | 2016-03-23 | 分布式数据库预处理的方法及装置 |
PCT/CN2017/074231 WO2017161989A1 (zh) | 2016-03-23 | 2017-02-21 | 分布式数据库预处理的方法及装置、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610171043.5A CN107229628B (zh) | 2016-03-23 | 2016-03-23 | 分布式数据库预处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107229628A CN107229628A (zh) | 2017-10-03 |
CN107229628B true CN107229628B (zh) | 2022-02-01 |
Family
ID=59899204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610171043.5A Active CN107229628B (zh) | 2016-03-23 | 2016-03-23 | 分布式数据库预处理的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107229628B (zh) |
WO (1) | WO2017161989A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241154A (zh) * | 2018-07-05 | 2019-01-18 | 武汉迎风聚智科技有限公司 | 一种分布式数据库监控分析方法及系统 |
CN112860740B (zh) * | 2019-11-27 | 2022-12-20 | 金篆信科有限责任公司 | 一种触发器实现的方法和装置 |
CN111881216A (zh) * | 2020-08-03 | 2020-11-03 | 北京罗克维尔斯科技有限公司 | 一种基于共享模板的数据获取方法和装置 |
CN112163000A (zh) * | 2020-08-31 | 2021-01-01 | 阿里巴巴集团控股有限公司 | 一种数据查询方法和装置 |
CN112035514A (zh) * | 2020-09-02 | 2020-12-04 | 北京金山云网络技术有限公司 | 一种数据库语句处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193922A (zh) * | 2010-03-04 | 2011-09-21 | 杭州华三通信技术有限公司 | 一种对数据库进行访问的方法和装置 |
WO2013026287A1 (zh) * | 2011-08-25 | 2013-02-28 | 中兴通讯股份有限公司 | 基于分布式数据库系统的数据控制方法及系统 |
CN103646051A (zh) * | 2013-11-27 | 2014-03-19 | 武汉邮电科学研究院 | 一种基于列存储的大数据并行处理系统及方法 |
CN103729471A (zh) * | 2014-01-21 | 2014-04-16 | 华为软件技术有限公司 | 数据库查询方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4805150B2 (ja) * | 2003-08-14 | 2011-11-02 | オラクル・インターナショナル・コーポレイション | オンデマンドノードならびにサーバインスタンス割当および割当解除 |
US8209699B2 (en) * | 2009-07-10 | 2012-06-26 | Teradata Us, Inc. | System and method for subunit operations in a database |
CN102209118A (zh) * | 2011-06-10 | 2011-10-05 | 成都勤智数码科技有限公司 | 一种分布式海量数据汇聚方法 |
CN103336782B (zh) * | 2013-05-30 | 2016-09-21 | 莱诺斯科技(北京)股份有限公司 | 一种关系型分布式数据库系统 |
CN104793988B (zh) * | 2014-01-20 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 跨数据库分布式事务的实现方法和装置 |
CN104333512B (zh) * | 2014-10-30 | 2017-07-28 | 北京思特奇信息技术股份有限公司 | 一种分布式内存数据库访问系统及方法 |
CN104484392B (zh) * | 2014-12-11 | 2018-02-02 | 北京国双科技有限公司 | 数据库查询语句生成方法及装置 |
-
2016
- 2016-03-23 CN CN201610171043.5A patent/CN107229628B/zh active Active
-
2017
- 2017-02-21 WO PCT/CN2017/074231 patent/WO2017161989A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193922A (zh) * | 2010-03-04 | 2011-09-21 | 杭州华三通信技术有限公司 | 一种对数据库进行访问的方法和装置 |
WO2013026287A1 (zh) * | 2011-08-25 | 2013-02-28 | 中兴通讯股份有限公司 | 基于分布式数据库系统的数据控制方法及系统 |
CN103646051A (zh) * | 2013-11-27 | 2014-03-19 | 武汉邮电科学研究院 | 一种基于列存储的大数据并行处理系统及方法 |
CN103729471A (zh) * | 2014-01-21 | 2014-04-16 | 华为软件技术有限公司 | 数据库查询方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107229628A (zh) | 2017-10-03 |
WO2017161989A1 (zh) | 2017-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107229628B (zh) | 分布式数据库预处理的方法及装置 | |
US11487772B2 (en) | Multi-party data joint query method, device, server and storage medium | |
US10194001B1 (en) | Automatic discovery of API information | |
CN110765484B (zh) | 一种征信数据处理方法及电子设备 | |
WO2018035799A1 (zh) | 数据查询方法、应用和数据库服务器、中间件及系统 | |
CN108509523A (zh) | 区块链数据的结构化处理方法、设备及可读存储介质 | |
CN106257868B (zh) | 配置数据推送方法及装置 | |
CN107291770B (zh) | 一种分布式系统中海量数据的查询方法及装置 | |
CN108021369B (zh) | 一种数据集成处理方法及相关装置 | |
US9084131B2 (en) | Data cut-over method and apparatus | |
CN113590433B (zh) | 数据管理方法、数据管理系统和计算机可读存储介质 | |
US10243798B2 (en) | Variable SNMP data collection with embedded queries | |
CN114969441A (zh) | 基于图数据库的知识挖掘引擎系统 | |
CN113157904B (zh) | 基于dfa算法的敏感词过滤方法及系统 | |
CN112487075B (zh) | 一种集成关系型和非关系型数据库数据转换算子的方法 | |
CN106210159B (zh) | 一种域名解析方法和设备 | |
Munonye et al. | Performance analysis of the microsoft. Net-and java-based implementation of REST web services | |
CN113297305A (zh) | 会话状态处理方法、装置、设备和存储介质 | |
CN110162250B (zh) | 一种截图方法、系统和存储介质 | |
CN107092529B (zh) | Olap服务方法、装置及系统 | |
WO2023092981A1 (zh) | 流式数据处理方法、规则插件、流式数据处理模块及系统 | |
CN107203594B (zh) | 一种数据处理设备、方法和计算机可读存储介质 | |
CN115510137A (zh) | 基于jdbc规范的命令转换方法、系统、计算机设备及介质 | |
CN108319704B (zh) | 一种分析数据的方法、装置、设备及存储介质 | |
CN110865845B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220105 Address after: 100176 602, floor 6, building 6, courtyard 10, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone) Applicant after: Jinzhuan Xinke Co.,Ltd. Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong Applicant before: ZTE Corp. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |