作者:蓝瑟 | 来源:互联网 | 2023-09-24 10:58
数据分布是分布式数据库的主要特征。实现数据访问的局部化是分布式数据库设计的重要内容。介绍了分布式数据库系统的主要特征及关键技术,重点对关系的分割和分布式数据的访问进行了描述。如:分布式数据库中的数据分布在不同的节点上,有的事务分解成不同节点上的多个局部事务,若某个局部事务不能正常提交,则必须撤销所有其他节点已提交的局部事务。事务的这种性质,官能称为事的原子性。
原理
数据分布的策略,分布式数据库的每个全局关系可以分为若干个不相关的部分,每一个部分秒为一个片段。片段可以存储在各个场地,这就是分布;片段还允许重复地存储在多个场地上,这就是重复;每个片段必定分配在一个场地上,这就是数据分布或称数据分配。
数据分片
数据分片(Sharding)的原理就是将数据做水平切分,类似于hash分区的原理,通过应用架构解决访问路由和数据合并的问题。
Sharding架构的优势在于,集群扩展能力很强,几乎可以做到线性扩展,而且整个集群的可用性也 很高,部分节点故障,不会影响其他节点提供服务。
Sharding原理简单,容易实现,是一种非常好的解决数据库扩展性的方案。但是Sharding对应 用场景的要求很高,因为一旦使用数据分片架构,如果需要跨不同的节点做join,或者统计类型的操作,将会变得非常困难,应该尽量避免。所以说 Sharding架构会损失部分关系型数据库的特性,比如join,从而使数据库退化为Key-Value store类型的存储。所以,并不是所有的应用都适合做Sharding,它可能会造成应用架构复杂或者限制系统的功能,这也是它的缺陷所在。
将数据分片,使数据存放的单位不是关系而是片段,既有利于按照用户的需求较好地组给你吧数据的分布,也有利于控制数据的冗余度。
分片的方式有多种,水平分片和垂直分片是两种基本的分片方式。混合分片和导出分片是较复杂的分片方式。
水平分片是指按一定的条件将关系按行分为若干个不相交的子集,每个子集为关系的一个片段。
垂直分片是指将关系按列分为若干个子集,垂直分片的片段必须能够重构原来的全局关rtxi,既可以用连接的方法恢复原关系。因此垂直分片的诸片段通常都包含关系的码。
导出分片是按上述三和中分片的方式得到的片段继续按另一种方式分片。如先安排好水平分片得到的一某一片段再进行垂直分片;或者按垂直分片得到的某一片段又安排好水平分片方式继续分为若干片段。
无论哪种分片方式都应满足以下条件:
完全性:
一个全局关系中的数据必须完全地划分为若干片段,不允许某些数据属于全局关系但不属于任何一个片段。
不相交性:
不允许一个全局关系的某些数据既属于该全局关系的某一个片段又属于该全局关系的别一个片段。
可重构性:
可以由片段重构全局关系,对于垂直分片可以连接操作重构全局关系;对于水平分片可以用并操作重构合局关系。
以上为数据分布(原理、数据分片),「分布式技术专题」是由hubble数据库团队精心整编,专题会持续更新,欢迎大家保持关注。