分布式存储系统的分类

时间:2021-07-15 21:47:05

分布式存储系统面临的需求比较复杂,大致可以分为三类:

  • 非结构化数据:包括所有格式的办公文档、文本、图片、图像、音频、视频信息等。
  • 结构化数据:一般会存储在关系型数据库中,可用二位关系的表结构来对数据进行描述,数据的模式需要预先进行定义。
  • 半结构化数据:介于结构化数据和半结构化数据直接,HTML文档就属于半结构化数据。它一般是自描述的,与结构化数据的最大区别之处在于,半结构化的数据模式和内容混在一起,没有明显的界限和区分。

根据分布式系统面临的各种需求,目前主要有四种分布式存储系统:分布式文件系统、分布式键值系统、分布式表格和分布式数据库

分布式文件系统

互联网应用需要存储大量的图片、文字、照片和视频等各种非结构化的数据对象,这类数据以对象的形式进行组织,对象之间没有关联关系,这样的数据一般我们称为Blob数据。
分布式文件系统用于存储Blob数据对象,典型的系统有Facebook Haystack以及Taobao File System.另外,分布式文件系统也常作为分布式表格系统以及分布式数据库系统的底层存储。
总体上看,分布式文件系统存储三种数据:Blob对象、定长块以及大文件。在系统的实现层面,分布式文件系统内部按照数据块(chunk)来组织数据,每个数据块的大小相同,每个数据可以包含多个Blob对象或者定长块,一个大文件也可以拆分成为多个数据块。分布式文件系统将这些数据块分散存储到分布式存储集群中去,处理数据的复制、一致性、负载均衡、容错等分布式系统难题,并将用户对Blob对象、定长块以及文件的操作映射成为对底层数据块的操作。

分布式键值系统

分布式键值系统用于存储关系简单的半结构化数据,它只对外提供主键的CRUD操作,根据主键创建、读取、更新或者删除一条键值记录。
典型的分布式键值存储系统有Amazon Dynamo以及Taobao Tair。从数据结构的角度来看,分布式键值存储系统与传统的hash表比较相似,不同的是,分布式键值系统支持将数据存储到分布式集群中的多个存储节点。分布式键值系统是分布式表格系统的一种简化的实现,一般用来对数据进行缓存。一致性哈希是分布式键值系统中常用的数据分布技术。

分布式表格系统

分布式表格系统用于存储关系比较复杂的半结构化数据,与分布式键值存储系统相比,分布式表格存储系统部仅仅支持简单的数据CRUD操作,而且支持扫描整个主键范围。分布式表格存储系统以表格为单位组织数据,每个表格包括很多行,通过主键唯一标示一行数据,支持根据主键的CRUD功能以及范围查找的功能。
分布式表格系统借鉴了很多关系型数据库的技术,例如支持某种程度上的事务,比如单行事务。

分布式数据库系统

分布式数据库系统是从单机关系型数据库扩展而来,用于存储结构化数据。分布式数据库采用二维表的形式组织数据,提供SQL关系查询语言,支持多表关联、嵌套子查询等操作,并提供数据库事务和并发控制。