云数据存储技术:从NoSQL到大规模可靠存储
1. NoSQL数据库概述
在云计算时代之前,有几种数据模型被广泛使用,包括用于严格层次关系的层次模型、用于多对多关系的网络模型,以及最为普遍的由Codd提出的关系模型。关系数据库系统使用结构化查询语言(SQL)来管理结构化数据,SQL包含数据定义语言、数据操作语言和数据控制语言三个组成部分。像Oracle、MySQL、SQLServer和Postgres等都是著名的关系数据库管理系统(RDBMS)。
随着云计算的发展,对存储非结构化或半结构化数据的需求应运而生,从而催生了新的数据库模型——NoSQL。NoSQL这个名称其实具有一定的误导性,它并非是对存储技术的革新,而是为了满足高效访问存储在大型计算机集群上的海量数据集的实际需求。NoSQL数据库有四种类型:
1. 键值模型 :将数据表示为索引键和值。
2. 聚合/文档模型 :类似于键值模型,但键关联的值包含结构化或半结构化数据。
3. 列族模型 :大型稀疏表,有大量的行和少量的列。
4. 图数据库 :节点代表实体,边代表实体之间的关系。
云存储如文档存储和NoSQL数据库具有良好的扩展性,不存在单点故障,内置基于共识的决策支持,支持分区和复制等基本操作。像Amazon的SimpleDB、CouchDB和Oracle NoSQL数据库等都很受欢迎,不过它们提供的功能比传统数据库少。键值数据模型尤其流行,如Voldemort、Redis、Scalaris和Tokyo cabinet等系统都采用了这