分布式存储系统

来源:互联网 发布:win32 界面编程 编辑:程序博客网 时间:2024/03/28 20:04

分为四类:

分布式文件系统,分布式键值系统,分布式表格系统,分布式数据库。


分布式文件系统用于存储Blob对象(图片、照片、视频等非结构化数据对象,这类数据以对象的形式组织,对象之间没有关联,这样的数据一般称为 Blob(Binary Large Object,二进制大对象)数据)。也常作为分布式表格系统以及分布式数据库的底层存储。


分布式键值系统用于存储关系简单的半结构化数据,它只提供基于主键的 CRUD(Create/Read/Update/Delete)功能,即根据主键创建、读取、更新或者删除一条键值记录。从数据结构的角度看,分布式键值系统与传统的哈希表比较类似,不同的是,分布式键值系统支持将数据分布到集群中的多个存储节点。分布式键值系统是分布式表格系统的一种简化实现,一般用作缓存,比如淘宝 Tair 以及 Memcache。一致性哈希是分布式键值系统中常用的数据分布技术,因其被 Amazon DynamoDB 系统使用而变得相当有名。


分布式表格系统用于存储关系较为复杂的半结构化数据,与分布式键值系统相比,分布式表格系统不仅仅支持简单的 CRUD 操作,而且支持扫描某个主键范围。分布式表格系统以表格为单位组织数据,每个表格包括很多行,通过主键标识一行,支持根据主键的 CRUD 功能以及范围查找功能。与分布式数据库相比,分布式表格系统主要支持针对单张表格的操作,不支持一些特别复杂的操作,比如多表关联,多表联接,嵌套子查询;另外,在分布式表格系统中,同一个表格的多个数据行也不要求包含相同类型的列,适合半结构化数据。分布式表格系统是一种很好的权衡,这类系统可以做到超大规模,而且支持较多的功能,但实现往往比较复杂,而且有一定的使用门槛。


分布式数据库一般是从单机关系数据库扩展而来,用于存储结构化数据。分布式数据库采用二维表格组织数据,提供 SQL 关系查询语言,支持多表关联,嵌套子查询等复杂操作,并提供数据库事务以及并发控制。传统关系数据库的事务以及二维关系模型很难高效地扩展到多个存储节点上,另外,关系数据库对于要求高并发的应用在性能上优化空间较大。为了解决关系数据库面临的可扩展性、高并发以及性能方面的问题,各种各样的非关系数据库风起云涌,这类系统成为NoSQL 系统,可以理解为“Not Only SQL”系统。NoSQL 系统多得让人眼花缭乱,每个系统都有自己的独到之处,适合解决某种特定的问题。

0 0
原创粉丝点击