分布式数据库概念详解

helloworld_79565979
• 阅读 633

自互联网进入web2.0时代以来,数据库作为核心底层基础设施软件,也经历了蓬勃发展期。从早期的单机关系数据库到NoSQL再到今天的NewSQL,分布式数据库领域无论是技术还是场景都发生了巨大的变化。在当前的云原生时代,拥有分布式功能似乎是任何软件系统的标准。 尤其是在当前基础软件国产化浪潮中,国产数据库百花齐放,大有弯道超车之势。什么是分布式数据库呢?拆开来解释。 一、分布式 以一个熟悉的场景为例,比如完成一个软件开发工作。 小公司的做法是聘请全栈工程师,可以做所有的工作。但是,这样的人虽然什么都懂一点,但是没有特别精通的方向,很容易达到能力上限。 在一个大型团队中,通常会有很多角色(UI、前端、后端、DBA、运维等)。这些人组成一个分布式系统,大家协调完成共同的任务。中间的协调人是项目经理或部门领导。 这样做的好处是: 职责分离:每个人都要各司其职,做自己擅长的事情。 平滑拓展:哪个环节缺人就定点补充。 能力:可以处理更大和更多的项目。 当然,有利也有弊: 沟通:沟通成本增加,需要标准化的工作模式。 调度:如何高效地协调所有人员。 一致性:如何保证上下游人员信息的一致。 概念区别:分布式和集群 说到分布,就不得不提另一个与之相关的概念,那就是集群。很多初学者不能很好的理解集群和分布的区别。 拿前面的例子来说,如果小公司的全栈工程师出现一些异常情况(离职、出走、不堪重负等。),老板会考虑多雇些这样的人,这就形成了集群。好处是他们可以做更多的工作(负载分流)和互补(高可用性),但本质上他们仍然是自己做所有的事情。 事实上,分布式和集群可以一起使用。例如,在上面的大团队示例中,每个角色可以配置多个人,这就形成了一个分布式集群。 二、数据库 说白了,数据库就是管理数据的地方,就像我们生活中存放货物的仓库。我们要按照一定的规则把货物排列整齐(写数据),方便我们调取快件(核对数据)。 在计算机世界中,数据通常是按照一个二维的表来组织的,我们称之为关系模型,然后我们可以使用结构化查询语言(SQL)对这些数据进行各种关系操作,从而得到想要的结果。这就是关系数据库,也是目前应用最广泛的数据库。除此之外,相信你也听说过其他类型的数据库,比如KV型、文档型、时间序列型、图形数据库等等。 最常见的数据库就是大家用的Excel文档。一个文件可以看成一个数据库,每一张表就是一个数据表,表中的列是字段,每一行就是存储的数据。 乘法的“分布式”和“数据库” 在我看来,“分布式”和“数据库”不是相加,而是相乘。 传统的子数据库和子表方案以及各种分片方案都可以看作是伪分布式(添加),与真正的分布式数据库有本质区别。 最大的区别在于分布式事务。单个数据库的事务在一个节点上完成,分布式数据库需要多个节点的协同。 以典型的银行转账场景为例: A想转账100元给B,但是A的账户信息存储在节点A,B的数据存储在节点B。 单个数据库可以通过事务轻松完成。 分布式环境下的事务需要考虑各种网络故障和数据一致性。对于客户端来说,还是要保证交易操作的简单性。整个转移操作与单机数据库体验一致,所有故障都要透明处理。 分布式数据库继承了传统单机数据库的核心特性,同时具备分布式系统的处理能力。理论上所有的需求都可以通过横向扩展来解决,这是在大数据高并发的场景下诞生的产物。虽然起步较晚,但可以预见,它将是数据库的下一个发展方向。

点赞
收藏
评论区
推荐文章
赵亦华 赵亦华
1年前
你必须知道的国产数据库-阿里数据库oceanbase
众所周知,虽然原生分布式数据库有着各种先天优势,但是在落地的过程中也面临着两方面的挑战:一方面,在大家的印象中,原生分布式数据库主要适用于大型企业或者大型应用场景,而小型企业使用单机更具性价比。但是一旦部署了单机,如果后续业务量巨大,再进行架构调整,会进一步增加部署的难度。
Wesley13 Wesley13
3年前
MongoDB是什么
MongoDB是什么?MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库。那么nosql又是什么?NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的we
Easter79 Easter79
3年前
TiDB 在金融行业关键业务场景的实践(上篇)
TiDB作为一款高效稳定的开源分布式数据库,在国内外的银行、证券、保险、在线支付和金融科技行业得到了普遍应用,并在约20多种不同的金融业务场景中支撑着用户的关键计算。本篇文章将为大家介绍分布式关系型数据库TiDB在金融行业关键应用领域的实践。金融关键业务场景银行的业务系统非常复杂,包括从核心上的账户、账务、结算等业务到外围
Easter79 Easter79
3年前
TiDB 在转转的业务实战
作者:陈维,转转优品技术部RD。开篇世界级的开源分布式数据库TiDB自2016年12月正式发布第一个版本以来,业内诸多公司逐步引入使用,并取得广泛认可。对于互联网公司,数据存储的重要性不言而喻。在NewSQL数据库出现之前,一般采用单机数据库(比如MySQL)作为存储,随着数据量的增加,“分库分表”是早晚面临的问题,
Wesley13 Wesley13
3年前
DTCC2019第十届中国数据库技术大会将于5月在北京召开
作为国内顶级的数据领域技术盛会,10年来,DTCC见证了国内数据库技术的迅猛发展,各种分布式数据库、NoSQL、NewSQL技术异军突起,与Oracle、DB2等分庭抗礼,甚至大有超越之势。在这种背景下,ITPUB将组织历时半年的数据领域评选活动,向大家展现对数据领域起到了重大推动与贡献作用的热点技术、企业与技术专家。会议时间:2019050808
Stella981 Stella981
3年前
MapGis如何实现WebGIS分布式大数据存储的
作为解决方案厂商,MapGis是如何实现分布式大数据存储的呢?MapGIS在传统关系型空间数据库引擎MapGISSDE的基础之上,针对地理大数据的特点,构建了MapGISDataStore分布式数据库引擎,其集成整合了多种开源分布式数据库和文件系统,分别用来存储和管理关系型数据,切片型数据,实时型数据和非结构化数据,形成针对地理大数据应用场景相关的解
Vitess全局唯一ID生成的实现方案 | 京东云技术团队
为了标识一段数据,通常我们会为其指定一个唯一id,比如利用MySQL数据库中的自增主键。但是当数据量非常大时,仅靠数据库的自增主键是远远不够的,并且对于分布式数据库只依赖MySQL的自增id无法满足全局唯一的需求。因此,产生了多种解决方案,如UUID,Sn
天翼云联手平凯星辰共建开源分布式数据库实验室
数字时代下,数据成为新的核心生产要素。数据库作为整个数据价值体系中的基石,发挥着越来越重要的作用。近日,天翼云与平凯星辰签署战略合作协议,正式达成全面战略合作伙伴关系。基于天翼云在TiDB开源社区的长期关注和贡献,双方将共建开源分布式数据库实验室,共同探索云原生HTAP分布式数据库在电信及政企行业的应用场景,制定相应的运维规范,加速中国电信行业软件国
原生分布式数据库与子数据库子表中间件的区别
无论是分库分表中间件还是原生分布式数据库,目的都是为了解决数据容量问题,但实际上两种方式有本质区别。那么,具体来说,原生分布式数据库(https://www.oceanbase.com/product/oceanbase)有什么区别,它们的优缺点是
NewSQL数据库产品介绍及其优点
NewSQL是各种新型可伸缩高性能SQL数据库的简称。它在分布式架构中发挥关系模型的优势,从一开始就考虑SQL函数,精简传统关系数据库中不必要的组件,提高效率。所以NewSQL数据库(https://www.oceanbase.com/)几乎可以无