Are column families within a single keyspace related in any way?
What's the difference between having keyspace Foo and column families A and B in it vs. having two keyspaces开发者_如何学JAVA FooA and FooB with one column family in each?
API make it look as if these two were pretty much equivalent.
As a bonus question, how do supercolumns fit into this picture?
Keyspace: a namespace for ColumnFamilies, typically one per application. A keyspace is the first dimension of the Cassandra hash, and is the container for column families. Keyspaces are of roughly the same granularity as a schema or database (i.e. a logical collection of tables) in the RDBMS world. They are the configuration and management point for column families, and is also the structure on which batch inserts are applied.
ColumnFamilies contain multiple columns, each of which has a name, value, and a timestamp, and which are referenced by row keys.
SuperColumns can be thought of as columns that themselves have subcolumns (columnfamily within columnfamily).
A more fine grained explanation of the Cassandra data model is found here
精彩评论