NoSQL数据库异军突起,随着Digg和 sf.net大型应用不断采取NoSQL,NoSQL运动已经蓬勃发展,NoSQL数据库很多,如何对他们分类,以便方便地根据自己应用特色选择不同的NoSQL数据库呢?
NoSQL = HVSP 无(传统关系数据库的)join或明显事务的高容量简单处理。
按照数据模型保存性质将当前NoSQL分为四种:
1.Key-value stores键值存储, 保存keys+BLOBs (二进制大对象Binary Large OBjects)
2.Table-oriented 面向表, 主要有Google的BigTable和Cassandra.
3.Document-oriented面向文本, 文本是一种类似XML文档,MongoDB 和 CouchDB
4.Graph-oriented 面向图论. 如Neo4J.
NoSQL一般都是分布式数据库,高性能是其特点,因此,数据是如何被分布、复制/碎片以及合成就成为关键,这其中涉及你的应用对数据一致性的要求,见CAP原理,不同一致性处理方式决定不同类型:
1.基本上基于Dynamo. 核心思想就是在多个节点之间获得最终一致性就可以,即使你有时会读到脏数据. 好处是写数据时从来不会阻塞。那种强制性节点一致性,如2PC,两段事务提交将会让你的写关闭停顿,使用Dynamo-like风格你能将数据写到多个节点中,通过一致hashing,然后你可以从这些节点读取数据,返回正确结果给用户。
2.基本基于BigTable. 这种模型中,使用常用方式保持节点充分的一致性。比如同步复制,由数据自己活或数据所在位置来实现一致性,不同产品实现细节不一样。
比如:MongoDB有一个面向文本类型的数据模型, 它采取类似BigTable-like 复制策略;Cassandra有面向表table-like数据模型, 采取的是Dynamo-like风格.
以后应该有数据是如何被持久化保存到磁盘上的区分,不同NoSQL处理策略不一样,有的是写一次保存一次;有的是定期保存,后者性能要好些。
http://www.jdon.com/jivejdon/thread/38312
分享到:
相关推荐
- **分片**:通过区间划分、轮流放置或一致性哈希实现水平扩展。 - **复制**:主从复制和对等复制保证数据冗余和高可用性。 4. **协议与策略** - **两阶段提交协议 (2PS)**:确保分布式事务的一致性。 - **...
1. **数据库管理**:NoSQL Manager支持创建、删除和管理多个MongoDB数据库,方便你根据业务需求划分不同的数据存储空间。 2. **集合管理**:集合相当于关系型数据库中的表,你可以通过此工具创建、修改和删除集合,...
在这个模式中,任务被划分成多个部分,由每台机器单独完成,然后将结果重新组合以形成最终的输出。这种架构适合需要大量并行处理的应用场景。 “Space Based (virtual single address space)”是一种虚拟化单地址...
3. **分表分库**:随着数据量的增长和写入压力的增加,分表分库成为了解决方案,如垂直拆分(按字段划分)、水平拆分(按行划分),以缓解单表/单库的负担,并提高并发处理能力。 尽管这些优化策略在一定程度上解决...
但是,归结起来,可以将典型的 NoSQL 划分为 4 种类型,分别是键值数据库、列式数据库、文档数据库和图形数据库,如图 1 所示。 图 1 4 种类型的 NoSQL 数据库 图 2 键值数据库举例 1. 键值数据库 键值...
此外,Dynamo的数据划分采用一致性哈希,而BigTable使用顺序表分裂。两者在数据复制、负载均衡和故障恢复机制上也有差异,Dynamo使用Gossip协议和Merkle树,而BigTable依赖Chubby锁服务和主控节点。 总之,NoSQL...
- **扩容和数据迁移问题**:当系统压力过大时,进行数据重新划分或数据迁移的过程复杂且容易出错。 #### 三、NoSQL与关系数据库的比较 NoSQL数据库与传统的关系型数据库在多个方面存在显著差异: - **数据模型**...
分片可以通过不同的策略来进行,包括基于区间的划分(例如HBase中的Rowkey划分)和基于哈希的划分。为了进一步优化哈希分布式的性能和平衡性,业界普遍采用了虚拟节点技术,该技术在数据分片和实际存储服务器之间...
BASE强调基本的可用性,按照功能划分数据库。 三、最终一致性 最终一致性是一种弱一致性模型,保证用户最终能够读取到某操作对系统特定数据的更新。最终一致性可以从客户端和服务器端两个角度来看: * 客户端关注...
分布式存储系统一般由数据库层、中间件层和数据访问接口层组成。数据库层包含多种数据库模式,能够满足不同数据存储需求;中间件层主要负责数据调度和访问控制,提供数据的逻辑抽象和优化;数据访问接口层则提供了...
随着数据量的增长,HBase会将Table划分为更小的片段,称为Regions。每个Region对应一个特定的数据范围,这有助于提高数据读写的性能。为了管理这些Region,HBase使用了两个特殊的表: - **-ROOT-**:只包含一个...
这个环形空间被称为一致性哈希环(consistent hash ring),它被划分成多个虚拟节点(virtual nodes),每个物理节点会被映射到多个虚拟节点上。 通过这种方式,Dynamo能够实现数据的均匀分布,并且当物理节点加入...
云计算服务市场可以根据服务类型划分为三个类别:SaaS(软件即服务)、PaaS(平台即服务)和IaaS(基础设施即服务)。在这些类别中,SaaS的增长速度最快。 在SaaS应用中,租户需要将数据上传到云服务提供商的数据库...
童家旺还提到数据状态机的分类,这是一种根据时间、信息含金量、变更频率和持续时间来划分状态机的方法。状态机可以被分类为瞬时的、中等时长的和无限时长的。数据状态机的不同分类代表了不同类型的数据和应用场景,...
在大数据环境中,NoSQL数据库通常需要分布式存储每个表,数据划分是实现这一目标的关键,它有助于系统的扩展性,提高数据的可访问性和并行处理能力。例如,通过数据划分,可以有效地在多个节点之间分配负载,提升...
关键知识点包括数据模型设计(如关系型数据库、NoSQL数据库)、数据备份与恢复策略、数据安全性(如加密技术、访问控制)以及数据生命周期管理,确保数据在整个存在期间的质量和可用性。此外,随着大数据和云计算的...
SQL与NOSQL MySQL 和 MongoDB 的比较 ##Background SQL 数据库的基本概念是关系型数据库。 关系型数据库的定义是严格使用关系来存储数据。 关系数据库匹配数据的方式是它使用在数据集中发现的共同特征。 在关系...
1. **用户管理**:系统需要对管理员、学生等不同角色进行权限划分,确保操作的安全性。管理员可以添加、修改和删除用户信息,而学生则只能查看和修改自己的信息。 2. **宿舍分配**:根据学生信息,系统自动或手动...
存在关于NoSQL的一些误解,比如:认为NoSQL数据库完全不使用SQL语句,或者将所有非关系型数据库都划分为NoSQL,以及认为需要完全放弃使用关系型数据库。实际上,NoSQL = Not Only SQL,即除了SQL以外,还有其他的...