Cassandra数据模型【原创】
Cassandra数据模型
几个概念
Cluster:集群,一个逻辑上的cassandra实例包含的节点。一个集群可以包含多个keyspace。
Keyspace:Column Family的名字空间,通常是一个应用一个keyspace。
Column Family:包含多个column,每个column包括name,value, timestamp。Column Family通过Row key引用。
Super Column:可以看作其column包含subcolumn。
Column:包括name,value, timestamp。
Columns
Column是数据写入最小单元。它是一个三元组(name, value, timestamp)。
用Thrift接口的定义如下:
struct Column { 1: binary name, 2: binary value, 3: i64 timestamp,}
{ "name": "emailAddress", "value": "foo@bar.com", "timestamp": 123456789}
{ "mccv":{ "Users":{ "emailAddress":{"name":"emailAddress", "value":"foo@bar.com"}, "webSite":{"name":"webSite", "value":"http://bar.com"} }, "Stats":{ "visits":{"name":"visits", "value":"243"} } }, "user2":{ "Users":{ "emailAddress":{"name":"emailAddress", "value":"user2@bar.com"}, "twitter":{"name":"twitter", "value":"user2"} } }}
{ "mccv": { "Tags": { "cassandra": { "incubator": {"incubator": "http://incubator.apache.org/cassandra/"}, "jira": {"jira": "http://issues.apache.org/jira/browse/CASSANDRA"} }, "thrift": { "jira": {"jira": "http://issues.apache.org/jira/browse/THRIFT"} } } }}