Cassandra的数据模型的理解
2017-12-23 17:57
375 查看
Cassandra属于NoSQL数据库,NoSQL和传统关系型数据库不同,NOSQL偏好数据冗余,因为NoSQL一般无法做表关联查询。
(1)
keySpace
基本上可以将Keyspace 理解成MySQL 之中的Database. 只不过Cassandra的”database” 包含了更多的内容:
Replication Factor : 复制因数。 表示一份数据在一个DC 之中包含几份。常用奇数~ 比如我们项目组设置的replication_factor=3
Replica placement strategy : 复制策略。 默认的是SimpleStrategy. 如果是单机架、单数据中心的模式,保持使用SimpleStrtegy即可。
下面是一个简单的通过CQL 语句创建一个新的keyspace的例子:
MySQL
(2) Column Family/Column 可以理解Column Family为MySQL的Table, 将Column 理解为MySQL之中的一条记录。所谓Column就是: A tuple with name, value and timestamp。之所以称之为Column Family, 是因为Cassandra 是一种列式数据库,因此将一组Column称为Column Family。. 比较有意思的是,Column 包含了Timestamp。 其作用主要是当有新数据覆盖的时候,不是直接将老数据从存储介质上删除,而是直接写入新的数据。 当需要查询的时候,通过key或者某种方式找到的所有Column,并去找Timestamp 最新的Column。 老数据会在一段时间之后自行删除。可以使用下面的一句话概括:Java
首先Map结构,通过key来进行查询速度会非常快。 再加上内嵌的SortedMap, 可以进行顺序查找,速度也很快。 当然,如何快速的生成Key等就是另外一个topic
Cassandra 整体数据可以理解成一个巨大的嵌套的Map。只能按顺序一层一层的深入,不能跳过中间某一层~
(3)Super
Column
已经被淘汰,可以不用关注
(4)Primary key
Primary key = Partition Key + [Clustering Key]
(5)Partition
Key
其实就是指在Primary
key 中的第一个列,如果想要用多个列就可以把这的多个列用小括号括起来。
http://docs.datastax.com/en/glossary/doc/glossary/gloss_partition_key.html
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/refCompositePk.html 这里有一个例子,说的很清楚。
参考资料:
1)Data Modeling Concepts,http://docs.datastax.com/en/cql/3.1/cql/ddl/dataModelingApproach.html
2)Data modeling in 30 seconds http://docs.datastax.com/en/landing_page/doc/landing_page/dataModeling.html
3)[Cassandra教程] (四)使用Key的正确姿势,http://www.flyml.net/2016/09/05/cassandra-tutorial-right-way-to-use-key/
https://www.cnblogs.com/strinkbug/p/6639421.html
(1)
keySpace
基本上可以将Keyspace 理解成MySQL 之中的Database. 只不过Cassandra的”database” 包含了更多的内容:
Replication Factor : 复制因数。 表示一份数据在一个DC 之中包含几份。常用奇数~ 比如我们项目组设置的replication_factor=3
Replica placement strategy : 复制策略。 默认的是SimpleStrategy. 如果是单机架、单数据中心的模式,保持使用SimpleStrtegy即可。
下面是一个简单的通过CQL 语句创建一个新的keyspace的例子:
MySQL
12 | CREATE KEYSPACE Keyspace nameWITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3}; 来源: http://www.flyml.net/2016/09/04/cassandra-tutorial-data-model/ |
1 | Map<RowKey, SortedMap<ColumnKey, ColumnValue>> |
Cassandra 整体数据可以理解成一个巨大的嵌套的Map。只能按顺序一层一层的深入,不能跳过中间某一层~
(3)Super
Column
已经被淘汰,可以不用关注
(4)Primary key
Primary key = Partition Key + [Clustering Key]
(5)Partition
Key
其实就是指在Primary
key 中的第一个列,如果想要用多个列就可以把这的多个列用小括号括起来。
http://docs.datastax.com/en/glossary/doc/glossary/gloss_partition_key.html
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/refCompositePk.html 这里有一个例子,说的很清楚。
参考资料:
1)Data Modeling Concepts,http://docs.datastax.com/en/cql/3.1/cql/ddl/dataModelingApproach.html
2)Data modeling in 30 seconds http://docs.datastax.com/en/landing_page/doc/landing_page/dataModeling.html
3)[Cassandra教程] (四)使用Key的正确姿势,http://www.flyml.net/2016/09/05/cassandra-tutorial-right-way-to-use-key/
https://www.cnblogs.com/strinkbug/p/6639421.html
相关文章推荐
- Cassandra – 理解关键概念和数据模型
- Cassandra的数据模型的理解
- Cassandra NoSQL数据模型设计指南
- Nosql 理解篇+实战篇 三 数据模型Ⅱ 聚合数据库关系处理及图数据库
- Flask—06-理解掌握flask数据模型(02)
- 走进cassandra之二:数据模型
- Cassandra 数据模型设计总结
- Cassandra 数据模型设计,根据你的查询来制定设计——反范式设计本质:空间换时间
- 关于winsock中网络编程事件模型和窗口消息模型中FD_WRITE的理解与数据的发送需要注意的关键点
- neo4j数据库中数据模型的理解(入门需看)
- 利用TCP/IP模型理解数据通信过程
- cassandra的数据模型
- Cassandra源码学习:数据模型
- Cassandra数据模型
- cassandra学习笔记2--Cassandra数据模型
- DB2 XML 编程,第 1 部分:理解 XML 数据模型
- Cassandra 数据模型
- Cassandra的数据模型
- 理解Javascript 数据模型
- 理解Javascript_04_数据模型