CN105389394A - 基于多个数据库集群的数据请求处理方法及装置 - Google Patents

基于多个数据库集群的数据请求处理方法及装置 Download PDF

Info

Publication number
CN105389394A
CN105389394A CN201510970768.6A CN201510970768A CN105389394A CN 105389394 A CN105389394 A CN 105389394A CN 201510970768 A CN201510970768 A CN 201510970768A CN 105389394 A CN105389394 A CN 105389394A
Authority
CN
China
Prior art keywords
data
request
syntactic structure
type
data manipulation
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
CN201510970768.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.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510970768.6A priority Critical patent/CN105389394A/zh
Publication of CN105389394A publication Critical patent/CN105389394A/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/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于多个数据库集群的数据请求处理方法及装置,至少能够解决传统的数据库集群处理数据请求的效率低下的技术问题。该处理方法包括:接收数据请求;根据预先设置的语法定义规则,确定该数据请求所对应的语法结构;根据所述语法结构对所述数据请求进行解析;根据所述解析的结果处理所述数据请求。该方法大幅提高了数据请求的处理效率,缩短了服务器的响应时延,为数据库集群的可扩展性提供了基础。

Description

基于多个数据库集群的数据请求处理方法及装置
技术领域
本发明涉及网络通信技术领域,具体涉及一种基于多个数据库集群的数据请求处理方法及装置。
背景技术
随着大数据时代的来临,计算机要处理的数据量越来越丰富。受限于服务器的内存及响应速度的限制,单台服务器已经无法满足处理海量数据的需求,因此,由多台服务器组成的数据库集群***便应运而生了。传统的数据库集群***中仅包含一个数据库集群,该集群由一台主服务器以及多台从服务器构成,该种架构模式也可以称为单主架构模式。在这种单主架构模式中,整个***的存储容量以及处理能力依然受到主服务器的内存及响应速度的制约,且无法扩展为多主架构模式以实现扩容。
产生上述问题的主要原因在于:欲从单主架构模式扩展为多主架构模式,需要快速确定数据请求需由哪台主服务器处理,然而,传统的数据库集群***在处理数据请求时,无法对数据请求进行语法分析,只能进行词法分析,由此导致处理效率异常低下,无法满足上述需求。
具体地,在进行词法分析时,需要对数据请求中的各个字段逐一进行比较,根据比较结果来获取各个字段的具体内容。例如,假设数据请求中包含ID字段,需要获取该ID字段的具体内容,则通过词法分析方式需进行以下处理:首先,根据数据库集群的相关设置确定ID字段的具体内容是介于0-1000之间的一个数值;然后,遍历数据请求中的全部字段,以便挑选出数值范围介于0-1000之间的字段;最后,如果挑选出的字段有多个,还要进一步结合其他规则判断其中哪个字段为ID字段。由此可见,在通过词法分析逐一比较各个字段的处理方式中,每获取一个字段的具体内容都要耗费大量的时间,当需要获取数据请求中的多个字段时,其耗费的处理时间显然是用户无法接受的。
由此可见,传统的数据库集群***处理数据请求的效率异常低下,这一缺陷不仅对数据库集群***的响应速度造成了影响;而且,还限制了数据库集群***的可扩展性。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于多个数据库集群的数据请求处理方法及装置。
依据本发明的一个方面,提供了一种基于多个数据库集群的数据请求处理方法,包括:接收数据请求;根据预先设置的语法定义规则,确定该数据请求所对应的语法结构;根据所述语法结构对所述数据请求进行解析;根据所述解析的结果处理所述数据请求。
依据本发明的另一方面,提供了一种基于多个数据库集群的数据请求处理装置,包括:接收模块,适于接收数据请求;确定模块,适于根据预先设置的语法定义规则,确定该数据请求所对应的语法结构;解析模块,适于根据所述语法结构对所述数据请求进行解析;处理模块,适于根据所述解析的结果处理所述数据请求。
在本发明提供的基于多个数据库集群的数据请求处理方法及装置中,预先为数据请求设定了语法定义规则,因而能够根据该语法定义规则,对数据请求进行语法分析,从而确定数据请求对应的语法结构,并根据语法结构对数据请求进行快速解析。由此可见,与传统的词法分析方式不同,本发明提供的方式能够对数据请求进行语法分析,从而快速确定数据请求的语义,进而获取到数据请求中包含的各个字段的具体内容。该方法大幅提高了数据请求的处理效率,缩短了服务器的响应时延,为数据库集群的可扩展性提供了基础。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的基于多个数据库集群的数据请求处理方法的流程示意图;
图2示出了本实施例中的数据库集群***的架构示意图;
图3示出了本发明另一实施例提供的基于多个数据库集群的数据请求处理方法的流程示意图;以及,
图4示出了本发明实施例提供的基于多个数据库集群的数据请求处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种基于多个数据库集群的数据请求处理方法及装置,至少能够解决传统的数据库集群处理数据请求的效率低下的技术问题。
图1示出了本发明实施例提供的基于多个数据库集群的数据请求处理方法的流程示意图。如图1所示,该数据请求处理方法包括:
步骤S110:接收数据请求。
其中,数据请求可能来自用户终端,也可能来自管理服务器,本发明对数据请求的来源不做限定。
步骤S120:根据预先设置的语法定义规则,确定该数据请求所对应的语法结构。
其中,数据请求中通常包含数据操作以及数据操作对象。相应地,在上述语法定义规则中定义了各种类型的数据操作所对应的语法结构,以及数据操作对象所对应的语法结构。
步骤S130:根据语法结构对数据请求进行解析。
在本步骤中,一方面,根据语法结构对数据请求进行解析,以获取数据请求中的数据操作。另一方面,根据语法结构对数据请求进行解析,以获取数据请求中的数据操作对象。
其中,数据操作的类型可以包括:写入类型以及读取类型,其中,写入类型的数据操作进一步包括:***类型的数据请求、删除类型的数据请求或修改类型的数据请求。
步骤S140:根据解析的结果处理数据请求。
具体地,根据解析的结果,对数据操作对象执行数据操作。
可选地,为了便于确定与数据请求相对应的数据库集群,上述数据操作对象对应的语法结构中包括数据操作对象的标识以及路由字段的名称和/或位置,则在上述的步骤S130中,具体根据语法结构对数据请求进行解析,以获取路由字段的值以及数据操作对象的标识。相应地,在上述的步骤S140中,具体根据路由字段的值以及数据操作对象的标识,对相应的数据操作对象执行数据操作,其中路由字段的值的不同范围对应不同的数据库集群。
由此可见,与传统的词法分析方式不同,本发明提供的方式能够对数据请求进行语法分析,从而快速确定数据请求的语义,进而获取到数据请求中包含的各个字段的具体内容。该方法大幅提高了数据请求的处理效率,缩短了服务器的响应时延,为数据库集群的可扩展性提供了基础。
下面结合一个具体实施例详细描述本发明提供的基于多个数据库集群的数据请求处理方法。图2示出了本实施例中的数据库集群***的架构示意图。如图2所示,本实施例中的集群***包括三个数据库集群,分别为第一数据库集群、第二数据库集群和第三数据库集群,其中,每个数据库集群中分别包括一台主服务器以及多台从服务器。通过本发明中的方法能够向三个数据库集群中的任一集群写入数据,也能够从任一集群中读取数据,因此,能够将数据内容分布式存储在三个数据库集群中。下面参照图3详细介绍本实施例中的各个步骤:
步骤S310:预先设置分布式存储规则。
其中,分布式存储规则用于将数据内容分布存储在多个数据库集群中。例如,以数据表为例,如果按照传统方式仅将数据表存储在一个数据库集群中,该数据表的存储容量将受到相应数据库集群的存储容量的制约。为了克服这一问题,在本实施例中,根据数据表中各条数据记录所包含的路由字段,将数据表中的数据记录拆分为三部分,分别存储在三个数据库集群中,因此,与传统方式相比,数据表的存储容量能够提升三倍。
具体实现时,在本实施例中,预先将数据表中各条数据记录的ID字段设置为路由字段,根据ID字段的数值范围确定对应的数据库集群。设置路由字段的主要目的在于:结合分布式存储规则,根据路由字段的值来确定相应的数据库集群,因此,除ID字段外,其他能够唯一标识各条数据记录的字段也可以作为路由字段,本发明对路由字段的具体字段名不做限定。
本发明中的分布式存储规则可以灵活通过多种方式实现,在本实施例中,着重介绍下述两种分布式存储规则:
本实施例提供的第一种分布式存储规则为:将路由字段的值的范围划分为多个子区间,每个子区间分别对应一个数据库集群,根据接收到的数据请求中包含的路由字段的值所在的子区间来确定对应的数据库集群。例如,假设各张数据表中的数据记录的ID字段的数值范围为[0,3000],将该数值范围划分为如下三个子区间:第一个子区间[0,1000)对应于第一数据库集群,第二个子区间[1000,2000)对应于第二数据库集群,第三个子区间[2000,3000]对应于第三数据库集群。当接收到数据请求后,根据数据请求中包含的ID字段的数值范围确定对应的数据库集群。
第一种分布式存储规则的优点在于:便于扩容。具体地,随着各张数据表中的数据记录逐渐增多,当由三个数据库集群所组成的集群***无法满足日益增长的存储需求时,能够在无需进行数据迁移的情况下,将集群***扩展为由四个甚至更多个数据库集群组成的***,从而方便地实现集群***的扩容。
本实施例提供的第二种分布式存储规则为:对接收到的数据请求中包含的路由字段的值进行取模运算,根据运算结果确定对应的数据库集群,其中,每个数据库集群分别对应取模运算的一种结果。具体地,在本实施例中,集群***由三个数据库集群组成,因此,通过将ID字段对3取模来确定对应的数据库集群:第一数据库集群对应于模运算结果为0的数据请求,第二数据库集群对应于模运算结果为1的数据请求,第三数据库集群对应于模运算结果2的数据请求。例如,假设数据请求中包含的ID字段的数值为10,其对3取模后结果为1,因而对应于第二数据库集群。
第二种分布式存储规则的优点在于:数据分布均匀。具体地,通过对ID字段取模,能够将数据表中的全部数据记录均匀地分布在各个数据库集群中,不会产生一个数据库集群中的数据量显著多于另一数据库集群中的数据量的情况。
步骤S320:预先设置用于解析数据请求的语法定义规则。
通过语法定义规则能够快速获取数据请求的语义,提高解析速度。通常情况下,数据请求包括数据操作以及数据操作对象。相应地,该语法定义规则中不仅定义了各种类型的数据操作所对应的语法结构,还定义了数据操作对象所对应的语法结构。
具体地,数据操作对应的语法结构包括:数据操作的类型以及各种类型的数据操作的字段名称以及字段位置。例如,数据操作的类型包括:写入类型以及读取类型,写入类型的数据操作又进一步分为:***类型的数据请求,删除类型的数据请求以及修改类型的数据请求。读取类型的数据操作又进一步包括检索类型的数据请求。例如,***类型的数据请求对应的语法结构中至少规定了如下内容:字段名称为“Insert”,字段位置位于数据请求的首部;删除类型的数据请求对应的语法结构中至少规定了如下内容:字段名称为“Delete”,字段位置位于数据请求的首部;检索类型的数据请求对应的语法结构中至少规定了如下内容:字段名称为“Select”,字段位置位于数据请求的首部。除此之外,数据操作对应的语法结构中可能还定义了各种数据操作相对应的格式规范,例如,***数据操作的格式规范包括“Insert+into+数据操作对象”,检索数据操作的格式规范包括:“Select*from+数据操作对象”。由此可见,通过数据操作对应的语法结构能够快速识别数据请求的操作类型,并根据该类型的语法特征快速获取数据操作对象。
另外,数据操作对象对应的语法结构包括:数据操作对象的标识以及路由字段的名称和/或位置。根据数据操作对象的标识能够快速获取数据请求中包含的数据操作对象,根据路由字段的名称和/或位置能够快速解析出数据请求中包含的路由字段,进而确定与该数据请求相对应的数据库集群。
上述的步骤S310和步骤S320的执行顺序没有限制,且步骤S310和步骤S320也可以不做为单独的步骤执行。
步骤S330:接收数据请求。
该数据请求可能来源于集群***的用户终端,也可能来源于集群***内部的管理服务器,总之,本发明对数据请求的来源不做限定。接收到的数据请求的数量可能是一条也可能是多条,当同时接收到多条数据请求时,为了避免遗漏其中的某一条数据请求,可以将接收到的多条数据请求先缓存在请求列表中,并从请求列表中依次取出各条数据请求进行处理。具体处理时,既可以通过单线程依次处理的方式逐一处理各条数据请求,也可以通过多线程并行处理的方式并行处理各条数据请求,以便提高效率。
另外,接收数据请求并对接收到的数据请求执行后续处理的操作过程既可以由集群***内部的任一数据库集群的服务器来完成,也可以由集群***中另外的分发服务器来完成。
步骤S340:根据预先设置的语法定义规则,确定该数据请求所对应的语法结构。
例如,假设在步骤S330中接收到如下两条数据请求:第一条数据请求为“Insertintotest(id,name)values(1,test1)”,第二条数据请求为“select*fromtestwhereid=2”。通过查询步骤S320中设置的语法定义规则,确定第一条数据请求所对应的语法结构包括:数据操作类型为“Insert”,其对应的格式规范包括“Insert+into+数据操作对象”。第二条数据请求所对应的语法结构包括:数据操作类型为“Select”,其对应的格式规范包括“Select*from+数据操作对象”。
步骤S350:根据语法结构对接收到的数据请求进行解析。
由于语法定义规则中分别定义了各种类型的数据操作所对应的语法结构以及数据操作对象所对应的语法结构,并且,数据操作对象对应的语法结构进一步包括路由字段的名称和/或位置。因此,在本步骤中,通过语法结构对数据请求进行解析,能够获取到数据请求中包含的数据操作、数据操作对象、以及路由字段的值。
例如,以第一条数据请求为例来说,首先,查询各种类型的数据操作所对应的语法结构,确定该条数据请求中的首字段“Insert”为用于指示数据操作类型的字段,根据该字段的具体内容确定该数据请求中包含的数据操作为***类型的数据操作,并且,根据语法结构确定***类型的数据操作的格式规范为“Insert+into+数据操作对象”。然后,根据上述格式规范从相应位置处获取数据操作对象,由于数据操作对象的语法结构包括数据操作对象的标识信息以及路由字段的名称和位置,因此,根据数据操作对象的标识信息“test”确定“test(id,name)values(1,test1)”部分为数据操作对象,根据路由字段的名称“id”和字节位置确定其中的路由字段的值为“1”。
又如,以第二条数据请求为例来说,首先,查询各种类型的数据操作所对应的语法结构,确定该条数据请求中的首字段“Select”为用于指示数据操作类型的字段,根据该字段的具体内容确定该数据请求中包含的数据操作为检索类型的数据操作,并且,根据语法结构确定检索类型的数据操作的格式规范为“Select*from+数据操作对象”。然后,根据上述格式规范从相应位置处获取数据操作对象,由于数据操作对象的语法结构包括数据操作对象的标识信息以及路由字段的名称和位置,因此,根据数据操作对象的标识信息“test”确定“testwhereid=2”部分为数据操作对象,根据路由字段的名称“id”和字节位置确定其中的路由字段的值为“2”。
步骤S360:根据解析结果对数据请求进行处理。
具体处理时,根据步骤S350中的解析结果,对数据请求中包含的数据操作对象执行相应的数据操作。其中,由于本发明中的集群***通过分布式存储规则将数据内容分布式存储在多个数据库集群中,因此,在处理时,还要根据路由字段的值确定与该数据请求相对应的数据库集群,以便根据相应数据库集群中的存储内容进行处理。
在步骤S310中提到了两种分布式存储规则,下面结合每种分布式存储规则分别加以介绍:
第一种分布式存储规则:
在第一种分布式存储规则中,将路由字段的值的范围划分为多个子区间,每个子区间分别对应一个数据库集群,根据接收到的数据请求中包含的路由字段的值所在的子区间来确定对应的数据库集群(具体参见步骤S310)。
此时,对于数据请求“Insertintotest(id,name)values(1,test1)”而言,路由字段ID的值为1,属于第一个子区间,因而该数据请求对应于第一数据库集群,将该数据请求发送给第一数据库集群处理。具体地,可以将该数据请求直接发送给第一数据库集群,也可以仅将其中的数据操作以及数据操作对象发送给第一数据库集群。第一数据库集群根据其中的数据操作确定该数据请求为写入类型的数据请求,因而将该数据请求分配给主服务器(也叫主数据库)处理,主服务器查询表名为test1的数据表,并向该数据表中***一条ID=1的数据记录。
对于数据请求““select*fromtestwhereid=2””而言,路由字段ID的值为2,也属于第一个子区间,因而该数据请求也对应于第一数据库集群,将该数据请求也发送给第一数据库集群处理。第一数据库集群根据其中的数据操作确定该数据请求为读取类型的数据请求,因而将该数据请求分配给从服务器(也叫从数据库)处理,从服务器从第一数据库集群中查询所有ID=2的数据记录。
第二种分布式存储规则:
在第二种分布式存储规则中,对接收到的数据请求中包含的路由字段的值进行取模运算,根据运算结果确定对应的数据库集群。(具体参见步骤S310)。
此时,对于数据请求“Insertintotest(id,name)values(1,test1)”而言,路由字段ID的值为1,其对3取模时的模运算结果为1,因而该数据请求对应于第二数据库集群,将该数据请求发送给第二数据库集群处理。第二数据库集群通过上述方式查询表名为test1的数据表,并向该数据表中***一条ID=1的数据记录。对于数据请求““select*fromtestwhereid=2””而言,路由字段ID的值为2,其对3取模时的模运算结果为2,因而该数据请求对应于第三数据库集群,将该数据请求发送给第三数据库集群处理。第三数据库集群通过上述方式查询所有ID=2的数据记录。
在上述实现方式中,每个数据库集群都包括主数据库以及从数据库,当接收到的数据请求为写入类型的数据请求时,由数据库集群中的主数据库进行处理;当接收到的数据请求为读取类型的数据请求时,由数据库集群中的从数据库进行处理。由此可见,通过本实施例中的方案,不仅读取类型的数据请求能够由多个数据库集群分布式处理,且写入类型的数据请求也能够由多个数据库集群分布式处理,从而提升了集群***的存储容量和处理效率,且便于对集群***进行扩展。
综上所述,在本实施例中,一方面,通过语法定义规则能够快速解析数据请求,迅速识别出数据请求中包含的路由字段,并根据路由字段将数据请求分发给相应的数据库集群处理,显著提高了数据请求的解析效率,缩短了处理时间,为分布式存储方式提供了基础,克服了现有的解析方式效率低下的缺陷。另一方面,通过分布式存储规则将数据表分布式存储在多个数据库集群中,显著提升了集群***的存储容量,使得读取类型以及写入类型的数据请求都能够由多个数据库集群分布式处理,改进了现有的分布式集群***只能通过单一数据库集群中的多个从服务器实现读取类型的数据请求的分布式处理,无法实现写入类型的数据请求的分布式处理的缺陷(因为单一数据库集群中仅存在一台主服务器,因而写入类型的数据请求只能由该主服务器处理)。
本领域技术人员可以理解,上述实施例为优选实施例,其中的部分步骤并不是必须的,例如设置分布式存储规则以及路由字段,并根据路由字段分发数据请求的步骤在本发明中并不是必须的,省略这些步骤也能够实现快速解析数据请求的技术效果。另外,本领域技术人员还可以对上述步骤进行各种改进和变形,可以将其中的部分步骤合并为更少的步骤,也可以将其中的部分步骤拆分为更多的步骤,还可以调整部分步骤的执行顺序。
图4示出了本发明另一实施例提供的基于多个数据库集群的数据请求处理装置的结构示意图。如图4所示,该装置包括:
接收模块41,适于接收数据请求;
确定模块42,适于根据预先设置的语法定义规则,确定该数据请求所对应的语法结构;
解析模块43,适于根据语法结构对数据请求进行解析;
处理模块44,适于根据解析的结果处理数据请求。
可选地,预先设置的语法定义规则中定义了各种类型的数据操作所对应的语法结构,解析模块43具体用于:根据语法结构对数据请求进行解析,以获取数据请求中的数据操作。
其中,数据操作的类型包括:写入类型以及读取类型,其中,写入类型的数据操作进一步包括:***类型的数据请求、删除类型的数据请求或修改类型的数据请求。
可选地,预先设置的语法定义规则中还定义了数据操作对象所对应的语法结构,解析模块43具体用于:根据语法结构对数据请求进行解析,以获取数据请求中的数据操作对象。
可选地,处理模块44具体用于:根据解析的结果,对数据操作对象执行数据操作。
可选地,数据操作对象对应的语法结构包括数据操作对象的标识以及路由字段的名称和/或位置,解析模块43具体用于:根据语法结构对数据请求进行解析,以获取路由字段的值以及数据操作对象的标识。
可选地,处理模块44具体用于:根据路由字段的值以及数据操作对象的标识,对相应的数据操作对象执行数据操作,其中路由字段的值的不同范围对应不同的数据库集群。
上述各个模块的具体工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
在本发明提供的基于多个数据库集群的数据请求处理方法及装置中,预先为数据请求设定了语法定义规则,因而能够根据该语法定义规则,对数据请求进行语法分析,从而确定数据请求对应的语法结构,并根据语法结构对数据请求进行快速解析。由此可见,与传统的词法分析方式不同,本发明提供的方式能够对数据请求进行语法分析,从而快速确定数据请求的语义,进而获取到数据请求中包含的各个字段的具体内容。该方法大幅提高了数据请求的处理效率,缩短了服务器的响应时延,为数据库集群的可扩展性提供了基础。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1、一种基于多个数据库集群的数据请求处理方法,包括:
接收数据请求;
根据预先设置的语法定义规则,确定该数据请求所对应的语法结构;
根据所述语法结构对所述数据请求进行解析;
根据所述解析的结果处理所述数据请求。
A2、根据A1所述的方法,其中,所述预先设置的语法定义规则中定义了各种类型的数据操作所对应的语法结构,所述根据所述语法结构对所述数据请求进行解析具体包括:
根据所述语法结构对所述数据请求进行解析,以获取所述数据请求中的数据操作。
A3、根据A1或A2所述的方法,其中,所述数据操作的类型包括:写入类型以及读取类型,其中,写入类型的数据操作进一步包括:***类型的数据请求、删除类型的数据请求或修改类型的数据请求。
A4、根据A1-A3任一所述的方法,其中,所述预先设置的语法定义规则中还定义了数据操作对象所对应的语法结构,所述根据所述语法结构对所述数据请求进行解析具体包括:
根据所述语法结构对所述数据请求进行解析,以获取所述数据请求中的数据操作对象。
A5、根据A4所述的方法,其中,所述根据所述解析的结果处理所述数据请求具体包括:
根据所述解析的结果,对所述数据操作对象执行所述数据操作。
A6、根据A4所述的方法,其中,所述数据操作对象对应的语法结构包括数据操作对象的标识以及路由字段的名称和/或位置,根据所述语法结构对所述数据请求进行解析,以获取所述数据请求中的数据操作对象具体包括:
根据所述语法结构对所述数据请求进行解析,以获取路由字段的值以及数据操作对象的标识。
A7、根据A6所述的方法,其中,所述根据所述解析的结果处理所述数据请求具体包括:
根据所述路由字段的值以及所述数据操作对象的标识,对相应的数据操作对象执行所述数据操作,其中所述路由字段的值的不同范围对应不同的数据库集群。
本发明还公开了:B8、一种基于多个数据库集群的数据请求处理装置,包括:
接收模块,适于接收数据请求;
确定模块,适于根据预先设置的语法定义规则,确定该数据请求所对应的语法结构;
解析模块,适于根据所述语法结构对所述数据请求进行解析;
处理模块,适于根据所述解析的结果处理所述数据请求。
B9、根据B8所述的装置,其中,所述预先设置的语法定义规则中定义了各种类型的数据操作所对应的语法结构,所述解析模块具体用于:
根据所述语法结构对所述数据请求进行解析,以获取所述数据请求中的数据操作。
B10、根据B8或B9所述的装置,其中,所述数据操作的类型包括:写入类型以及读取类型,其中,写入类型的数据操作进一步包括:***类型的数据请求、删除类型的数据请求或修改类型的数据请求。
B11、根据B8-B10任一所述的装置,其中,所述预先设置的语法定义规则中还定义了数据操作对象所对应的语法结构,所述解析模块具体用于:
根据所述语法结构对所述数据请求进行解析,以获取所述数据请求中的数据操作对象。
B12、根据B11所述的装置,其中,所述处理模块具体用于:
根据所述解析的结果,对所述数据操作对象执行所述数据操作。
B13、根据B12所述的装置,其中,所述数据操作对象对应的语法结构包括数据操作对象的标识以及路由字段的名称和/或位置,所述解析模块具体用于:
根据所述语法结构对所述数据请求进行解析,以获取路由字段的值以及数据操作对象的标识。
B14、根据B13所述的装置,其中,所述处理模块具体用于:
根据所述路由字段的值以及所述数据操作对象的标识,对相应的数据操作对象执行所述数据操作,其中所述路由字段的值的不同范围对应不同的数据库集群。

Claims (10)

1.一种基于多个数据库集群的数据请求处理方法,包括:
接收数据请求;
根据预先设置的语法定义规则,确定该数据请求所对应的语法结构;
根据所述语法结构对所述数据请求进行解析;
根据所述解析的结果处理所述数据请求。
2.根据权利要求1所述的方法,其中,所述预先设置的语法定义规则中定义了各种类型的数据操作所对应的语法结构,所述根据所述语法结构对所述数据请求进行解析具体包括:
根据所述语法结构对所述数据请求进行解析,以获取所述数据请求中的数据操作。
3.根据权利要求1或2所述的方法,其中,所述数据操作的类型包括:写入类型以及读取类型,其中,写入类型的数据操作进一步包括:***类型的数据请求、删除类型的数据请求或修改类型的数据请求。
4.根据权利要求1-3任一所述的方法,其中,所述预先设置的语法定义规则中还定义了数据操作对象所对应的语法结构,所述根据所述语法结构对所述数据请求进行解析具体包括:
根据所述语法结构对所述数据请求进行解析,以获取所述数据请求中的数据操作对象。
5.根据权利要求4所述的方法,其中,所述根据所述解析的结果处理所述数据请求具体包括:
根据所述解析的结果,对所述数据操作对象执行所述数据操作。
6.根据权利要求4所述的方法,其中,所述数据操作对象对应的语法结构包括数据操作对象的标识以及路由字段的名称和/或位置,根据所述语法结构对所述数据请求进行解析,以获取所述数据请求中的数据操作对象具体包括:
根据所述语法结构对所述数据请求进行解析,以获取路由字段的值以及数据操作对象的标识。
7.根据权利要求6所述的方法,其中,所述根据所述解析的结果处理所述数据请求具体包括:
根据所述路由字段的值以及所述数据操作对象的标识,对相应的数据操作对象执行所述数据操作,其中所述路由字段的值的不同范围对应不同的数据库集群。
8.一种基于多个数据库集群的数据请求处理装置,包括:
接收模块,适于接收数据请求;
确定模块,适于根据预先设置的语法定义规则,确定该数据请求所对应的语法结构;
解析模块,适于根据所述语法结构对所述数据请求进行解析;
处理模块,适于根据所述解析的结果处理所述数据请求。
9.根据权利要求8所述的装置,其中,所述预先设置的语法定义规则中定义了各种类型的数据操作所对应的语法结构,所述解析模块具体用于:
根据所述语法结构对所述数据请求进行解析,以获取所述数据请求中的数据操作。
10.根据权利要求8或9所述的装置,其中,所述数据操作的类型包括:写入类型以及读取类型,其中,写入类型的数据操作进一步包括:***类型的数据请求、删除类型的数据请求或修改类型的数据请求。
CN201510970768.6A 2015-12-22 2015-12-22 基于多个数据库集群的数据请求处理方法及装置 Pending CN105389394A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510970768.6A CN105389394A (zh) 2015-12-22 2015-12-22 基于多个数据库集群的数据请求处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510970768.6A CN105389394A (zh) 2015-12-22 2015-12-22 基于多个数据库集群的数据请求处理方法及装置

Publications (1)

Publication Number Publication Date
CN105389394A true CN105389394A (zh) 2016-03-09

Family

ID=55421684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510970768.6A Pending CN105389394A (zh) 2015-12-22 2015-12-22 基于多个数据库集群的数据请求处理方法及装置

Country Status (1)

Country Link
CN (1) CN105389394A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106777031A (zh) * 2016-12-08 2017-05-31 腾讯音乐娱乐(深圳)有限公司 一种数据库扩容方法及装置
CN109286509A (zh) * 2017-07-19 2019-01-29 大唐移动通信设备有限公司 一种许可管理方法及***
CN109299066A (zh) * 2018-07-27 2019-02-01 阿里巴巴集团控股有限公司 一种数据库扩容方法及装置
CN111880956A (zh) * 2020-07-24 2020-11-03 北京达佳互联信息技术有限公司 一种数据同步方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103123652A (zh) * 2013-03-14 2013-05-29 曙光信息产业(北京)有限公司 数据查询方法和集群数据库***
WO2014130371A1 (en) * 2013-02-25 2014-08-28 Emc Corporation Data analytics platform over parallel databases and distributed file systems
CN104408174A (zh) * 2014-12-12 2015-03-11 用友软件股份有限公司 数据库路由装置和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014130371A1 (en) * 2013-02-25 2014-08-28 Emc Corporation Data analytics platform over parallel databases and distributed file systems
CN103123652A (zh) * 2013-03-14 2013-05-29 曙光信息产业(北京)有限公司 数据查询方法和集群数据库***
CN104408174A (zh) * 2014-12-12 2015-03-11 用友软件股份有限公司 数据库路由装置和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
华竹轩 等: "支持海量数据的分布式数据库架构设计与验证", 《河南科学》 *
杨传辉: "《大规模分布式存储***》", 30 September 2013, 机械工业出版社 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106777031A (zh) * 2016-12-08 2017-05-31 腾讯音乐娱乐(深圳)有限公司 一种数据库扩容方法及装置
CN109286509A (zh) * 2017-07-19 2019-01-29 大唐移动通信设备有限公司 一种许可管理方法及***
CN109299066A (zh) * 2018-07-27 2019-02-01 阿里巴巴集团控股有限公司 一种数据库扩容方法及装置
CN111880956A (zh) * 2020-07-24 2020-11-03 北京达佳互联信息技术有限公司 一种数据同步方法和装置
CN111880956B (zh) * 2020-07-24 2023-12-05 北京达佳互联信息技术有限公司 一种数据同步方法和装置

Similar Documents

Publication Publication Date Title
CN109416694A (zh) 包括资源有效索引的键值存储***
CN106981024B (zh) 一种交易限额计算处理***及其处理方法
CN103678494A (zh) 客户端同步服务端数据的方法及装置
WO2008030694A1 (en) Dynamic fragment mapping
US20080005183A1 (en) Method And Apparatus for Propagating Tables While Preserving Cyclic Foreign Key Relationships
CN110109894B (zh) 非关系型数据库的实现方法、装置、存储介质和设备
CN105956166A (zh) 数据库读写方法和读写装置
CN103020193A (zh) 处理数据库操作请求的方法和设备
CN109885614B (zh) 一种数据同步的方法和装置
CN105389394A (zh) 基于多个数据库集群的数据请求处理方法及装置
CN102033948A (zh) 一种数据更新方法和装置
CN108427736B (zh) 一种用于查询数据的方法
CN106844676A (zh) 数据存储方法及装置
CN105447167A (zh) 分布式***中节点缓存数据的处理方法及装置
CN111737228B (zh) 数据库的分库分表方法及装置
CN105045789A (zh) 一种游戏服务器数据库缓存方法及***
CN115858488A (zh) 基于数据治理的平行迁移方法、装置及可读介质
CN103020196B (zh) 处理数据库操作请求的***
CN104573112A (zh) Oltp集群数据库中页面查询方法及数据处理节点
CN105677645A (zh) 一种数据表比对方法和装置
CN103631955A (zh) 一种浏览器内核切换匹配库数据更新的方法和装置
US11301426B1 (en) Maintaining stable record identifiers in the presence of updated data records
US7409380B1 (en) Facilitated reuse of K locations in a knowledge store
CN103559204A (zh) 处理数据库操作请求的方法、设备和***
CN106649584A (zh) 一种主从式数据库***中的索引处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160309