CN104391913B - 一种数据库管理方法及装置 - Google Patents
一种数据库管理方法及装置 Download PDFInfo
- Publication number
- CN104391913B CN104391913B CN201410659125.5A CN201410659125A CN104391913B CN 104391913 B CN104391913 B CN 104391913B CN 201410659125 A CN201410659125 A CN 201410659125A CN 104391913 B CN104391913 B CN 104391913B
- Authority
- CN
- China
- Prior art keywords
- data
- word bank
- node
- destination node
- target word
- 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
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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- 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
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
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)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据库管理方法及装置。该方法包括:获取包含有数据项和数据项操作信息的输入数据;根据预设的子库划分规则,确定输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点;如果数据项操作信息为插入操作信息、删除操作信息或修改操作信息,则根据输入数据相应更新各个目标节点所管理的目标子库;如果数据项操作信息为查询操作信息,则从各个目标节点中选取一个目标节点作为查询节点,根据输入数据在查询节点所管理的目标子库中进行查询。本发明实施例提供的技术方案,能够以一致的开发接口,解决任意容量数据库的更新和实时查询问题。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据库管理方法及装置。
背景技术
随着大数据技术逐步应用于各行业,海量数据面临的查询和存储问题得到了逐步的解决。但是在实时数据预处理环节仍面临众多挑战,除数据量巨大外,还需要考虑实时处理效率。所面临的任务场景之一便是对流经预处理的数据进行各种查询操作,用于去重,关联等后续流程。
可以考虑的实施方式之一是在数据进入数据库后,使用MR(MapReduce,映射规约)任务,面向整个数据库,查询需要的结果。其优点在于逻辑框架清晰,数据库容量不受限制;缺点在于效率有待提高,不适合实时处理,如果有后续环节依赖于查询结果,则会影响整个ETL(Extract-Transform-Load,萃取-转置-加载)过程。
如果在实时预处理环节实施,面临的问题更为复杂,考虑有多个节点的预处理集群的情况:流经预处理的数据分为两类,用于构建数据库的数据(统称为建库数据)和查询数据库的数据(统称为查询数据),他们从不同的预处理节点通过,即从某个节点流经的查询数据所需要的建库数据可能是从其他节点通过。
在建库数据规模较小情况下,可以采用在每个节点建立全量数据库的方案,即将流经某个节点的建库数据也复制定向到其他节点,这样的效果是每个节点都能看到全部的建库数据;在节点内部就能完成查询数据对数据库的查询操作。
通常,数据库的容量和查询性能是成反向关系的,随着数据库容量的增加,查询性能会逐渐下降。当建库数据规模较大时,不能够很好的解决任意容量数据库的数据更新和实时查询问题。
发明内容
本发明实施例提供一种数据库管理方法及装置,以一致的开发接口,解决任意容量数据库的更新和实时查询问题。
第一方面,本发明实施例提供了一种数据库管理方法,该方法包括:
获取包含有数据项和数据项操作信息的输入数据;
根据预设的子库划分规则,确定所述输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点,其中,在预先创建的各组数据库中,每组数据库由多个子库组成,同一组数据库内的不同子库被不同节点所管理;
如果所述数据项操作信息为插入操作信息、删除操作信息或修改操作信息,则根据所述输入数据相应更新所述各个目标节点所管理的目标子库;
如果所述数据项操作信息为查询操作信息,则从所述各个目标节点中选取一个目标节点作为查询节点,根据所述输入数据在所述查询节点所管理的目标子库中进行查询。
第二方面,本发明实施例还提供了一种数据库管理装置,该装置包括:
输入数据获取单元,用于获取包含有数据项和数据项操作信息的输入数据;
目标子库和目标节点确定单元,用于根据预设的子库划分规则,确定所述输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点,其中,在预先创建的各组数据库中,每组数据库由多个子库组成,同一组数据库内的不同子库被不同节点所管理;
目标子库更新单元,用于如果所述数据项操作信息为插入操作信息、删除操作信息或修改操作信息,则根据所述输入数据相应更新所述各个目标节点所管理的目标子库;
目标子库查询单元,用于如果所述数据项操作信息为查询操作信息,则从所述各个目标节点中选取一个目标节点作为查询节点,根据所述输入数据在所述查询节点所管理的目标子库中进行查询。
在本发明实施例提供的技术方案中,通过如下数据库管理方式来管理数据:预先创建多组数据库,并根据子库划分规则将每组数据库进一步划分为多个子库,并且同一组数据库内的不同子库被不同节点所管理。在获取到输入数据后,先根据子库划分规则确定该输入数据分别在各组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点,进而:在输入数据是建库数据的情况下,根据该输入数据相应更新各个目标节点所管理的目标子库;在输入数据是查询数据的情况下,先从各个目标节点中选取一个目标节点作为查询节点,然后根据输入数据在查询节点所管理的目标子库中进行查询。因此,本发明实施例能够以一致的开发接口,解决任意容量数据库的更新和实时查询问题。
附图说明
图1A是本发明实施例一提供的一种数据库管理方法的流程示意图;
图1B是本实施例一提供的一种对组内子库划分示意图;
图1C是本发明实施例一提供的一种数据库管理方法的应用场景示意图;
图2是本发明实施例二提供的一种数据库管理方法的流程示意图;
图3是本发明实施例三提供的一种数据库管理方法的流程示意图;
图4是本发明实施例四提供的一种数据库管理装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1A是本发明实施例一提供的一种数据库管理方法的流程示意图。该方法可以由数据库管理装置来执行,该装置可以是针对流式处理系统的分布式数据库中间件。其中,所述数据库可以是关系型数据库,也可以是非关系型数据库。参见图1A,本实施例提供的数据库管理方法具体包括如下操作:
操作110、获取包含有数据项和数据项操作信息的输入数据。
在本实施例中,数据项操作信息可包括如下四种信息:插入操作信息、删除操作信息、修改操作信息和查询操作信息。数据项即为操作对象。现针对所要管理的数据库为非关系型数据库,数据库所管理的数据类型为学生信息这一具体实例来进行说明。在数据项操作信息为插入操作信息时,数据项可为一键值对,例如为:50,张三,男,计算机专业。其中,键为学生标识号“50”,“张三,男,计算机专业”为与该键相应的值。在数据项操作信息为删除操作信息或查询操作时,数据项可仅为键值对中的键,也可为一键值对。在数据项操作信息为修改操作信息时,数据项可为一键值对。
操作120、根据预设的子库划分规则,确定输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点。
在本实施例中,可预先创建各组数据库,并根据预设的子库划分规则将各组数据库划分为多个子库,即每组数据库由多个子库组成。同一组数据库内的不同子库被不同节点所管理。在本发明实施例中,一个节点即为一个物理设备。
其中,各组数据库均被设计为一完整的全量数据库,即每组数据库均被用来存储待管理的所有数据,每组数据库之间是对等的,所要存储的数据互为镜像。对于子库划分规则而言,其描述了各组数据库被划分为多少个子库,以及每个子库要管理的数据范围或数据类型。为保证所要存储至各组数据库中的任意条数据的安全性,加快查询速度,本实施例中所预设的子库划分规则应满足如下条件:任意条所要存储至各组数据库中的数据应被同时保存在各组数据库中的至少两个子库中。这样设计的好处在于:一方面可以将任意条数据加以备份,保证了数据的安全性;另一方面,在后续对所存储的数据进行查询操作时,能够从管理该数据的各个节点中选择一个负载量小的节点,然后在所选择的节点所管理的子库中进行查询,从而可以加快查询速度。
图1B是本实施例一提供的一种对组内子库划分示意图。参见图1B,该组数据库作为一全量数据库,被划分为4个子库:子库0、子库1、子库2和子库3。其中,任意条所要存储至该组数据库中的数据应被同时保存在各组数据库中的两个子库中。具体的,第一数据范围内的数据集A被设计同时保存于子库0和子库4中,第二数据范围内的数据集B被设计同时保存于子库0和子库1中,第三数据范围内的数据集C被设计同时保存于子库1和子库2中,第四数据范围内的数据集D被设计同时保存于子库2和子库3中。基于上述所创建的各组数据库,在实时获取到一条输入数据后,如果该输入数据中数据操作信息为插入操作信息,则需将该输入数据中的数据项存储至各组数据库的相应子库中。当然,如果该输入数据中数据操作信息为删除或修改操作信息,也应要同时导向各组数据库的相应子库。
在执行完操作110之后,也即获取到包含有数据项和数据项操作信息的输入数据后,可先根据预设的子库划分规则,确定输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点。具体的,该确定过程可以是:对输入数据中的数据项进行解析,以判断该数据项对应的数据范围或数据类型;根据预设的子库划分规则,确定判断得到的数据范围或数据类型为各组数据库中的哪些子库所管理;将确定得到的各子库作为目标子库,将管理目标子库的节点作为目标节点。由于子库划分规则应满足如下条件:任意条所要存储至各组数据库中的数据应被同时保存在各组数据库中的至少两个子库中,故输入数据在预先创建的各组数据库中所导向的目标子库个数应至少为两个。
在本实施例的一种优选实施方式中,在根据预设的子库划分规则,确定输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点之前,还包括:
分别针对预先创建的各组数据库,配置预先设定的多个散列值范围与当前所针对组数据库中的各个子库之间的导向关系,作为子库划分规则,其中任一个散列值范围同时导向当前所针对组数据库中的至少两个子库;
根据预设的子库划分规则,确定输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点,包括:
计算输入数据中数据项对应的散列值;
根据上述配置得到的导向关系,确定计算得到的散列值分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点。
例如,针对预先创建的某组数据库Q,其被划分为3个子库,预先设定的多个散列值范围为:1-100、101-200、201-300,所述多个散列值范围与所述3个子库之间的导向关系为:散列值范围1-100同时导向第一个子库Q1和第三个子库Q3;散列值范围101-200同时导向第一个子库Q1和第二个子库Q2;散列值范围201-300同时导向第二个子库Q2和第三个子库Q3。如果计算输入数据中数据项对应的散列值为120,则确定该输入数据在预先创建的数据库Q中所导向的两个目标子库为第一个子库Q1和第二个子库Q2。
在上述优选实施方式中,输入数据中数据项对应的散列值可以是根据数据项中所包含的设定类型内容按照预设计算规则计算得到的一个值,例如计算数据项中所包含的设定类型内容的哈希值作为散列值。当然,也可直接将数据项中所包含的设定类型内容作为散列值。其中,所述设定类型内容为能够唯一标识所述数据项的内容。如果所要管理的数据库为非关系型数据库,则数据项中所包含的设定类型内容即为键值对中的键。例如,数据项为“50,张三,男,计算机专业”,则该数据项的散列值可为学号“50”这一个键的哈希值。
操作130、如果数据项操作信息为插入操作信息、删除操作信息或修改操作信息,则根据输入数据相应更新各个目标节点所管理的目标子库。
在本实施例中,如果数据项操作信息为插入操作信息、删除操作信息或修改操作信息,则可判断本次所获取的数据即为建库数据。具体的,根据输入数据相应更新各个目标节点所管理的目标子库,可为:
如果输入数据中的数据项操作信息为插入操作信息,则将输入数据中的数据项插入各个目标节点所管理的目标子库中;如果输入数据中的数据项操作信息为删除操作信息,则在各个目标节点所管理的目标子库中相应删除输入数据中的数据项所对应的存储记录;如果输入数据中的数据项操作信息为修改操作信息,则根据输入数据中的数据项在各个目标节点所管理的目标子库中相应修改该数据项所对应的存储记录。
操作140、如果数据项操作信息为查询操作信息,则从各个目标节点中选取一个目标节点作为查询节点,根据输入数据在查询节点所管理的目标子库中进行查询。
在本实施例中,如果数据项操作信息为查询操作信息,则可判断本次所获取的数据即为查询数据。
从各个目标节点中选取一个目标节点作为查询节点,可具体是:从各个目标节点中随机选取一个目标节点作为查询节点;或者,先获取各个目标节点的负载量,然后选取各个目标节点中负载量最小的目标节点作为查询节点,这样可以加快查询速度。
为更清楚的描述本实施例提供的技术方案,现进行举例说明。图1C是本发明实施例一提供的一种数据库管理方法的应用场景示意图。参见图1C,预先创建有3组数据库,每组数据库由4个子库组成,不同的子库被不同的节点所管理,共有3*4=12个节点。具体的,节点1管理第1组数据库中的子库0,节点2管理第1组数据库中的子库1,……,节点12管理第3组数据库中的子库3。每个节点上可被置备有本实施例提供的用于执行数据库管理方法的中间件。
节点1上的中间件获取到建库数据1之后,根据预设的子库划分规则,确定建库数据1分别在3组数据库中所导向的各目标子库为:第1组数据库中的子库1和子库2,第2组数据库中的子库0和子库1,第3组数据库中的子库2和子库3,相应的管理各个目标子库的各个目标节点为:节点2和节点3,节点5和节点6,节点11和节点12;然后,节点1上的中间件将建库数据1发送至各个目标节点,各个目标节点上的中间件根据建库数据1相应更新各个目标节点所管理的目标子库。
节点12上的中间件获取到查询数据1之后,先根据预设的子库划分规则,确定查询数据1分别在3组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点;然后,选取各个目标节点中负载量最小的目标节点作为查询节点,例如该查询节点为节点11;进而,节点12上的中间件将查询数据1发送至节点11,节点11上的中间件根据查询数据1在节点11所管理的目标子库(即第3组数据库中的子库2)中进行查询。
节点10上的中间件获取到查询数据2之后,先根据预设的子库划分规则,确定查询数据2别在3组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点;然后,选取各个目标节点中负载量最小的目标节点作为查询节点,例如该查询节点为节点2;进而,节点10上的中间件将查询数据2发送至节点2,节点2上的中间件根据查询数据2在节点2所管理的目标子库(即第1组数据库中的子库1)中进行查询。
节点8上的中间件获取到查询数据3之后,先根据预设的子库划分规则,确定查询数据3别在3组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点;然后,选取各个目标节点中负载量最小的目标节点作为查询节点,例如该查询节点为节点6;进而,节点8上的中间件将查询数据3发送至节点6,节点6上的中间件根据查询数据3在节点6所管理的目标子库(即第2组数据库中的子库1)中进行查询。
在本实施例提供的技术方案中,通过如下数据库管理方式来管理数据:预先创建多组数据库,并根据子库划分规则将每组数据库进一步划分为多个子库,并且同一组数据库内的不同子库被不同节点所管理。在获取到输入数据后,先根据子库划分规则确定该输入数据分别在各组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点,进而:在输入数据是建库数据的情况下,根据该输入数据相应更新各个目标节点所管理的目标子库;在输入数据是查询数据的情况下,先从各个目标节点中选取一个目标节点作为查询节点,然后根据输入数据在查询节点所管理的目标子库中进行查询。因此,本实施例能够以一致的开发接口,解决任意容量数据库的更新和实时查询问题。
实施例二
图2是本发明实施例二提供的一种数据库管理方法的流程示意图。本实施例在上述实施例一的基础上,对获取的输入数据为建库数据的情况作详细阐述。参见图2,本实施例提供的数据库管理方法具体包括如下操作:
操作210、获取到包含有数据项和数据项操作信息的输入数据,其中所述数据项操作信息为插入操作信息、删除操作信息或修改操作信息。
操作220、根据预设的子库划分规则,确定输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点。
其中,在预先创建的各组数据库中,每组数据库由多个子库组成,同一组数据库内的不同子库被不同节点所管理。
操作230、对输入数据进行序列化得到序列化流,发送至各个目标节点。
在本发明实施例中,将输入数据进行序列化指的是将输入数据转换为具有设定数据结构方式的对象,该对象即为序列化流。
操作240、分别在各个目标节点上:接收序列化流,对该序列化流进行反序列化,以得到数据项和数据项操作信息;通过数据库操作适配层,将得到的数据项操作信息转换为与当前所在目标节点所管理的目标子库相适配的操作语句,根据所述操作语句更新当前所在目标节点所管理的目标子库。
实施例三
图3是本发明实施例三提供的一种数据库管理方法的流程示意图。本实施例在上述实施例一的基础上,对获取的输入数据为查询数据的情况作详细阐述。参见图3,本实施例提供的数据库管理方法具体包括如下操作:
操作310、获取到包含有数据项和数据项操作信息的输入数据,其中所述数据项操作信息为查询操作信息。
操作320、根据预设的子库划分规则,确定输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理各个目标子库的各个目标节点。
其中,在预先创建的各组数据库中,每组数据库由多个子库组成,同一组数据库内的不同子库被不同节点所管理。
操作330、获取各个目标节点的负载量,选取各个目标节点中负载量最小的目标节点作为查询节点。
在本实施例中,获取各个目标节点的负载量,选取各个目标节点中负载量最小的目标节点作为查询节点,可具体包括:检测各个目标节点上创建的查询队列中所包含的查询任务数;选取各个目标节点中所对应的查询任务数最少的目标节点作为查询节点。
操作340、对输入数据进行序列化得到第一序列化流,发送至查询节点。
操作350、在查询节点上:接收第一序列化流,对第一序列化流进行反序列化,以得到数据项和数据项操作信息;通过数据库操作适配层,将得到的数据项操作信息转换为与查询节点所管理的目标子库相适配的操作语句,基于所述操作语句对查询节点所管理的目标子库进行查询;通过数据库操作适配层,将所得到的与查询节点所管理的目标子库相适配的查询结果转换为用于输出的目标查询结果,对目标查询结果进行序列化得到第二序列化流,将第二序列化流返回。
操作360、对所返回的第二序列化流进行反序列化,以得到目标查询结果,并对目标查询结果进行输出。
实施例四
图4是本发明实施例四提供的一种数据库管理装置的结构示意图。参见图4,该装置的具体结构如下:
输入数据获取单元410,用于获取包含有数据项和数据项操作信息的输入数据;
目标子库和目标节点确定单元420,用于根据预设的子库划分规则,确定所述输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点,其中,在预先创建的各组数据库中,每组数据库由多个子库组成,同一组数据库内的不同子库被不同节点所管理;
目标子库更新单元430,用于如果所述数据项操作信息为插入操作信息、删除操作信息或修改操作信息,则根据所述输入数据相应更新所述各个目标节点所管理的目标子库;
目标子库查询单元440,用于如果所述数据项操作信息为查询操作信息,则从所述各个目标节点中选取一个目标节点作为查询节点,根据所述输入数据在所述查询节点所管理的目标子库中进行查询。
进一步的,本实施例提供的数据库管理装置还包括:
子库划分规则配置单元400,用于在所述目标子库和目标节点确定单元420根据预设的子库划分规则,确定所述输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点之前,分别针对预先创建的各组数据库,配置预先设定的多个散列值范围与当前所针对组数据库中的各个子库之间的导向关系,作为子库划分规则,其中任一个散列值范围同时导向当前所针对组数据库中的至少两个子库;
所述目标子库和目标节点确定单元420,具体用于:
计算所述数据项对应的散列值;
根据配置得到的所述导向关系,确定计算得到的散列值分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点。
进一步的,目标子库更新单元430,具体用于:
对所述输入数据进行序列化得到序列化流,发送至所述各个目标节点;
分别在所述各个目标节点上:接收所述序列化流,对所述序列化流进行反序列化,以得到所述数据项和所述数据项操作信息;通过数据库操作适配层,将得到的数据项操作信息转换为与当前所在目标节点所管理的目标子库相适配的操作语句,根据所述操作语句更新当前所在目标节点所管理的目标子库。
进一步的,所述目标子库查询单元440包括查询节点选取子单元4401,用于:
获取所述各个目标节点的负载量;
选取所述各个目标节点中负载量最小的目标节点作为查询节点。
进一步的,所述目标子库查询单元440包括查询子单元4402,用于:
对所述输入数据进行序列化得到第一序列化流,发送至查询节点;
在所述查询节点上:接收所述第一序列化流,对所述第一序列化流进行反序列化,以得到所述数据项和所述数据项操作信息;通过数据库操作适配层,将得到的数据项操作信息转换为与所述查询节点所管理的目标子库相适配的操作语句,基于所述操作语句对所述查询节点所管理的目标子库进行查询;通过所述数据库操作适配层,将所得到的与所述查询节点所管理的目标子库相适配的查询结果转换为用于输出的目标查询结果,对所述目标查询结果进行序列化得到第二序列化流,将所述第二序列化流返回;
对所返回的第二序列化流进行反序列化,以得到所述目标查询结果,并对所述目标查询结果进行输出。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据库管理方法,其特征在于,包括:
获取包含有数据项和数据项操作信息的输入数据;
根据预设的子库划分规则,确定所述输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点,其中,在预先创建的各组数据库中,每组数据库由多个子库组成,同一组数据库内的不同子库被不同节点所管理;
如果所述数据项操作信息为插入操作信息、删除操作信息或修改操作信息,则根据所述输入数据相应更新所述各个目标节点所管理的目标子库;
如果所述数据项操作信息为查询操作信息,则从所述各个目标节点中选取一个目标节点作为查询节点,根据所述输入数据在所述查询节点所管理的目标子库中进行查询。
2.根据权利要求1所述的数据库管理方法,其特征在于,在根据预设的子库划分规则,确定所述输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点之前,还包括:
分别针对预先创建的各组数据库,配置预先设定的多个散列值范围与当前所针对组数据库中的各个子库之间的导向关系,作为子库划分规则,其中任一个散列值范围同时导向当前所针对组数据库中的至少两个子库;
根据预设的子库划分规则,确定所述输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点,包括:
计算所述数据项对应的散列值;
根据配置得到的所述导向关系,确定计算得到的散列值分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点。
3.根据权利要求1所述的数据库管理方法,其特征在于,根据所述输入数据相应更新所述各个目标节点所管理的目标子库,包括:
对所述输入数据进行序列化得到序列化流,发送至所述各个目标节点;
分别在所述各个目标节点上:接收所述序列化流,对所述序列化流进行反序列化,以得到所述数据项和所述数据项操作信息;通过数据库操作适配层,将得到的数据项操作信息转换为与当前所在目标节点所管理的目标子库相适配的操作语句,根据所述操作语句更新当前所在目标节点所管理的目标子库。
4.根据权利要求1所述的数据库管理方法,其特征在于,从所述各个目标节点中选取一个目标节点作为查询节点,包括:
获取所述各个目标节点的负载量;
选取所述各个目标节点中负载量最小的目标节点作为查询节点。
5.根据权利要求1或4所述的数据库管理方法,其特征在于,根据所述输入数据在所述查询节点所管理的目标子库中进行查询,包括:
对所述输入数据进行序列化得到第一序列化流,发送至查询节点;
在所述查询节点上:接收所述第一序列化流,对所述第一序列化流进行反序列化,以得到所述数据项和所述数据项操作信息;通过数据库操作适配层,将得到的数据项操作信息转换为与所述查询节点所管理的目标子库相适配的操作语句,基于所述操作语句对所述查询节点所管理的目标子库进行查询;通过所述数据库操作适配层,将所得到的与所述查询节点所管理的目标子库相适配的查询结果转换为用于输出的目标查询结果,对所述目标查询结果进行序列化得到第二序列化流,将所述第二序列化流返回;
对所返回的第二序列化流进行反序列化,以得到所述目标查询结果,并对所述目标查询结果进行输出。
6.一种数据库管理装置,其特征在于,包括:
输入数据获取单元,用于获取包含有数据项和数据项操作信息的输入数据;
目标子库和目标节点确定单元,用于根据预设的子库划分规则,确定所述输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点,其中,在预先创建的各组数据库中,每组数据库由多个子库组成,同一组数据库内的不同子库被不同节点所管理;
目标子库更新单元,用于如果所述数据项操作信息为插入操作信息、删除操作信息或修改操作信息,则根据所述输入数据相应更新所述各个目标节点所管理的目标子库;
目标子库查询单元,用于如果所述数据项操作信息为查询操作信息,则从所述各个目标节点中选取一个目标节点作为查询节点,根据所述输入数据在所述查询节点所管理的目标子库中进行查询。
7.根据权利要求6所述的数据库管理装置,其特征在于,还包括:
子库划分规则配置单元,用于在所述目标子库和目标节点确定单元根据预设的子库划分规则,确定所述输入数据分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点之前,分别针对预先创建的各组数据库,配置预先设定的多个散列值范围与当前所针对组数据库中的各个子库之间的导向关系,作为子库划分规则,其中任一个散列值范围同时导向当前所针对组数据库中的至少两个子库;
所述目标子库和目标节点确定单元,具体用于:
计算所述数据项对应的散列值;
根据配置得到的所述导向关系,确定计算得到的散列值分别在预先创建的各组数据库中所导向的至少两个目标子库以及管理所述各个目标子库的各个目标节点。
8.根据权利要求6所述的数据库管理装置,其特征在于,目标子库更新单元,具体用于:
对所述输入数据进行序列化得到序列化流,发送至所述各个目标节点;
分别在所述各个目标节点上:接收所述序列化流,对所述序列化流进行反序列化,以得到所述数据项和所述数据项操作信息;通过数据库操作适配层,将得到的数据项操作信息转换为与当前所在目标节点所管理的目标子库相适配的操作语句,根据所述操作语句更新当前所在目标节点所管理的目标子库。
9.根据权利要求6所述的数据库管理装置,其特征在于,所述目标子库查询单元包括查询节点选取子单元,用于:
获取所述各个目标节点的负载量;
选取所述各个目标节点中负载量最小的目标节点作为查询节点。
10.根据权利要求6或9所述的数据库管理装置,其特征在于,所述目标子库查询单元包括查询子单元,用于:
对所述输入数据进行序列化得到第一序列化流,发送至查询节点;
在所述查询节点上:接收所述第一序列化流,对所述第一序列化流进行反序列化,以得到所述数据项和所述数据项操作信息;通过数据库操作适配层,将得到的数据项操作信息转换为与所述查询节点所管理的目标子库相适配的操作语句,基于所述操作语句对所述查询节点所管理的目标子库进行查询;通过所述数据库操作适配层,将所得到的与所述查询节点所管理的目标子库相适配的查询结果转换为用于输出的目标查询结果,对所述目标查询结果进行序列化得到第二序列化流,将所述第二序列化流返回;
对所返回的第二序列化流进行反序列化,以得到所述目标查询结果,并对所述目标查询结果进行输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410659125.5A CN104391913B (zh) | 2014-11-18 | 2014-11-18 | 一种数据库管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410659125.5A CN104391913B (zh) | 2014-11-18 | 2014-11-18 | 一种数据库管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104391913A CN104391913A (zh) | 2015-03-04 |
CN104391913B true CN104391913B (zh) | 2018-02-16 |
Family
ID=52609817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410659125.5A Active CN104391913B (zh) | 2014-11-18 | 2014-11-18 | 一种数据库管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104391913B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033422A (zh) * | 2015-03-11 | 2016-10-19 | 中国移动通信集团内蒙古有限公司 | 一种数据库操作控制方法、装置及系统 |
CN105056529B (zh) * | 2015-08-13 | 2018-11-09 | 北京乐动卓越科技有限公司 | 一种玩家数据的管理系统及管理方法 |
CN105335477B (zh) * | 2015-10-10 | 2019-09-20 | 北京京东尚科信息技术有限公司 | 一种数据库的操作方法及装置 |
CN106294665A (zh) * | 2016-08-05 | 2017-01-04 | 浪潮软件股份有限公司 | 一种学籍数据存储的方法和装置 |
CN108491262A (zh) * | 2018-02-28 | 2018-09-04 | 华为技术有限公司 | 一种抽样查询的方法和装置 |
CN108553897B (zh) * | 2018-03-01 | 2019-06-18 | 腾讯科技(深圳)有限公司 | 游戏中数据的处理方法、装置、存储介质和电子装置 |
CN110716946B (zh) * | 2019-10-22 | 2022-05-10 | 北京锐安科技有限公司 | 特征规则匹配库的更新方法、装置、存储介质及电子设备 |
US10719517B1 (en) * | 2019-12-18 | 2020-07-21 | Snowflake Inc. | Distributed metadata-based cluster computing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256561A (zh) * | 2007-03-02 | 2008-09-03 | 阿里巴巴集团控股有限公司 | 一种存储、访问数据库数据的方法、装置及系统 |
US7949687B1 (en) * | 2007-12-31 | 2011-05-24 | Teradata Us, Inc. | Relational database system having overlapping partitions |
CN103514229A (zh) * | 2012-06-29 | 2014-01-15 | 国际商业机器公司 | 用于在分布式数据库系统中处理数据库数据的方法和装置 |
CN103577407A (zh) * | 2012-07-19 | 2014-02-12 | 国际商业机器公司 | 用于分布式数据库的查询方法及查询装置 |
-
2014
- 2014-11-18 CN CN201410659125.5A patent/CN104391913B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256561A (zh) * | 2007-03-02 | 2008-09-03 | 阿里巴巴集团控股有限公司 | 一种存储、访问数据库数据的方法、装置及系统 |
US7949687B1 (en) * | 2007-12-31 | 2011-05-24 | Teradata Us, Inc. | Relational database system having overlapping partitions |
CN103514229A (zh) * | 2012-06-29 | 2014-01-15 | 国际商业机器公司 | 用于在分布式数据库系统中处理数据库数据的方法和装置 |
CN103577407A (zh) * | 2012-07-19 | 2014-02-12 | 国际商业机器公司 | 用于分布式数据库的查询方法及查询装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104391913A (zh) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104391913B (zh) | 一种数据库管理方法及装置 | |
US11023458B2 (en) | Systems and methods for blockchain interlinking and relationships | |
CN106104591B (zh) | 映射带键实体的属性 | |
US8543539B2 (en) | Method and system for capturing change of data | |
US10140351B2 (en) | Method and apparatus for processing database data in distributed database system | |
CN109791594A (zh) | 为了在多个不可变数据结构上持续存储而对数据进行分段 | |
CN105956166A (zh) | 数据库读写方法和读写装置 | |
EP3864504B1 (en) | Changeset conflict rebasing | |
CN107004013A (zh) | 用于使用基于硬件的处理来提供分布式树遍历的系统和方法 | |
CN108885604A (zh) | 存储器结构软件实现方案 | |
CN109716321B (zh) | N路散列连接 | |
US20200065301A1 (en) | Blockchain gateway device and associated method of use | |
CN107251023A (zh) | 一种大规模并行处理架构中的混合数据分布 | |
CN104252454A (zh) | 一种面向云计算多租户模式的数据权限控制方法和系统 | |
CN111783141B (zh) | 基于区块链的数据存储方法、装置、设备及存储介质 | |
US20080005169A1 (en) | Global information architecture | |
DE102021130812A1 (de) | Implementieren einer opportunistischen authentifizierung von verschlüsselten daten | |
US11409724B2 (en) | Hashed balanced tree data structure | |
US10685019B2 (en) | Secure query interface | |
CN113672692B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20190370014A1 (en) | Cloning for object-oriented environment | |
DE112018005283T5 (de) | Deduplizierung für dateien in einem cloud-computing-speicher und in datenübertragungswerkzeugen | |
US20150106381A1 (en) | Loading data with complex relationships | |
CN112559603B (zh) | 特征提取方法、装置、设备及计算机可读存储介质 | |
KR101919816B1 (ko) | 데이터베이스 샤딩 환경에서의 정합성 검사 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |