CN106372160A - 一种分布式数据库及管理方法 - Google Patents

一种分布式数据库及管理方法 Download PDF

Info

Publication number
CN106372160A
CN106372160A CN201610777439.4A CN201610777439A CN106372160A CN 106372160 A CN106372160 A CN 106372160A CN 201610777439 A CN201610777439 A CN 201610777439A CN 106372160 A CN106372160 A CN 106372160A
Authority
CN
China
Prior art keywords
data
node
data base
nodes
distributed
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
CN201610777439.4A
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.)
TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd
Original Assignee
TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES 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 TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd filed Critical TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd
Priority to CN201610777439.4A priority Critical patent/CN106372160A/zh
Publication of CN106372160A publication Critical patent/CN106372160A/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

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

Abstract

本发明提供了一种分布式数据库及管理方法,其中,所述数据库包括:所述分布式数据库包括一个或多个节点,所述节点用于存储有一个或多个数据对象,所述数据对象包含一个或多个表,所述表中包含数据;结构相同的所述数据对象属于同一个数据对象集合;所述数据对象具有数据对象标识,该数据对象标识用于区分同一数据对象集合中的各数据对象。可以对数据库节点进行有效管理。提高分布式数据库的效率。

Description

一种分布式数据库及管理方法
技术领域
本发明属于分布式数据库领域,尤其是涉及一种分布式数据库及管理方法。
背景技术
传统的数据库是集中式的关系型数据库。随着数据量的增大,需要将数据分布采用多个数据库服务器存储。传统的关系型数据库难以分布化,扩展困难。因此,业界通过简化关系型数据库的数据管理模型,牺牲数据管理的能力来换取增强扩展性,提出了高扩展的面向列的分布式数据库bigtable、Cassandra。面向列的分布式数据库由多个数据库节点组成。如何实现对这些数据库节点进行有效管理是当下亟需解决的问题。
发明内容
本发明实施例提供了一种分布式数据库及管理方法,以解决上述存在的技术问题。
第一方面,本发明实施例提供了一种分布式数据库,包括:
所述分布式数据库包括一个或多个节点,所述节点用于存储有一个或多个数据对象,所述数据对象包含一个或多个表,所述表中包含数据;
结构相同的所述数据对象属于同一个数据对象集合;所述数据对象具有数据对象标识,该数据对象标识用于区分同一数据对象集合中的各数据对象。
第二方面,本发明实施例还提供了一种分布式数据库参数的同步方法,包括:
建立分布式参数表,定义数据库参数;
采用不同的时序变更或恢复节点的参数。
第三方面,本发明实施例还提供了一种分布式数据库启动方法,包括:
选取任一节点先启动;
指派所述节点协调启动其它节点;
在所有节点完成启动后,将所有节点切换至对等服务状态。
第四方面,本发明实施例还提供了一种分布式数据库数据校验方法,包括:
查询加载目标表的表结构和各列的约束条件;
生成各列值的校验函数;
编译加载所述校验函数,并调用所述校验函数进行数据检验。
第五方面,本发明实施例还提供了一种分布式数据库日志数据的分片方法,包括:
为每个节点分配唯一编号;
建立日志数据表,指定按节点进行分片的方式;
在记录日志时,将节点编号随日志一起写入日志表。
本发明实施例具有的优点和积极效果是:由于采用上述技术方案,可以使分布式数据库节点信息能够同步,并可快速启动和对数据进行校验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的分布式数据库参数的同步方法的流程示意图;
图2是本发明实施例二提供的分布式数据库启动方法的流程示意图;
图3是本发明实施例三提供的分布式数据库数据校验方法的流程示意图;
图4是本发明实施例四提供的分布式数据库日志数据的分片方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一提供的分布式数据库参数的同步方法的流程图,本实施例可适用于分布式数据库节点参数同步的情况,该方法可以由适用于布式数据库参数的同步装置来执行,该装置可由软件/硬件方式实现,并可集成于分布式数据库***的节点中。
参见图1,所述分布式数据库参数的同步方法,包括:
S110,建立分布式参数表,定义数据库参数。
通常,数据库的参数是通过外部配置文件来配置的(如INI、properties、XML等),数据库启动时读入这些参数,这些参数决定了数据库的各种行为。
在分布式数据库***中,尤其是Share Nothing的分布式数据库***中,各个独立的服务上都运行着数据库服务(DB Server)。如果每个数据库服务都采用外部配置文件来配置各种参数,那么整个集群范围内进行参数调整,就需要同时更改所有服务器上的配置文件。这种方式比较繁琐,并且容易出错。比如,其中一个节点出现临时故障,这时就无法更改此节点上的配置文件,导致其它节点的配置修改成了新值,而此节点的配置依然是旧值。当这个节点恢复成可用状态,重新加入集群时,就会出现参数不一致的问题,导致各种异常服务行为的出现。在本实施例中,对于每个节点建立参数表,并根据每个节点的参数表定义数据库参数。
S120,采用不同的时序变更或恢复节点的参数。
对于不同的节点采用分布式事务管理不同的时序对节点的参数进行变更。在恢复时分布式事务管理进行参数恢复。
本实施例提供的分布式数据库参数的同步方法,可以保证***中各个独立节点上的配置始终保持一致。
实施例二
图2为本发明实施例二提供的分布式数据库启动方法的流程图,本实施例可适用于分布式数据库节点启动的情况,该方法可以由分布式数据库启动装置来执行,该装置可由软件/硬件方式实现,并可集成于分布式数据库***中。
参见图2,所述分布式数据库启动方法,包括:
S210,选取任一节点先启动。
分布式数据库***最流行的架构是Share Nothing架构,此种架构下,各个节点地位对等,可以同时对外提供服务,从而使***有良好的性能表现。
然而,由于各节点完全对等,在整个分布式数据库***初始启动阶段,由于各节点的状态可能不一致,因此需要选举出一个Leader来进行仲裁。Share Nothing架构下,由于各节点完全对等,选举出一个Leader需要很长的时间来互相协商。节点越多,选举所耗时间越长,极大影响了整个分布式数据库***的启动速度。在本实施例中,可任意选取一个节点优先启动。
S220,指派所述节点协调启动其它节点。
使先启动的节点负责协调其它节点的启动,例如完成向先启动节点进行注册,报告启动状态等。
S230,在所有节点完成启动后,将所有节点切换至对等服务状态。
Share Nothing架构下,各个节点地位对等,可以同时对外提供服务,因此在启动完成后,需要将所有节点切换至对等服务状态。
本发明实施例提供的分布式数据库启动方法,可以实现Share Nothing架构的分布式数据库***的高效快速启动。
实施例三
图3为本发明实施例三提供的分布式数据库数据校验方法的流程图,本实施例可适用于分布式数据库数据校验的情况,该方法可以由分布式数据库数据校验装置来执行,该装置可由软件/硬件方式实现,并可集成于分布式数据库***中。
参见图3,所述分布式数据库数据校验方法,包括:
S310,查询加载目标表的表结构和各列的约束条件。
分布式数据库在实际***运行过程中,通常要加载大量文本数据到数据库中,尤其是数据仓库、数据分析、数据清洗等***中,从外部加载大量数据到分布式数据中是一个常态场景。
分布式数据库在处理加载过程中,为了保证数据的有效性,需要对入库的数据进行严格校验,避免不正确的数据进入库中,从而引发后续计算作业的结果错误和作业执行失败。
分布式数据库在表结构定义中,可以对每列指定多种约束条件,如not null,check constraint,因此加载过程需要对各个列逐一对每种可能性都进行判断和校验。然而,在实际项目中,通常一个列上的约束最多只有一个,有些列还没有任何约束,因此这种对每种可能性都进行判断的方式非常低效。
在数据加载前,查询加载目标表的表结构和各列的约束条件。
S320,生成各列值的校验函数。
加载目标表的表结构和各列的约束条件对应生成每一列值的校验函数。
S330,编译加载所述校验函数,并调用所述校验函数进行数据检验。
按照生成的校验函数进行编译和加载,以调用该函数对数据进行校验。
本发明实施例提供的分布式数据库数据校验方法,可以在外部数据进入数据库过程中,实现快速入库校验。
实施例四
图4为本发明实施例四提供的分布式数据库日志数据的分片方法的流程图,本实施例可适用于分布式数据库日志数据的分片的情况,该方法可以由分布式数据库日志数据的分片装置来执行,该装置可由软件/硬件方式实现,并可集成于分布式数据库***中。
参见图4,所述分布式数据库日志数据的分片方法,包括:
S410,为每个节点分配唯一编号。
分布式数据库通常部署为一个集群,由很多独立的服务器组成。为了保证***的运维诊断,各个节点上的数据库服务进程通常要记录一些日志信息,用于运维人员进行查看和分析。通常,这些日志数据以文本文件形式保存在服务器本地的磁盘上。但这种方式下,运维人员需要登录到每台服务器上,打开文件进行查看,非常不方便,并且查找、过滤、问题诊断和分析起来效率非常低。因此,更好的方式是将日志数据保存到数据库中,运维人员通过SQL语句就可以查询这些日志,非常方便。然而,日志数据要想放入分布式数据库的表中,表的数据分片策略并不为当前分布式数据库所支持。通常,分布式数据库将表分为2大类:复制表和分布表。复制表通常是小表,在所有节点上都有一份完整的数据。而分布表通常是大表,安装预设的分片策略在多个服务器上分布,每个服务器上只有一个分片的数据,这些分片合并在一起才构成表的全量数据。通常,分布表的分片策略为hash、List和Module。但这三种策略,应用在日志数据上,并不合适,hash策略是按hash函数进行计算,将数据尽可能均匀分布在各个服务器上。但日志数据,我们希望哪个节点写日志,数据就放在哪个节点上,不希望分布到其它节点上。List为指定列取哪个值时,就落在哪个节点上。对于集群节点固定时,可以采用这种方式。但一旦集群扩容或者缩容,则分片策略必须调整,这种调整必须更改表结构才能实现。并且,集群扩容缩容过程,也无法对此进行优化,实现数据不迁移。Module是按列值进行取模运算,取模结果代表落在哪个节点上。这种方式的弊端与List方式一样。由于集群中存在多个节点,需要为每个节点都分配一个唯一编号。
S420,建立日志数据表,指定按节点进行分片的方式。
建立日志数据表,指定按节点进行分片的方式,示例性的,可采用如下方式:
create table LogTable(nodeidint not null,logtime timestamp not null,
loglevelint not null,loginfovarchar(300)not null)
distributed by Node(nodeid);
S430,在记录日志时,将节点编号随日志一起写入日志表。
节点记录日志时,将本节点的编号nodeid随日志一起写入日志表,查询日志时,执行计划按节点进行匹配查询,***扩容时,日志数据不进行数据迁移。
本发明实施例提供的分布式数据库日志数据的分片方法,可以保证任意节点产生的数据一定写入本节点,并且扩容缩容过程中节点上的日志数据不发生迁移。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (6)

1.一种分布式数据库,其特征在于,所述分布式数据库包括一个或多个节点,所述节点用于存储有一个或多个数据对象,所述数据对象包含一个或多个表,所述表中包含数据;
结构相同的所述数据对象属于同一个数据对象集合;所述数据对象具有数据对象标识,该数据对象标识用于区分同一数据对象集合中的各数据对象。
2.根据权利要求1所述的分布式数据库,其特征在于,
所述节点具体用于存储指定区间内的数据对象,所述区间基于各数据对象的数据对象标识划分。
3.一种如权利要求1所述的分布式数据库参数的同步方法,其特征在于,包括:
建立分布式参数表,定义数据库参数;
采用不同的时序变更或恢复节点的参数。
4.一种如权利要求1所述的分布式数据库启动方法,其特征在于,包括:
选取任一节点启动;
指派所述节点协调启动其它节点;
在所有节点完成启动后,将所有节点切换至对等服务状态。
5.一种如权利要求1所述的分布式数据库数据校验方法,其特征在于,包括:
查询加载目标表的表结构和各列的约束条件;
生成各列值的校验函数;
编译加载所述校验函数,并调用所述校验函数进行数据检验。
6.一种如权利要求1所述的分布式数据库日志数据的分片方法,其特征在于,包括:
为每个节点分配唯一编号;
建立日志数据表,指定按节点进行分片的方式;
在记录日志时,将节点编号随日志一起写入日志表。
CN201610777439.4A 2016-08-31 2016-08-31 一种分布式数据库及管理方法 Pending CN106372160A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610777439.4A CN106372160A (zh) 2016-08-31 2016-08-31 一种分布式数据库及管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610777439.4A CN106372160A (zh) 2016-08-31 2016-08-31 一种分布式数据库及管理方法

Publications (1)

Publication Number Publication Date
CN106372160A true CN106372160A (zh) 2017-02-01

Family

ID=57902523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610777439.4A Pending CN106372160A (zh) 2016-08-31 2016-08-31 一种分布式数据库及管理方法

Country Status (1)

Country Link
CN (1) CN106372160A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229525A (zh) * 2017-04-27 2017-10-03 国电南瑞科技股份有限公司 一种基于Zookeeper的电力***设备模型关键字生成方法
CN107679237A (zh) * 2017-10-26 2018-02-09 杨晓艳 一种分布式数据库管理***、方法及装置
CN111913925A (zh) * 2019-05-08 2020-11-10 厦门网宿有限公司 一种分布式存储***中的数据处理方法及***
CN112084171A (zh) * 2020-08-14 2020-12-15 浪潮思科网络科技有限公司 基于Cassandra数据库的操作日志写入方法、装置、设备及介质
CN113821176A (zh) * 2021-09-29 2021-12-21 重庆紫光华山智安科技有限公司 一种数据迁移的处理方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120072656A1 (en) * 2010-06-11 2012-03-22 Shrikar Archak Multi-tier caching
CN102567505A (zh) * 2011-12-26 2012-07-11 中兴通讯股份有限公司 一种分布式数据库及其数据操作方法
CN103034739A (zh) * 2012-12-29 2013-04-10 天津南大通用数据技术有限公司 一种分布式存储***及其更新和查询方法
CN104375906A (zh) * 2014-11-19 2015-02-25 天津南大通用数据技术股份有限公司 一种基于文件***的大规模备份数据快速校验方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120072656A1 (en) * 2010-06-11 2012-03-22 Shrikar Archak Multi-tier caching
CN102567505A (zh) * 2011-12-26 2012-07-11 中兴通讯股份有限公司 一种分布式数据库及其数据操作方法
CN103034739A (zh) * 2012-12-29 2013-04-10 天津南大通用数据技术有限公司 一种分布式存储***及其更新和查询方法
CN104375906A (zh) * 2014-11-19 2015-02-25 天津南大通用数据技术股份有限公司 一种基于文件***的大规模备份数据快速校验方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229525A (zh) * 2017-04-27 2017-10-03 国电南瑞科技股份有限公司 一种基于Zookeeper的电力***设备模型关键字生成方法
CN107679237A (zh) * 2017-10-26 2018-02-09 杨晓艳 一种分布式数据库管理***、方法及装置
CN111913925A (zh) * 2019-05-08 2020-11-10 厦门网宿有限公司 一种分布式存储***中的数据处理方法及***
CN111913925B (zh) * 2019-05-08 2023-08-18 厦门网宿有限公司 一种分布式存储***中的数据处理方法及***
CN112084171A (zh) * 2020-08-14 2020-12-15 浪潮思科网络科技有限公司 基于Cassandra数据库的操作日志写入方法、装置、设备及介质
CN112084171B (zh) * 2020-08-14 2024-04-12 浪潮思科网络科技有限公司 基于Cassandra数据库的操作日志写入方法、装置、设备及介质
CN113821176A (zh) * 2021-09-29 2021-12-21 重庆紫光华山智安科技有限公司 一种数据迁移的处理方法、装置及存储介质

Similar Documents

Publication Publication Date Title
CN106372160A (zh) 一种分布式数据库及管理方法
CN104252481B (zh) 主从数据库一致性的动态校验方法和装置
CN105550229B (zh) 分布式存储***数据修复的方法和装置
CN112131099B (zh) 一种版本升级测试方法及装置
CN105635311A (zh) 一种云管理平台中资源池信息同步的方法
CN104035836A (zh) 集群检索平台中的自动容灾恢复方法及***
CN107273440A (zh) 计算机应用、数据存储方法、微服务和微数据库
CN105262835A (zh) 一种多机房中的数据存储方法和装置
CN106469103A (zh) 硬盘的维护方法和装置
CN107357688A (zh) 分布式***及其故障恢复方法和装置
CN111125065A (zh) 可视化数据同步方法、***、终端和计算机可读存储介质
CN106354548A (zh) 分布式数据库***中虚拟集群创建、管理方法及装置
CN105701605B (zh) 一种应用于综合通信导航识别***中的波形库管理设备
CN109634524B (zh) 一种数据处理守护进程的数据分区配置方法、装置及设备
CN112328363B (zh) 一种云硬盘挂载方法及其装置
CN106339473A (zh) 文件复制方法及装置
CN110019229B (zh) 数据库配置***
CN103176745A (zh) 具有双控制器的储存***的硬盘阵列接管方法
CN106709051A (zh) 一种比对信息展示的方法、设备及***
US8347299B2 (en) Association and scheduling of jobs using job classes and resource subsets
CN105357306A (zh) 多平台数据共享***及其数据共享方法
CN114996955A (zh) 一种云原生混沌工程实验的靶场环境构建方法及装置
CN113268206B (zh) 一种网络靶场资源热插拔实现方法与***
CN109614139A (zh) 一种***服务配置方法、装置、设备及介质
CN115080309A (zh) 数据备份***、方法、存储介质以及电子设备

Legal Events

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

Application publication date: 20170201

RJ01 Rejection of invention patent application after publication