最近在nosql数据库选型上进行调研,初步了解了一下Facebook的 Cassandra. 记录下来。
Cassandra是一款混合的非关系型数据库主要特点:就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。
数据结构:
Keyspace 第一个维度,配置和管理column family,相当于关系数据库中的database;
Column Family 包含多个columns,相当于关系数据库中的table,在storage-conf.xml中定义(需重启服务器才生效),每个Column Family存放一个单独的文件,Column Family包含的columns是有序的;
Super Column 可有有无,相当于一个另一个维度;
Column Cassandra的元数据,key-value结构;(name,value,timestamp)
Cassandra和关系数据库的对比:
Column name 字段名
Column value 值
Key primary key ; row
Columnfamily table
Keyspace database
具体api例子:
http://wiki.apache.org/cassandra/ClientExamples
相关资料链接:
项目主页: http://incubator.apache.org/cassandra/
文档地址: http://wiki.apache.org/cassandra/GettingStarted
下载地址:http://hudson.zones.apache.org/hudson/job/Cassandra/lastSuccessfulBuild/artifact/cassandra/build/
twitter 的平台架构部门领导Evan Weaver写了一篇文章介绍Cassandra:http://blog.evanweaver.com/articles/2009/07/06/up-and-running-with-cassandra/
Distribute Key Value Store:http://www.slideshare.net/santalli/distribute-key-value-store
Cassandra Wiki:http://wiki.apache.org/cassandra/GettingStarted