1. 什么是分布式存储系统
分布式存储系统
定义
分布式存储系统是大量普通PC服务器通过Internet互联,对外作为一个整体提供存储服务
特性
可扩展
低成本
高性能
易用
挑战
分布式存储系统的挑战主要在于数据、状态信息的持久化,要求在自动迁移、自动容错、并发读写的过程中保证数据的一致性。分布式存储涉及的技术主要来自两个领域:分布式系统以及数据库。
数据分布
一致性
容错
负载均衡
事务与并发控制
易用性
压缩/解压缩
分类
非结构化数据,一般的文档
结构化数据, 存储在关系数据库中
半结构化数据,HTML文档
不同的分布式存储系统适合处理不同类型的数据:
分布式文件系统
非结构化数据,这类数据以对象的形式组织,不同对象之间没有关联,这样的数据一般称为Blob(二进制大对象)数据
典型的有Facebook Haystack 以及 Taobao File System
另外,分布式文件系统也常作为分布式表格系统以及分布式数据库的底层存储,如谷歌的GFS可以作为分布式表格系统Google Bigtable 的底层存储,Amazon的EBS(弹性存储块)系统可以作为分布式数据库(Amazon RDS)的底层存储
总体上看,分布式文件系统存储三种类型的数据:Blob对象、定长块以及大文件
分布式键值系统
较简单的半结构化数据,只提供主键的CRUD(创建、读取、更新、删除)
典型的有Amazon Dynamo 以及 Taobao Tair
分布式表格系统
较复杂的半结构化数据,不仅支持CRUD,而且支持扫描某个主键范围
以表格为单位组织数据,每个表格包括很多行,通过主键标识一行,支持根据主键的CRUD功能以及范围查找功能
典型的有Google Bigtable 以及 Megastore,Microsoft Azure Table Storage,Amazon DynamoDB等
分布式数据库
存储结构化数据,一般是由单机关系数据库扩展而来
典型的包括MySQL数据库分片集群、Amazon RDS以及Microsoft SQL Azure
2. 请问数据库有哪些种类呢
数据库共有3种类型,为关系数据库、非关系型数据库和键值数据库。
1、关系数据库
MySQL、MariaDB(MySQL的代替品,英文维基网络从MySQL转向MariaDB)、Percona Server(MySQL的代替品·)、PostgreSQL、Microsoft Access、Microsoft SQL Server、Google Fusion Tables、FileMaker、Oracle数据库、Sybase、dBASE、Clipper、FoxPro、foshub。
几乎所有的数据库管理系统都配备了一个开放式数据库连接(ODBC)驱动程序,令各个数据库之间得以互相集成。
2、非关系型数据库(NoSQL)
BigTable(Google)、Cassandra、MongoDB、CouchDB。
3、键值(key-value)数据库
Apache Cassandra(为Facebook所使用):高度可扩展、Dynamo、LevelDB(Google)。
(2)dynamo采用什么方式存储数据扩展阅读:
数据库模型:对象模型、层次模型(轻量级数据访问协议)、网状模型(大型数据储存)、关系模型、面向对象模型、半结构化模型、平面模型(表格模型,一般在形式上是一个二维数组。如表格模型数据Excel)。
数据库的架构可以大致区分为三个概括层次:内层、概念层和外层。