• NoSQL运动与Cassandra系统
NoSQL的技术特征:三个否定
否定关系模型
否定ACID事务(亚洲工业发展理事会)
否定SQL语言(现在某种程度上又回归SQL)
大数据促进了NoSQL的迅速繁荣,出现了大量的、技术多样的NoSQL系统,主要可以分为三类:文档系统,键值系统和图系统。
以键值存储的代表,Cassandra系统为例。
Cassandra技术来源
Cassandra系统核心技术主要来源于两个方面,
一是Google的Bigtable,就是我们常说的大表,
另一个是Amazon的DynamoDB,主要是借鉴他的P2P架构。
Cassandra特点与定位
Cassandra的技术来源决定了的它所拥有的技术特点,即,无单点故障、高可用性和可配置的一致性。他适合的应用场景包括时间序列数据、物联网数据、社交媒体数据等等。
• 数据模型、接口和语言
Cassandra 的逻辑数据模型:
键空间 - Keyspace,最上层的命名空间,通常是一个应用程序一个Keyspace;
Keyspace 是列族(column family)的容器;一个keyspace 具有特定的配置(数据分区策略, 副本数目等);一个应用程序,一般有一个keyspace 和多个列族;
列族 - ColumnFamily,与table对应,
不同点在于:Column Family是稀疏的表;
一个 Column Family 由很多行组成;
行 - Row,每一行由一个key唯一标识,由columns 组成;
一行由很多列组成;
列 - Column,存储的基本单元。
列是一个三元组 : (name(用于查询), value(没有辅助索引的情况下无法按列查询)