Cassandra总结1

转载网址:http://www.cnblogs.com/maheng/p/4979273.html

Cassandra 的数据模型是基于列族(Column Family)的四维或五维模型。它借鉴了 Amazon 的 Dynamo 和 Google’s Big Table 的数据结构和功能特点,采用Memtable的方式进行存储。在 Cassandra 写入数据之前,需要先记录日志 ( Commitlog),然后数据开始写入到 Column Family 对应的 Memtable 中,Memtable 是一种按照 key 排序数据的内存结构,在满足一定条件时,再把 Memtable 的数据批量的刷新到磁盘上,存储为 SSTable 。

  1. Cassandra 的数据模型图:

2.Cassandra 的数据模型的基本概念:

  Cluster:Cassandra 的节点实例,它可以包含多个Keyspace。
  Keyspace::用于存放 ColumnFamily 的容器,相当于关系数据库中的 Schema 或 database。

  ColumnFamily::用于存放 Column 的容器,类似关系数据库中的 table 的概念 。

  SuperColumn::它是一个特列殊的 Column, 它的 Value 值可以包函多个Column。

  Column::Cassandra 的最基本单位。由name , value , timestamp组成。

3.Cassandra中数据存放规则

  data:存储真正的数据文件,既后面的SStable文件,可以指定多个目录。

  commitlog:存储未写入SSTable中的数据(在每次写入之前先放入日志文件)。

  cache:存储系统中的缓存数据(在服务重启的时候从这个目录中加载缓存数据)。

4.Cassandra的特点如下:

  1.灵活的schema:不需要象数据库一样预先设计schema,增加或者删除字段非常方便(on the fly)。

  2.支持range查询:可以对Key进行范围查询。

  3.高可用,可扩展:单点故障不影响集群服务,可线性扩展。

5.Cassandra内部数据的排序

  有一点需要明确,我们使用Cassandra的时候,数据在写入的时候就已经排好顺序了。在某一个Key内的所有Column都是按照它的Name来排序的。我们可以在storage-conf.xml文件中指定排序的类型。目前Cassandra提供的排序类型有:BytesType, UTF8Type,LexicalUUIDType, TimeUUIDType, AsciiType,和LongType。Cassandra的排序功能是允许我们自己实现的,只要你继承org.apache.cassandra.db.marshal.IType就可以了。

本文参考:http://www.ibm.com/developerworks/cn/opensource/os-cn-cassandra/

     http://www.cnblogs.com/ggzwtj/archive/2011/07/21/2113350.html

     http://database.51cto.com/art/201005/202153.htm

感谢以上文章作者的奉献和分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值