cassandra相关知识
Cassandra 的数据存储结构
Cassandra 的数据模型是基于列族(Column Family)的四维或五维模型。它借鉴了 Amazon 的 Dynamo 和 Google's BigTable 的数据结构和功能特点,采用 Memtable 和 SSTable 的方式进行存储。在 Cassandra 写入数据之前,需要先记录日志 ( CommitLog ),然后数据开始写入到 Column Family 对应的 Memtable 中,Memtable 是一种按照 key 排序数据的内存结构,在满足一定条件时,再把 Memtable 的数据批量的刷新到磁盘上,存储为 SSTable 。
图 1. Cassandra 的数据模型图:
Cassandra 的数据模型的基本概念:
?
Cluster : Cassandra 的节点实例,它可以包含多个 KeyspaceKeyspace : 用于存放 ColumnFamily 的容器,相当于关系数据库中的 Schema 或 databaseColumnFamily : 用于存放 Column 的容器,类似关系数据库中的 table 的概念SuperColumn :它是一个特列殊的 Column, 它的 Value 值可以包函多个 Column5. Columns:Cassandra 的最基本单位。由 name , value , timestamp 组成下面是关于数据模型实例分析 :
图 2. 数据模型实例分析
?