分布式实时处理系统:原理、架构与实现
上QQ阅读APP看书,第一时间看更新

1.5.3 分布式存储系统分类

相比传统的关系型数据库,分布式存储系统类别众多,不同的分布式存储系统可以应用于不同的场合和领域,本书根据分布式存储系统面向对象的不同,将其分成列存储系统、文档型存储系统、图形存储系统、键值对存储系统以及分布式文件系统。

(1)列存储系统

列存储系统的典型代表是HBase和Cassandra,这类分布式存储系统与传统的面向行的关系型数据库不同,以列为存储单位。其中我们可以预先定义固定数量的列簇(Column Family),而列簇中的列数量可以任意扩展。列也没有数据类型,需要用户自行进行数据类型转换。每一行有一个行键,可以用于索引。这样既方便模式定义的扩展,又方便数据的分块存储。

(2)文档型存储系统

以MongoDB、CouchDB为代表,以文档为数据存储单位,每个文档都有唯一ID,不同文档一般逻辑与物理上相互独立,互不关联,可以自由分布式地存储在集群的各个节点上。

(3)图形存储系统

典型代表是Neo4j。这是一种面向网络的存储方式,以节点为单位存储数据,并通过在节点之间建立网络来建立数据之间的联系。同样也是一种无模式的存储方式。由于数据以网络形式存储,因此可以建立快速的遍历算法、推荐系统等。

(4)键值对存储系统

其典型代表是Redis和Riak。这类数据库将数据存储为键值对,是非常简单的数据存储方式。这类数据库不一定是分布式存储系统,但Riak自身支持分布式存储,而3.0版本的Redis也自身支持集群功能。

(5)分布式文件系统

与以上存储系统不同,该类系统不属于数据库的范畴。其典型代表是HDFS,顾名思义就是分布式的文件系统,支持所有的文件系统操作,如创建、删除文件与目录,用户权限管理,时间戳等,其功能与传统文件系统一致,只是将文件分散存储在集群的不同节点上。